# RegisterDragDrop

Registers the specified window as one that can be the target of an OLE drag-and-drop operation and specifies the IDropTarget instance to use for drop operations.

WINOLEAPI RegisterDragDrop(

HWND hwnd, | //Handle to a window that can accept drops
IDropTarget * pDropTarget | //Pointer to object that is to be target of drop
); |

Parameters

hwnd
  [in] Handle to a window that can be a target for an OLE drag-and-drop operation.
pDropTarget
  [in] Pointer to the IDropTarget interface on the object that is to be the target of a drag-and-drop operation in a specified window. This interface is used to communicate OLE drag-and-drop information for that window.

Return Values

This function supports the standard return value E_OUTOFMEMORY, as well as the following:

S_OK
  The application was registered successfully.
DRAGDROP_E_INVALIDHWND
  Invalid handle returned in the hwnd parameter.
DRAGDROP_E_ALREADYREGISTERED
  The specified window has already been registered as a drop target.

Remarks

If your application can accept dropped objects during OLE drag-and-drop operations, you must call the RegisterDragDrop function. Do this whenever one of your application windows is available as a potential drop target, i.e., when the window appears unobscured on the screen.

The RegisterDragDrop function only registers one window at a time, so you must call it for each application window capable of accepting dropped objects.

As the mouse passes over unobscured portions of the target window during an OLE drag-and-drop operation, the DoDragDrop function calls the specified IDropTarget::DragOver method for the current window. When a drop operation actually occurs in a given window, the DoDragDrop function calls IDropTarget::Drop.

The RegisterDragDrop function also calls the IUnknown::AddRef method on the IDropTarget pointer.

See Also

RevokeDragDrop