Article ID: 185193
Article Last Modified on 11/18/2003
APPLIES TO
- Microsoft Visual Basic 5.0 Learning Edition
- Microsoft Visual Basic 5.0 Professional Edition
- Microsoft Visual Basic 5.0 Enterprise Edition
This article was previously published under Q185193
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'
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, modify the DCOM Server .vbr file, and 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_CLASSES_ROOT\INTERFACE\{<Server ClsId>} _
\ProxyStubClsid\{00020420-0000-0000-c000-00000000046}
to the following:
HKEY_CLASSES_ROOT\INTERFACE\{<Server ClsId>} _
\ProxyStubClsid\{00020424-0000-0000-c000-00000000046}
Make the same change for ProxyStubClsid32.
- On the Windows Start menu, click Run, and type 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.
REFERENCES
For additional information, click the article numbers below
to view the articles in the Microsoft Knowledge Base:
161837 HOWTO: Create a DCOM Client/Server Application
168429 PRB: Component Download Fails for DCOM Projects
266717 HOWTO: Create a DCOM Client/Server Application by Using VB
267836 HOWTO: Create a DCOM Client/Server with Events by Using Visual Basic
268550 HOWTO: Use Dcomcnfg for a Visual Basic DCOM Client/Server Application
269330 HOWTO: Troubleshoot DCOM for Visual Basic Client/Server Applications
Additional query words: DCOM Internet Download CliReg32.exe
Keywords: kbdcom kbprb kbctrl kbpending kbcontrol KB185193