IDropSource
The IDropSource
interface is one of the interfaces you implement to provide drag-and-drop
operations in your application. It contains methods used in any application
used as a data source in a drag-and-drop operation. The data source application
in a drag-and-drop operation is responsible for:
Determining the data being
dragged based on the user s selection.
Initiating the drag-and-drop
operation based on the user s mouse actions.
Generating some of the visual
feedback during the drag-and-drop operation, such as setting the cursor and highlighting
the data selected for the drag-and-drop operation.
Canceling or completing the
drag-and-drop operation based on the user s mouse actions.
Performing any action on the
original data caused by the drop operation, such as deleting the data on a drag
move.
IDropSource contains the methods for generating visual feedback
to the end user and for canceling or completing the drag-and-drop operation.
You also need to call the DoDragDrop
When to Implement
Implement IDropSource
if you are developing a container or server application that can act as a data
source for a drag-and-drop operation. The IDropSource interface is only
required during the drag-and-drop operation.
If you
implement the IDropSource interface, you must also implement the IDataObject
You can use
the same implementation of IDataObject for drag-and-drop data as for the
data object offered to the clipboard. Once you have implemented clipboard
operations in your application, you can add drag-and-drop operations with only
a little extra work.
When to Use
You don t
usually call IDropSource methods directly. Instead, your data source
calls the DoDragDrop
For example, DoDragDrop
calls IDropSource::GiveFeedback
Methods in Vtable Order
IUnknown Methods |
Description |
QueryInterface |
Returns
pointers to supported interfaces. |
AddRef |
Increments
reference count. |
Release |
Decrements
reference count. |
IDropSource
Methods |
Description |
QueryContinueDrag |
Determines
whether a drag-and-drop operation should continue. |
GiveFeedback |
Gives
visual feedback to an end user during a drag-and-drop operation. |
See Also