GetClassesByMember – Retrieve the list of classes that expose a given property or method

' return a collection with names of all the class names' of a type library that implement a certain member.'' MEMBERNAME is the name of the property or method' MEMBERTYPE is the type of the member (vbGet, vbLet, vbSet, vbMethod).'    You can specify multiple types by ORing these constants '' Example:'     Dim tlb As String'     Dim retColl As Collection'     tlb = "C:MyServer.Dll"'     ' returns all types with MyProp (Let, Set or Get) property '     Set retColl = GetClassesByMember(tlb, "MyProp", VbLet Or VbSet Or VbGet)'     ' returns all types with MyProp Let property'     Set retColl = GetClassesByMember(tlb, "MyProp", VbLet)'     ' returns all types with MyFunc function (or Sub)'     Set retColl = GetClassesByMember(tlb, "MyFunc", VbMethod)' Be sure that "TypeLib Information" type library (TlbInf32.tlb)' is referenced in your VB project.Function GetClassesByMember(ByVal TypeLibFile As String, _    ByVal MemberName As String, MemberType As VbCallType) As Collection    Dim TLI As New TLIApplication    Dim TypeLibrary As TypeLibInfo    Dim TypeInfo As TypeInfo    Dim Results As SearchResults    Dim Item As SearchItem        ' 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 GetClassesByMember = New Collection    ' search types containing the requested member    Set Results = TypeLibrary.GetTypesWithMemberEx(MemberName, MemberType, , _        tliStClasses)        ' fill the return collection with found type names    For Each Item In Results        GetClassesByMember.Add Item.Name, Item.Name    NextEnd Function

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


Recent Articles: