19.2.2.1 Preview events
The attribute DROP_SITE_EVENT_MASK sets a mask on the drop-site item to specify if the
region(s) within the drop-site should receive preview events. Preview events indicate the
state of the mouse relative to the drop-site. Preview events are indicated when
event_action() returns ACTION_DRAG_PREVIEW (in this case, event_id() returns
either LOC_WINENTER or LOC_WINEXIT). These events cue the drop-site when the mouse
enters or leaves a drop-site region. Drop-sites can also select for LOC_DRAG events that are
sent as the mouse moves across a region. These events are delivered to the event procedure of
the drop-site item’s owner, (the pointer coordinates are contained within the event). The
coordinates are in the drop-site owner’s coordinate space.
DROP_SITE_EVENT_MASK is only a hint since there is no guarantee the source of the drag will
send previewing events. When preview events arrive, an application may invert the image of
the drop-site. This or some other change that indicates the area is an acceptable drop-site.
An uninterpreted ID specified with the attribute DROP_SITE_ID may be used by the applica-
tion program to distinguish one drop-site from the next. This attribute is useful when more
than one drop-site has been set on an object. This
ID is sent along with the
ACTION_DRAG_PREVIEW, ACTION_DRAG_MOVE, and ACTION_DRAG_COPY events. If no
DROP_SITE_ID is set, the package creates a unique ID for each drop-site region.
19.2.2.2 Event forwarding
The procedure dnd_is_forwarded() ...