Function GetClasses(ByVal TypeLibFile As String, _
Optional ByVal IncludeNotCreatableClasses As Boolean) As Collection Dim TLI As New TLIApplication Dim TypeLibrary As TypeLibInfo Dim Class As CoClassInfo ' raises an error if unable to open the type library ' (e.g. file not found or not a TLB) Set TypeLibrary = TLI.TypeLibInfoFromFile(TypeLibFile) ' prepare the result Set GetClasses = New Collection ' fill the return collection with class names For Each Class In TypeLibrary.CoClasses ' exclude not creatable classes if necessary If IncludeNotCreatableClasses Or (Class.AttributeMask And _ TYPEFLAG_FCANCREATE) Then ' the class is creatable or we don't care ' about the creatable attribute GetClasses.Add Class.Name, Class.Name End If Next End Function Set IncludeNotCreatableClasses = True to include not creatable classes (that is, those with Instancing property set to PublicNotCreatable) too. Be sure that "TypeLib Information" type library (TlbInf32.tlb) is referenced in your VB project. |