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.

QuickInfo

  Windows NT: Use version 3.1 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in ole2.h.
  Import Library: Included as a resource in ole32.dll.

See Also

RevokeDragDrop