This documentation is archived and is not being maintained.


Call the DoDragDrop member function to perform a drag-and-drop operation for this data source, typically in an CWnd::OnLButtonDown handler.

   LPCRECT lpRectStartDrag = NULL,
   COleDropSource* pDropSource = NULL 



Drag-and-drop operations that are allowed on this data source. Can be one or more of the following:

  • DROPEFFECT_COPY   A copy operation could be performed.

  • DROPEFFECT_MOVE   A move operation could be performed.

  • DROPEFFECT_LINK   A link from the dropped data to the original data could be established.

  • DROPEFFECT_SCROLL   Indicates that a drag scroll operation could occur.


Pointer to the rectangle that defines where the drag actually starts. For more information, see the following Remarks section.


Points to a drop source. If NULL then a default implementation of COleDropSource will be used.

Drop effect generated by the drag-and-drop operation; otherwise DROPEFFECT_NONE if the operation never begins because the user released the mouse button before leaving the supplied rectangle.

The drag-and-drop operation does not start immediately. It waits until the mouse cursor leaves the rectangle specified by lpRectStartDrag or until a specified number of milliseconds have passed. If lpRectStartDrag is NULL, the size of the rectangle is one pixel.

The delay time is specified by a registry key setting. You can change the delay time by calling CWinApp::WriteProfileString or CWinApp::WriteProfileInt. If you do not specify the delay time, a default value of 200 milliseconds is used. Drag delay time is stored as follows:

  • Windows NT   Drag delay time is stored in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.

  • Windows 3.x   Drag delay time is stored in the WIN.INI file, under the [Windows} section.

  • Windows 95/98   Drag delay time is stored in a cached version of WIN.INI.

For more information about how drag delay information is stored in either the registry or the .INI file, see WriteProfileString in the Platform SDK.

For more information, see the article Drag and Drop: Implementing a Drop Source.