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