IDropSource::QueryContinueDrag
Determines whether a drag-and-drop operation should be continued, canceled, or
completed. You do not call this method directly. The OLE
DoDragDrop function calls this method during a
drag-and-drop operation.
HRESULT QueryContinueDrag(
BOOL fEscapePressed,
|
//Status of escape key since previous call
|
DWORD grfKeyState
|
//Current state of keyboard modifier keys
|
);
|
|
Parameters
-
fEscapePressed
-
[in] Specifies whether the Esc key has been pressed since the previous call to
IDropSource::QueryContinueDrag or to
DoDragDrop if this is the first call to QueryContinueDrag.
A TRUE value indicates the end user has pressed the escape key; a FALSE value
indicates it has not been pressed.
-
grfKeyState
-
[in] Current state of the keyboard modifier keys on the keyboard. Valid values
can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT,
MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.
Return Values
This method supports the standard return values E_UNEXPECTED and
E_OUTOFMEMORY, as well as the following:
-
S_OK
-
The drag operation should continue. This result occurs if no errors are
detected, the mouse button starting the drag-and-drop operation has not been
released, and the Esc key has not been detected.
-
DRAGDROP_S_DROP
-
The drop operation should occur completing the drag operation. This result
occurs if grfKeyState indicates that the key that started the
drag-and-drop operation has been released.
-
DRAGDROP_S_CANCEL
-
The drag operation should be canceled with no drop operation occurring. This
result occurs if fEscapePressed is TRUE, indicating the Esc key has
been pressed.
Remarks
The DoDragDrop function calls IDropSource::QueryContinueDrag
whenever it detects a change in the keyboard or mouse button state during a
drag-and-drop operation. IDropSource::QueryContinueDrag must determine
whether the drag-and-drop operation should be continued, canceled, or
completed based on the contents of the parameters grfKeyState and fEscapePressed.
See Also
DoDragDrop