| |
Dim pDialog As IGxDialog
Set pDialog = New GxDialog
Dim pFilter As New GxFilterDatasets
Set pDialog.ObjectFilter = pFilter
Dim pEnumGX As IEnumGxObject
Dim blnflg As Boolean
pDialog.Title = "Add Layer"
pDialog.AllowMultiSelect = True
pDialog.StartingLocation = "C:\Program Files\ArcGIS\DeveloperKit\samples\data\arcgis_engine_developer_guide\data"
blnflg = pDialog.DoModalOpen(0, pEnumGX)
If blnflg = False Then Exit Sub
'Reset Enum so we are at the start
pEnumGX.Reset
'Get first object
Dim pGXObject As IGxObject
Set pGXObject = pEnumGX.Next
Do While Not pGXObject Is Nothing
'Query interface for IGxDataset interface
Dim pDataSet As IDataset
Dim pFeatureLayer As IFeatureLayer
Dim pRasterLayer As IRasterLayer
Dim pLayer As ILayer
Dim pGxDataset As IGxDataset
If TypeOf pGXObject Is IGxDataset Then
Set pGxDataset = pGXObject
Set pDataSet = pGxDataset.Dataset
If TypeOf pDataSet Is IFeatureClass Then
Set pFeatureLayer = New FeatureLayer
Set pFeatureLayer.FeatureClass = pDataSet
pFeatureLayer.Name = pDataSet.Name
Set pLayer = pFeatureLayer
ElseIf TypeOf pDataSet Is IRasterDataset Then
Set pRasterLayer = New RasterLayer
pRasterLayer.CreateFromDataset pDataSet
pRasterLayer.Name = pDataSet.Name
Set pLayer = pRasterLayer
Else
MsgBox "You must select a feature class or raster.", vbOKOnly, "Add Layer"
Exit Sub
End If
MapControl1.AddLayer pLayer, MapControl1.LayerCount
Else
MsgBox "You must select a feature class or raster.", vbOKOnly, "Add Layer"
Exit Sub
End If
Set pGXObject = pEnumGX.Next
Loop |