Cry about...
MS-Windows Troubleshooting
DllRegisterServer in COM failed.
Return code was: 0x8002801c
Symptom:
When attempting to register a COM object (e.g. Active-X
component or OCX) with ‘Regsvr32’, i.e.:
regsvr32 COM
it fails with a message box displaying:
DllRegisterServer in COM failed.
Return code was: 0x8002801c
Where ‘COM’ is the name of the COM object file.
Cause:
The error value ‘0x8002801c’ means ‘Error accessing the
OLE registry’.
Remedy:
- If this error is encountered when using ‘regsvr32 /u
...’, i.e. to unregister a COM object then it probably indicates that
the COM object is not registered or has already been unregistered.
- It is likely that permissions on part of the registry
have been changed to deny you access. You will need to be a local administrator
to register the COM object.
- If you are a local administrator (i.e. a member of the
‘Administrators’ group on the workstation) then most likely someone
or some application has modified (intentionally or unintentionally)
the permissions on one or more registry keys and that this is preventing
access. To identify which registry key is causing the problem use
Regmon
(a freeware tool published by
System Internals). Use
Regmon to capture all registry access when regsvr32 is run. If an ‘
OpenKey’
request fails with ‘Access Denied’ (which is listed by Regmon as ‘ACCDENIED’)
then run regedt32 and check the permissions on that registry key. If
necessary change the permissions on the key to grant local Administrators
‘Full Control’. They try registering the COM object again. The only
times I have encountered this problem it affected more than one key,
so be prepared to repeat this process.
These notes have been tested with Windows NT4.
|