DROPEFFECT  2QU9_BK

The DoDragDrop3YY1_Q5 function and many of the methods in the IDropSource1OJ0ZA3 and IDropTarget132VOW2 interfaces pass information about the effects of a drag-and-drop operation in a DROPEFFECT enumeration.

Valid drop-effect values are the result of applying the OR operation to the values contained in the DROPEFFECT enumeration:

typedef enum tagDROPEFFECT

    DROPEFFECT_NONE   = 0,

    DROPEFFECT_COPY   = 1,

    DROPEFFECT_MOVE   = 2,

    DROPEFFECT_LINK   = 4,

    DROPEFFECT_SCROLL = 0x80000000

}DROPEFFECT;

 

These values have the following meaning:

DROPEFFECT name

Value

Description

DROPEFFECT_NONE

0

Drop target cannot accept the data.

DROPEFFECT_COPY

1

Drop results in a copy. The original data is untouched by the drag source.

DROPEFFECT_MOVE

2

Drag source should remove the data.

DROPEFFECT_LINK

4

Drag source should create a link to the original data.

DROPEFFECT_SCROLL

0x80000000

Scrolling is about to start or is currently occurring in the target. This value is used in addition to the other values.

 

 

Note  Your application should always mask values from the DROPEFFECT enumeration to ensure compatibility with future implementations. Presently, only four of the 32-bit positions in a DROPEFFECT have meaning. In the future, more interpretations for the bits will be added. Drag sources and drop targets should carefully mask these values appropriately before comparing. They should never compare a DROPEFFECT against, say, DROPEFFECT_COPY by:

if (dwDropEffect == DROPEFFECT_COPY)...

 

Instead, the application should always mask for the value or values being sought:

if (dwDropEffect & DROPEFFECT_COPY) == DROPEFFECT_COPY)...

 

or

if (dwDropEffect & DROPEFFECT_COPY)...

 

This allows for the definition of new drop effects, while preserving backwards compatibility with existing code.

 

See Also

DoDragDrop, IDropSource, IDropTarget