DROPEFFECT
The DoDragDrop
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