先对这个错误有个认识: DllRegisterServer in COM failed. Return code was: 0x80070005 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: 0x80070005 Where ‘COM’ is the name of the COM object file. Cause: The error value ‘0x80070005’ means ‘Access Denied’. This means that an attempt has been made to update part of the registry that you do not have permissions to update. There are many parts of the registry that can be read but not updated (except by ‘system’ or the local administrator). Possibly Remedies: Check that you have local administration rights. 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. (Alternately, it may be that the key that is failing is one that normally only ‘system’ can update.) 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. 可以看出,这个错误是由于没有对注册表项操作的权限引起的。其中提到用工具Regmon,这个工具是用来监视注册表的,例如对 revsvr32 LiveShareCom.dll进行注册的时候,设置"Regmon过滤"包含LiveShareCom,当进行注册的时候,会在Regmon中显示对注册表的修改,在“结果”列中,如果出现"Access Denied"结果,则说明此项没有权限,用Regmon的定位功能,将该项定位到Regedit中,右键单击该注册表项,设置他们的Permissions...为可控状态即可。