FILE: Programmatically Retrieve the Members of a DLL ClassID: Q172988
|
This article shows you how to programmatically retrieve the class names and
members of a dll or ActiveX file that contains a type library. You can get
this information by using the Object Browser in Visual Basic or you can
programmatically retrieve this information. The sample program uses an
unsupported file Tlbinf32.dll to retrieve some of the type library
information, but is not a complete substitute for the Object Browser.
NOTE: The file Tlbinf32.dll is not supported by Microsoft Technical Support
either electronically or via telephone. This file is subject to change
without notice.
A Visual Basic project that demonstrates how to use this file to get the
class names and members from a dll or ActiveX controls is available for
download from the Microsoft Software Library:
~ Clsnmmbr.exe
For more information about downloading files from the Microsoft Software
Library, please see the following article in the Microsoft Knowledge Base:
Q119591 : How to Obtain Microsoft Support Files from Online Services
The Object Browser in Visual Basic shows you the collections and member
names of a dll class. You may want to develop an add-in for use in other
development environments that has the same functionality as the object
browser and to add some automation capabilities. This sample shows you how
to retrieve this information programmatically by using the file
tlbinf32.dll. This file is stored in the OS\System directory of your
installation disk and is copied to your computer's system folder during the
Visual Basic installation.
After downloading and running the self-extracting file, the following files
are extracted to your hard drive:
Control Property Name Property Setting
----------------------------------------------------------------
Command Button Name Command1
Caption Choose File
Height 495
Left 4800
TabIndex 3
Top 720
Width 1815
Command Button Name Command2
Caption End
Height 495
Left 4800
TabIndex 4
Top 1320
Width 1815
Text Box Name Text1
Height 375
Left 1080
TabIndex 1
Top 120
Width 5535
List Box Name List1
Height 2205
Left 120
Top 720
Width 4455
Common Dialog Name CommonDialog1
Label Name Label1
Caption Selected DLL
Height 375
Left 0
TabIndex 2
Top 120
Width 1095
Private Sub Form_Load()
strFilter = "DLL Files (*.dll)|*.dll|"
strFilter = strFilter & "OCX Files (*.ocx)|*.ocx|"
strFilter = strFilter & "All Files (*.*)|*.*"
CommonDialog1.Filter = strFilter
End Sub
Private Sub Command1_Click()
Dim x As TypeLibInfo
Dim y As CoClasses
Dim z As Interfaces
Dim w As Members
Dim u As MemberInfo
Dim i As Integer, j As Integer, n As Integer, k As Integer
Dim strFilter As String
Dim strName As String, strMembers As String
On Error Resume Next
CommonDialog1.ShowOpen
List1.Clear
Text1.Text = ""
'Program ends if you click the Cancel button in the
'file open dialog box
If CommonDialog1.Flags = 0 Then
End
End If
'Get information from type library
Set x = TypeLibInfoFromFile(CommonDialog1.filename)
Set y = x.CoClasses
'Show Type Library information in the List box
For i = 1 To y.Count
If i <> 1 Then
strName = ""
List1.AddItem strName
End If
strName = "Class Name: " & y.Item(i).Name
List1.AddItem strName
Set z = y.Item(i).Interfaces
For n = 1 To z.Count
Set w = z.Item(n).Members
For k = 1 To w.Count
Set u = w.Item(k)
strMembers = " Member: " & u.Name
List1.AddItem strMembers
Next
Next
Next
Set z = Nothing
Set y = Nothing
Set x = Nothing
Set w = Nothing
'Display filename in the text box
Text1.Text = CommonDialog1.filename
'If the file does not contain type library information
'then display this error message.
If Err.Number = 91 Then
Dim strMsgTitle As String, strMsgError As String
Dim intResponse
strMsgTitle = "No Type Library"
strMsgError = "You chose a file without a type library. "
strMsgError = strMsgError & "Choose another file."
Err.Clear
intResponse = MsgBox(strMsgError, vbOKCancel, strMsgTitle)
If intResponse = vbOK Then
Command1_Click
End If
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Additional query words: kbVBp500 kbVBp600 kbVBp kbdsd kbDSupport kbsample
Keywords :
Version :
Platform : WINDOWS
Issue type :
Last Reviewed: May 25, 1999