GetClasses - Enumerate all the classes defined in a type library

' Return a collection with all creatable classes of' the type library specified in TypeLibFile.'' 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.
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