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