| Previous | Next |
| MK_E_INTERMEDIATEINTERFACENOTSUPPORTED | MK_E_NOTBOUND |
MK_E_NOTBINDABLE
Moniker is not bindable
MK_E_NOTBINDABLE is the failure HRESULT 2147746280 (0x800401E8, signed -2147221016) from winerror.h. The documented description is “Moniker is not bindable”. In practical terms, the moniker does not support binding to the requested object or storage. Interpret it in the context of calling BindToObject or BindToStorage on a moniker intended only for naming, comparison, or composition.
Relevant contract
Diagnostic focus: For MK_E_NOTBINDABLE, preserve the concrete moniker object and why its class cannot participate in the requested bind operation. Record the exact IMoniker method, requested interface, bind options and concrete moniker class from the failing call; those details determine whether retry, a different bind operation, or a different moniker is appropriate.
- Confirm that this result came from calling BindToObject or BindToStorage on a moniker intended only for naming, comparison, or composition, rather than from cleanup or a wrapper that ran afterward.
Likely cause branches
- It can result when the moniker class deliberately has no binding implementation.
- It can result when the caller requests object binding where only storage binding is supported, or vice versa.
- It can result when a partially constructed moniker lacks the context needed to resolve a target.
Evidence to preserve
- Identify the exact binding method and IID.
- Inspect moniker class documentation and capabilities.
- Test whether composition or reduction must occur before binding.
Diagnostic sequence
- Identify the exact object, method, and lifecycle phase involved in calling BindToObject or BindToStorage on a moniker intended only for naming, comparison, or composition.
Recovery and retry
Correction. use the supported bind method or convert/compose the moniker into a bindable form. Retry condition. Retry after changing the method or moniker; repeated binding of the same unsupported form is deterministic. Before repeating the operation, release partial monikers and bound interfaces, unregister only owned Running Object Table entries, and abandon a bind context whose deadline or parameters no longer match the retry.
Practical scenario
A custom identifier moniker is designed only as a component inside a larger composite; binding it alone fails, while composing it with its root moniker succeeds.
Difference from related HRESULTs
MK_E_NOTBOUND describes a relationship that has not been established; it says this moniker form cannot establish it through the requested path.
Developer and administrator guidance
References
Looking for a different code? Search another status or error code.
