What does HRESULT 0x80004020 (CO_E_IIDREG_INCONSISTENT) mean?

 
Previous Next
CO_E_CLSREG_INCONSISTENT CO_E_NOT_SUPPORTED

CO_E_IIDREG_INCONSISTENT

CO_E_IIDREG_INCONSISTENT concerns interface registration rather than the class-server path. COM has an IID-related registration state that is incomplete or does not fit the requested interface or marshaling arrangement.

Why an IID can need separate registration

Every COM interface has its own IID. Standard marshaling covers many interfaces, but a custom-marshaled interface needs a proxy/stub registration that lets clients locate the marshaling implementation. Microsoft’s proxy/stub guidance shows the relevant registry relationship: Interface\{IID}\ProxyStubClsid32 points to the proxy CLSID, whose InprocServer32 entry locates the proxy DLL.

How to investigate

  • Record the exact IID requested by the client and determine whether the interface uses standard marshaling or a custom proxy/stub.
  • For custom marshaling, verify the Interface, ProxyStubClsid32, proxy CLSID, and proxy DLL registration as one chain.
  • Register or repair only the proxy/stub supplied for that interface. Re-registering the class server alone may leave an IID marshaling problem unchanged.

References


Looking for a different code? Search another status or error code.