Imports System.IO
Imports System.Runtime.InteropServices
Module Example
    <STAThread()> _
    Sub Main()
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim objPartDocument As SolidEdgePart.PartDocument = Nothing
        Dim objHoleDataCollection As SolidEdgePart.HoleDataCollection = Nothing
        Dim objHoleData As SolidEdgePart.HoleData = Nothing
        Try
            OleMessageFilter.Register()
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            objPartDocument = objApplication.ActiveDocument
            objHoleDataCollection = objPartDocument.HoleDataCollection
            For Each objHoleData In objHoleDataCollection
                Console.WriteLine(objHoleData.Name)
            Next
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            OleMessageFilter.Revoke()
        End Try
    End Sub
End Module