| Previous | Next |
| TAPI_E_COMPLETIONOVERRUN | TAPI_E_CONFERENCEFULL |
OLE_E_CANT_GETMONIKER
OLE object cannot provide its moniker
OLE_E_CANT_GETMONIKER is HRESULT 2147745801 (0x80040009) from winerror.h. The documented description is “Not able to get the moniker of the object” The result belongs to IOleObject::GetMoniker or link identity construction. This HRESULT is most useful when tied to the method and lifecycle phase where the object cannot supply the requested moniker for its current assignment and state.
This result means that the object cannot supply the requested moniker for its current assignment and state. Preserve the original HRESULT and the state that made this condition true; the severity bit alone does not determine how the caller should handle it.
Where the result appears
An incident record must distinguish caller, runtime, provider, and backing resource while testing whether the object cannot supply the requested moniker for its current assignment and state.
Typical causes and interpretation
The immediate contract boundary is specific: the object cannot supply the requested moniker for its current assignment and state. Common cause branches include the following:
- The object has no container or item name.
- The requested moniker type is unsupported.
- Client-site naming state was not established.
Confirm the cause branch that explains why the object cannot supply the requested moniker for its current assignment and state by using call arguments, object state, metadata, device information, or provider traces.
Correct handling and recovery
The primary recovery is to establish container and item naming, request a supported moniker form, or treat the object as unlinked. The failure report should capture the relevant state during IOleObject::GetMoniker or link identity construction so it is clear why the object cannot supply the requested moniker for its current assignment and state.
The owner of it must define idempotency, cancellation, attempt limits, and reconciliation for the failed IOleObject::GetMoniker or link identity construction.
Practical scenario
An unsaved embedded object has no container file name, so it cannot create a full moniker until the document is saved.
Difference from related HRESULTs
OLE_E_CANT_BINDTOSOURCE occurs after a moniker exists but cannot bind; it fails while obtaining identity.
Developer and administrator guidance
Broad permission or compatibility changes are inappropriate unless evidence for the object cannot supply the requested moniker for its current assignment and state points to that layer.
References
Looking for a different code? Search another status or error code.