I refer to this thread
How to install both 32-bit and 64-bit versions of COM-DLL and auto-select?
we have exactly the same situation. Extending the 32bit and 64bit Dll namespace with the same CLSID from the same project. Now registering these two Dlls works flawlessly. Unregistering causes some errors. The first registrar works, but the second fails. Because I think windows (?) Think that the Dll is already deregistered ...
Two Dlls need different CLSIDs and / or application identifiers ???
Regards, Michael
EDIT: this is what the DllUnregisterServer does:
STDAPI DllUnregisterServer(void){ _AtlModule.UpdateRegistryAppId(FALSE); HRESULT hRes2 = _AtlModule.UnregisterServer(TRUE); if (hRes2 != S_OK) return hRes2; AFX_MANAGE_STATE(_afxModuleAddrThis); if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE)) return ResultFromScode(SELFREG_E_CLASS); return NOERROR; }
Windows - regsvr32, . 32- regsvr32 32- DLL 64- 64- DLL.
regsvr32
DLL, DllRegisterServer()/DllUnregisterServer(), . , regsvr32.
DllRegisterServer()
DllUnregisterServer()
, . . Process Monitor , .
sharptooth, DLL , regsvr32, regsvr32. , regsvr32 System32 64- dll regsvr32 SysWow64 32- . p/Invoke funcion GetSystemWow64Directory SysWow64.
System32
SysWow64