Login | Register   
LinkedIn
Google+
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: Enterprise
Expertise: Beginner
Sep 7, 1999

View Information Stored in Type Libraries

You can use this method to view all the CoClasses, and Interfaces present in the type library.

In order to run this tech tip you need following things:
(a) VB5 or VB6
(b) Reference to Type Lib information object component (TLIBINF32.dll).

This method takes in the name of the com component (or dll) or the type library for which you wish to view the information. It stuffs all the information into a list box (lstTypeLibDetails).

 
Private Sub PopulateTypeLibInfo(ByVal strTypeLibName As String)

    On Error GoTo ErrorHandler

    Dim pTypeLibInfo As TLI.TypeLibInfo     ' Pointer to TypeLibrary Info object
    Dim pCoClasses As TLI.CoClasses         ' Pointer to Coll. of CoClasses
    Dim pCoClassInfo As TLI.CoClassInfo     ' Pointer to a CoClass
    Dim pInterfaces As TLI.Interfaces       ' Pointer to Coll. of Interfaces for
 a CoClass
    Dim pInterfaceInfo As TLI.InterfaceInfo ' Pointer to a Interface for a
CoClass
    Dim lClassCount As Long
    Dim lInterfaceCount As Long
    Dim lClassIndex As Long
    Dim lInterfaceIndex As Long
    Dim strStringToAdd As String

    ' Make sure that name is proper
    If (strTypeLibName = "") Then
        Exit Sub
    End If

    ' Get the pointer to type library information for the specified file
    Set pTypeLibInfo = TypeLibInfoFromFile(strTypeLibName)

    strStringToAdd = "Type Library : " & pTypeLibInfo.Name & Space(1) &
pTypeLibInfo.Guid

    ' Add this Type Lib name to the list control
    lstTypeLibDetails.AddItem strStringToAdd

    ' Add one empty line for clarity in the UI
    lstTypeLibDetails.AddItem ""

    ' Get the pointer to Com Classes with in this type library
    Set pCoClasses = pTypeLibInfo.CoClasses

    ' Take the count of total no. of CoClasses in this Type Lib
    lClassCount = pCoClasses.Count

    ' Traverse all the CoClasses in this type lib info to get the information
    For lClassIndex = 1 To lClassCount
        If (lClassIndex > 1) Then
            ' Add one empty line for clarity in the UI
            lstTypeLibDetails.AddItem ""
        End If
        Set pCoClassInfo = pCoClasses.Item(lClassIndex)

        strStringToAdd = "CoClass : " & pCoClassInfo.Name & Space(1) &
pCoClassInfo.Guid
        ' Add this CoClass name to the list control
        lstTypeLibDetails.AddItem strStringToAdd

        ' Take out the Interfaces collection out for this CoClass
        Set pInterfaces = pCoClassInfo.Interfaces

        ' Take the count of total no. of CoClasses in this Type Lib
        lInterfaceCount = pInterfaces.Count

        For lInterfaceIndex = 1 To lInterfaceCount
            Set pInterfaceInfo = pInterfaces.Item(lInterfaceIndex)
            strStringToAdd = vbTab & " Interface : " & pInterfaceInfo.Name &
Space(1) & pInterfaceInfo.Guid
            ' Add this CoClass name to the list control
            lstTypeLibDetails.AddItem strStringToAdd
            Set pInterfaceInfo = Nothing
        Next lInterfaceIndex

        ' Release the CoClassInfo pointer
        Set pCoClassInfo = Nothing
        Set pInterfaces = Nothing
    Next lClassIndex

    ' Release the pointers
    Set pCoClasses = Nothing
    Set pTypeLibInfo = Nothing
    Exit Sub

ErrorHandler:
    ' Release the pointers
    Set pInterfaceInfo = Nothing
    Set pCoClassInfo = Nothing
    Set pInterfaces = Nothing
    Set pCoClasses = Nothing
    Set pTypeLibInfo = Nothing
    ' Display the complete error message
    MsgBox "Number      : " & Err.Number & vbCrLf & _
           "Description : " & Err.Description & vbCrLf & _
           "Source      : " & Err.Source & vbCrLf & _
           "Help File   : " & Err.HelpFile & vbCrLf & _
           "Last DLL Err: " & Err.LastDllError & vbCrLf, vbCritical + vbOKOnly,
"Type Lib Error"

End Sub


Deepak Pant
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date