Export (0) Print
Expand All

RegisterDragDrop function

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.

Syntax


HRESULT RegisterDragDrop(
  _In_  HWND hwnd,
  _In_  LPDROPTARGET pDropTarget
);

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 value

This function returns S_OK on success. Other possible values include the following.

Return codeDescription
DRAGDROP_E_INVALIDHWND

Invalid handle returned in the hwnd parameter.

DRAGDROP_E_ALREADYREGISTERED

The specified window has already been registered as a drop target.

E_OUTOFMEMORY

Insufficient memory for the operation.

 

Note  If you use CoInitialize or CoInitializeEx instead of OleInitialize to initialize COM, RegisterDragDrop will always return an E_OUTOFMEMORY error.

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 application thread that calls the RegisterDragDrop function must be pumping messages, presumably by calling the GetMessage function with a NULLhWnd parameter, because OLE creates windows on the thread that need messages processed. If this requirement is not met, any application that drags an object over the window that is registered as a drop target will hang until the target application closes.

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.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Ole2.h

Library

Ole32.lib

DLL

Ole32.dll

See also

RevokeDragDrop

 

 

Community Additions

ADD
Show:
© 2014 Microsoft