Design and Implement Drop Source User Feedback

The first step in implementing a source for drag and drop is to determine what kind of user feedback to provide during the operation. The minimal requirement is to set the mouse cursor appropriately. You might also want to indicate that a move operation will delete the data in the source, but there are no user interface standards for that. In Cosmo, we'll worry only about the mouse cursor. If the standard OLE cursors for each possible effect are sufficient for your needs, your implementation of IDropSource::GiveFeedback will be trivial. (See the screen shot on the following page.)

The DROPEFFECT_SCROLL flag can be included with the move, copy, and link effect flags to indicate that the target is currently scrolling. This flag is just a modifier of the basic effect and has no other impact on the data transfer itself.

If your implementation requires other cursors, you are free to use whatever you feel is appropriate. You could draw a big skull and crossbones for DROPEFFECT_NONE, a moving van for DROPEFFECT_MOVE, or a camera for DROPEFFECT_COPY. The people who will see these cursors are your customers—do what is best for them.