| 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
- 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.