| Previous | Next |
| CO_E_DLLNOTFOUND | CO_E_WRONGOSFORAPP |
CO_E_ERRORINDLL
Meaning
Windows documents CO_E_ERRORINDLL as “Error in the DLL”. In practical terms, it is returned when COM finds the registered in-process module but the DLL fails while loading or supplying the requested class object.
Likely causes
- Possible cause 1: a dependent DLL cannot be loaded even though the registered server DLL exists.
- Possible cause 2: DllGetClassObject returns a failure for the requested CLSID or IID.
- Possible cause 3: process initialization, runtime compatibility or module entry-point work fails.
Where the failure belongs
This result belongs to COM activation and object lifetime. COM activation is a sequence rather than one registry lookup: identifier resolution, class registration, module or process start, class-factory publication, marshaling, and object lifetime can fail independently. The relevant condition is that COM finds the registered in-process module but the DLL fails while loading or supplying the requested class object.
Diagnostic sequence
- Confirm that the observed path matches this condition: COM finds the registered in-process module but the DLL fails while loading or supplying the requested class object.
Evidence to collect
- Capture 1: Windows loader events, dependency names and native status from the first load attempt.
- Capture 2: the registered DLL path, file version, signature and process architecture.
- Capture 3: the exact result of class-factory acquisition before a wrapper substitutes it.
Correct handling and retry
- Corrective action 1: fix the missing dependency, binary incompatibility or class-factory implementation.
- Corrective action 2: keep DllMain minimal and move recoverable initialization out of loader lock.
- Corrective action 3: redeploy the module using the supported installer rather than manual registration experiments.
Retry guidance. Retry after the loader or class-factory cause is corrected; unloading and immediately loading the identical broken module is not a recovery strategy. When retrying, avoid launch duplicate servers, reuse stale proxies or repeat an activation whose side effects are unknown.
Difference from nearby HRESULTs
CO_E_DLLNOTFOUND points to an absent registered DLL, whereas it is reached after COM has a module path and encounters a DLL-side failure.
Practical scenario
The registered DLL is present, but one of its private runtime dependencies is absent on a clean machine; dependency tracing identifies the real cause behind it.
Developer and operational guidance
Official Microsoft references
Looking for a different code? Search another status or error code.