Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB5,VB6
Expertise: Beginner
Aug 26, 2000

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
    Next
End Function

Alberto Falossi
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap