# IDropTarget

The IDropTarget interface is one of the interfaces you implement to provide drag-and-drop operations in your application. It contains methods used in any application that can be a target for data during a drag-and-drop operation. A drop-target application is responsible for:

- Determining the effect of the drop on the target application.

- Incorporating any valid dropped data when the drop occurs.

- Communicating target feedback to the source so the source application can provide appropriate visual feedback such as setting the cursor.

- Implementing drag scrolling.

- Registering and revoking its application windows as drop targets.

The IDropTarget interface contains methods that handle all these responsibilities except registering and revoking the application window as a drop target, for which you must call the RegisterDragDrop and the RevokeDragDrop functions.

##### When to Implement

Implement the IDropTarget interface if you are developing an application that can act as a target for a drag-and-drop operation. The IDropTarget interface is associated with your application windows and is implemented on your window objects. Call the RegisterDragDrop function to register your window objects as drop targets.

##### When to Use

You do not call the methods of IDropTarget directly. The DoDragDrop function calls the IDropTarget methods during the drag-and-drop operation.

For example, DoDragDrop calls IDropTarget::DragEnter when it detects the mouse has moved over a window that is registered as a drag target. Once the mouse has entered a drag-target window, DoDragDrop calls IDropTarget::DragOver as the mouse moves through the window and calls IDropTarget::DragLeave if the mouse leaves the target window or if the user cancels or completes the drag-and-drop operation. DoDragDrop calls IDropTarget::Drop if the drop finally occurs.

Methods in Vtable Order

IUnknown Methods | Description
QueryInterface | Returns pointers to supported interfaces.
AddRef | Increments reference count.
Release | Decrements reference count.

IDropTarget Methods | Description
DragEnter | Determines whether a drop can be accepted and its effect if it is accepted.
DragOver | Provides target feedback to the user through the DoDragDrop function.
DragLeave | Causes the drop target to suspend its feedback actions.
Drop | Drops the data into the target window.

See Also

DoDragDrop, IDropSource, RegisterDragDrop, RevokeDragDrop