| Previous | Next |
| INPLACE_E_NOTUNDOABLE | CONVERT10_E_OLESTREAM_GET |
INPLACE_E_NOTOOLSPACE
Space for tools is not available
Windows defines INPLACE_E_NOTOOLSPACE as 2147746209 (0x800401A1; signed value -2147221087). AllStat’s description is “Space for tools is not available”. The code marks a specific failure: the container cannot allocate the border or tool space requested for in-place activation. The relevant operation is negotiating menus, toolbars, and border space between an active OLE object and its container.
The high bit in 0x800401A1 is set, so this is a failure rather than a success or informational result. Its facility field is 4 (FACILITY_ITF) and its low 16-bit code is 417 (0x01A1). Those bit fields classify the value, but they do not identify the failing object by themselves; the native method, object identity, and first producer of INPLACE_E_NOTOOLSPACE remain essential.
Where it is raised
Understanding INPLACE_E_NOTOOLSPACE requires this subsystem context: In-place activation is a negotiation between the object, client site, frame, and document window. For INPLACE_E_NOTOOLSPACE, undo capability and border space are independent resources and need distinct recovery paths.
- Associate
INPLACE_E_NOTOOLSPACEwith one exact operation in IOleInPlaceObject, IOleInPlaceSite, active-object negotiation, undo state, border space, and tool-window layout. - Confirm that
INPLACE_E_NOTOOLSPACEcame from negotiating menus, toolbars, and border space between an active OLE object and its container, rather than from cleanup or a wrapper that ran afterward. - Preserve any IErrorInfo, underlying Win32 result, provider message, or callback failure that preceded
INPLACE_E_NOTOOLSPACE; the HRESULT alone should not erase a more specific cause.
Telemetry checklist
A useful INPLACE_E_NOTOOLSPACE incident records the in-place activation phase, active object, container and object rectangles, border widths, frame and document windows, undo transaction state, and UI deactivation sequence. For INPLACE_E_NOTOOLSPACE, also retain the application and component build, architecture, process and thread IDs, COM apartment, operation correlation ID, elapsed time, and the first state-changing event before the failure. When logging INPLACE_E_NOTOOLSPACE, redact content and credentials while preserving types, lengths, hashes, opaque identities, and lifecycle generations needed to reproduce its contract.
- For
INPLACE_E_NOTOOLSPACE, log frame/document rectangles and requested BORDERWIDTHS. - For
INPLACE_E_NOTOOLSPACE, record which component already owns each border side. - For
INPLACE_E_NOTOOLSPACE, reproduce after layout stabilization and with toolbars hidden.
Why this result is specific
INPLACE_E_NOTOOLSPACEcan result when the requested border widths exceed the available frame area.INPLACE_E_NOTOOLSPACEcan result when multiple active tool components reserve incompatible space.INPLACE_E_NOTOOLSPACEcan result when a resize or DPI change invalidates rectangles during activation.
Investigation order
- Capture
INPLACE_E_NOTOOLSPACEat the first native return before a wrapper maps it to a generic exception. - Identify the exact object, method, and lifecycle phase involved in negotiating menus, toolbars, and border space between an active OLE object and its container.
- Log frame/document rectangles and requested BORDERWIDTHS.
- Record which component already owns each border side.
- Reproduce after layout stabilization and with toolbars hidden.
- Reproduce
INPLACE_E_NOTOOLSPACEwith one controlled input or state change, and verify that the correction changes the decisive evidence rather than merely hiding the result.
Safe handling
Correction. For INPLACE_E_NOTOOLSPACE, reduce or reflow tool UI, deactivate conflicting components, or fall back to out-of-place activation. Retry boundary. Retry after layout or ownership changes; immediate retries during the same resize sequence can oscillate. Before repeating the INPLACE_E_NOTOOLSPACE operation, deactivate any partially active object, restore frame and document-window border space, and close or commit the current undo unit consistently.
Practical scenario
A narrow document window cannot host the embedded editor’s top and side toolbars; the container opens the object in a separate window. This isolates INPLACE_E_NOTOOLSPACE within OLE in-place activation and container coordination and provides a regression test for the stated correction.
Difference from related HRESULTs
INPLACE_E_NOTUNDOABLE concerns edit history; INPLACE_E_NOTOOLSPACE concerns physical UI negotiation during activation. For INPLACE_E_NOTOOLSPACE, keep those outcomes separate in exception mappings, telemetry dimensions, user messages, and automated retry policy.
Developer and administrator guidance
For INPLACE_E_NOTOOLSPACE, model activation, UI activation, border negotiation, and undo as separate states, and balance every site or frame callback even when a later phase fails. Regression coverage for INPLACE_E_NOTOOLSPACE should include objects without undo, zero and insufficient border space, tool-window changes, nested activation, frame destruction, and failure during UI deactivation.
Operational repair for INPLACE_E_NOTOOLSPACE must target the evidence-backed owner: compare the object server in a known compatible container; layout or undo contract failures should not be treated as generic COM-registration damage. Retain before-and-after traces for INPLACE_E_NOTOOLSPACE so the change can be attributed and reversed.
References
- Microsoft: generic COM error codes — official Microsoft documentation relevant to
INPLACE_E_NOTOOLSPACE. - Microsoft: HRESULT values — official Microsoft documentation relevant to
INPLACE_E_NOTOOLSPACE. - Microsoft: IOleInPlaceObject — official Microsoft documentation relevant to
INPLACE_E_NOTOOLSPACE. - Microsoft: IOleInPlaceSite — official Microsoft documentation relevant to
INPLACE_E_NOTOOLSPACE.
Looking for a different code? Search another status or error code.