PRB: Clireg32 Fails to Register the Type Library of DCOM Server
ID: Q185193
|
The information in this article applies to:
-
Microsoft Visual Basic Learning, Professional, and Enterprise Editions for Windows, version 5.0
SYMPTOMS
When using Clireg32.exe to register the type library (.tlb file) of a DCOM
server, the type library entries are not entered in the registry. This
problem also occurs during the Internet download of usercontrols that
reference DCOM servers. When this problem occurs, you will receive one of
the following error messages while trying to run the DCOM client
application:
The instruction at '0x00000000' referenced memory at '0x00000000'. The
memory could not be 'read'
-or-
An application error has occurred and an application error log is being
generated. '<Client.exe>' Exception: access violation (0xc0000005),
address: 0x00000000
CAUSE
The Clireg32.exe utility fails to register the type library when the DCOM
option is selected.
RESOLUTION
To resolve this issue, the DCOM Server .vbr file must first be modified.
Then, use CliReg32.Exe to reregister the DCOM Server, first as a remote
automation component, then as a DCOM component, as detailed below.
Step-By-Step Procedure
- Open the DCOM Server .vbr file in Notepad or any text editor.
- Both the ProxyStubClsid and ProxyStubClsid32 keys for the DCOM Server
ClassId must modified. (In the sample below, the underscore character
(_) is used as a line-continuation character; the line does not appear
in this way in your .vbr file.)
Change the following
HKEY_CLASES_ROOT\INTERFACE\{<Server ClsId>} _
\ProxyStubClsid\{00020420-0000-0000-c000-00000000046}
to the following:
HKEY_CLASES_ROOT\INTERFACE\{<Server ClsId>} _
\ProxyStubClsid\{00020424-0000-0000-c000-00000000046}
Make the same change for ProxyStubClsid32.
- On the Windows Start menu, click Run, and enter the following command:
CLIREG32 DCOMSERVER.VBR -T DCOMSERVER.TLB -S SERVERMACHINENAME
NOTE: In the above command, "DCOMSERVER" is the name of your DCOM
server, and "SERVERMACHINENAME" is the name of the server where the DCOM
component will reside. Choose Remote Automation from Remote Transport
options.
- Now, run the command again:
CLIREG32 DCOMSERVER.VBR -T DCOMSERVER.TLB -S SERVERMACHINENAME
This time, choose Distributed COM from Remote Transport options.
STATUS
Microsoft is researching this problem and will post new information here in
the Microsoft Knowledge Base as it becomes available.
MORE INFORMATIONSteps to Reproduce
NOTE: This article assumes the reader is familiar with creating and
deploying DCOM client and server applications.
Create the DCOM Server
- Create a new ActiveX EXE project in Visual Basic 5, Class1 is created by
default.
- Rename Class1 to "CDCOMServer"
- On the Project menu, click Project Properties, and rename the project to
DCOMServer.
- Click the Component tab, and select Remote Server Files.
- Add the following code to the CDCOMServer class module:
Private mName As String
Public Property Let sName(str As String)
mName = str
End Property
Public Property Get sName() As String
sName = mName
End Property
Private Sub Class_Initialize()
mName = "DCOM Server"
End Sub
- Create the ActiveX EXE.
Create the Client
- Create a new ActiveX Control project in Visual Basic 5.0; UserControl1
is created by default.
- Rename UserControl1 to "CtlDownload" (without the quotation marks).
- Add a TextBox, a CommandButton, and a Label to the control.
- On the Project menu, click References, and click DCOMServer.
- Place the following code in the user control's code pane:
Private Sub Command1_Click()
Dim svr As New DCOMServer.CDCOMServer
svr.sName = Text1.Text
Label1.Caption = svr.sName
End Sub
- [Optional] For testing, create a Standard EXE project to test the
ActiveX control. Whenever you enter something in the TextBox and click
Command1, the same text should be displayed on the Label.
- Create the CtlDownload OCX.
Create Installation Programs for the Client and the Server
- Use the Application Setup Wizard to create a setup program for
DCOMServer project.
- Create an Internet Component Download Setup for the client
(CtlDownload). Be sure to add the DCOMServer.vbr file.
NOTE: To have a successful download, please refer to the following
Microsoft Knowledge Base article:
Q168429
: PRB: Component Download Fails for DCOM Projects
Install the Server and Test the Client
- Install the DCOMServer on a Windows NT 4.0 (workstation or server) with
Service Pack 3 installed.
- From a client machine, open the CtlDownLoad.HTM file in the control's
setup folder.
- Click the CommandButton on the control to reproduce one of the errors
described above.
REFERENCES
For additional information, please see the following articles in the
Microsoft Knowledge Base:
Q161837
: HOWTO: Create a DCOM Client/Server Application
Q168429
: PRB: Component Download Fails for DCOM Projects
Additional query words:
DCOM Internet Download CliReg32.exe kbDCOM kbActiveX kbCtrl
Keywords : kbCtrl kbGrpVB
Version : WINDOWS:5.0
Platform : WINDOWS
Issue type : kbprb
|