What does HRESULT 0x00040100 (DRAGDROP_S_DROP) mean?

 
Previous Next
OLE_S_MAC_CLIPFORMAT DRAGDROP_S_CANCEL

DRAGDROP_S_DROP

OLE drag-and-drop completed with a drop

DRAGDROP_S_DROP is HRESULT 262400 (0x00040100) from winerror.h. The documented description is “Successful drop took place.” The high-order severity bit is clear, so this is a success result, but it carries more information than plain S_OK.

DoDragDrop ended because the user completed the drop and the target accepted the negotiated operation.

Where the result is encountered

  • This result can appear in OLE drag loops returned by DoDragDrop; record the producing interface and method.
  • This result can appear in file or object transfer between shell and desktop applications; record the producing interface and method.
  • It can appear in custom IDropSource and IDropTarget implementations; record the producing interface and method.

State to verify

The central question is whether the final effect returned to the source matches what the target actually committed, including copy, move, or link semantics.

Diagnostic sequence

  • Capture the raw HRESULT 0x00040100 immediately after the returning method and record whether the caller used SUCCEEDED, FAILED, equality testing, or exception translation.
  • Verify the method-specific state: the final effect returned to the source matches what the target actually committed, including copy, move, or link semantics.

Evidence to preserve

  • Preserve allowed effects passed into DoDragDrop.
  • Preserve final effect returned through pdwEffect.
  • Preserve target window and data format selected.
  • Preserve source cleanup or delete action for a move.
  • Preserve user cancellation and exception traces from callbacks.

Correct handling, retry, and recovery

Commit source-side postprocessing only for the returned effect. A move must not delete source data until the target has completed its part and the final effect confirms the move.

Difference from nearby HRESULT values

DRAGDROP_S_CANCEL ends the loop without a drop. DRAGDROP_S_USEDEFAULTCURSORS is a feedback instruction during the loop, not the final transfer outcome.

Practical validation scenario

A file manager starts DoDragDrop with copy and move allowed. The target stores the item and returns move; the source deletes the original only after receiving it and validating the final effect.

Developer and administrator guidance

References


Looking for a different code? Search another status or error code.