IGxObjectFilter の利用

Sub test()
    Dim pWorkspaceFactory As IWorkspaceFactory
    Set pWorkspaceFactory = New AccessWorkspaceFactory
    'Set pWorkspaceFactory = New ShapefileWorkspaceFactory
    'Set pWorkspaceFactory = New FileGDBWorkspaceFactory
    'Set pWorkspaceFactory = New FileGDBScratchWorkspaceFactory
    'Set pWorkspaceFactory = New InMemoryWorkspaceFactory
    
    Dim pWorkspaceName As IWorkspaceName
    Set pWorkspaceName = pWorkspaceFactory.Create("D:\Workspace", "Workspace", Nothing, Application.hWnd)
    
    Dim pName As IName
    Set pName = pWorkspaceName
    
    Dim pWorkspace As IWorkspace
    Set pWorkspace = pName.Open
    
End Sub


Sub gxdlg()
    Dim pEnumGx As IEnumGxObject
    
    'フィルタの作成
    Dim pShpFilter As IGxObjectFilter
    Set pShpFilter = New GxFilterShapefiles
    
    Dim pLyrFilter As IGxObjectFilter
    Set pLyrFilter = New GxFilterLayers
    
    Dim pGxDialog As IGxDialog
    Set pGxDialog = New GxDialog
    pGxDialog.Title = "データの参照"
    
    
    Dim pFilterCol As IGxObjectFilterCollection
    Set pFilterCol = pGxDialog
'    pFilterCol.AddFilter pShpFilter, False
'    pFilterCol.AddFilter pLyrFilter, True 'pLyrFilter is the default filter.
    
    If Not pGxDialog.DoModalOpen(0, pEnumGx) Then
        Exit Sub 'キャンセルを押した場合
    End If
    MsgBox pEnumGx.Next.FullName
    
End Sub