What does HRESULT 0x80040155 (REGDB_E_IIDNOTREG) mean?

 
Previous Next
REGDB_E_CLASSNOTREG REGDB_E_BADTHREADINGMODEL

REGDB_E_IIDNOTREG

Interface not registered

REGDB_E_IIDNOTREG is the failure HRESULT 2147746133 (0x80040155, signed -2147221163) from winerror.h. The documented description is “Interface not registered”. In practical terms, the requested interface identifier lacks required COM registration metadata. Interpret it in the context of interface marshaling, proxy/stub lookup, type-library resolution, or interface discovery.

Relevant contract

COM registration is architecture-, scope-, and identity-sensitive. A key visible in Registry Editor is not proof that the failing process sees the same view or that the values form a coherent activation contract.

  • Associate this result with one exact operation in CLSID/IID registry lookup, InprocServer32 or LocalServer32 metadata, interface proxy registration, package policy, and threading-model interpretation.
  • Confirm that this result came from interface marshaling, proxy/stub lookup, type-library resolution, or interface discovery, rather than from cleanup or a wrapper that ran afterward.

Likely cause branches

  • It can result when the IID key or ProxyStubClsid32 mapping was never installed.
  • It can result when a custom interface is used across apartments or processes without registered marshaling support.
  • It can result when bitness-specific deployment registered the class but omitted interface metadata.

Evidence to preserve

  • Record IID, source and destination apartments/processes, and marshaling path.
  • Check whether the interface is automation-compatible or has a proxy/stub DLL.
  • Verify type library and proxy registration for the architecture where marshaling occurs.

Diagnostic sequence

  1. Identify the exact object, method, and lifecycle phase involved in interface marshaling, proxy/stub lookup, type-library resolution, or interface discovery.

Recovery and retry

Correction. install the correct proxy/stub or type library registration, or keep the interface in a context where its supported marshaler applies. Retry condition. Retry after repairing interface registration and recreating the proxy; an existing failed proxy cannot be healed in place. Before repeating the operation, complete or roll back the installer transaction, re-read the exact user or machine registry view, and discard class factories obtained from superseded registration.

Practical scenario

An in-process test passes because no proxy is needed, but the same custom interface fails when the server moves out of process; registering its generated proxy/stub fixes marshaling.

Difference from related HRESULTs

E_NOINTERFACE says an object does not implement an IID; it says COM lacks registration needed to describe or marshal that IID.

Developer and administrator guidance

References


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