Home COM GDI+ WebBrowser Data Access

IDropSource Interface

 

IID_IDropSource

{00000121-0000-0000-C000-000000000046}

 

 

The IDropSource interface is one of the interfaces you implement to provide drag-and-drop operations in your application. It contains methods used in any application used as a data source in a drag-and-drop operation. The data source application in a drag-and-drop operation is responsible for:

  • Determining the data being dragged based on the user's selection.

  • Initiating the drag-and-drop operation based on the user's mouse actions.

  • Generating some of the visual feedback during the drag-and-drop operation, such as setting the cursor and highlighting the data selected for the drag-and-drop operation.

  • Canceling or completing the drag-and-drop operation based on the user's mouse actions.

  • Performing any action on the original data caused by the drop operation, such as deleting the data on a drag move.

IDropSource contains the methods for generating visual feedback to the end user and for canceling or completing the drag-and-drop operation. You also need to call the DoDragDrop, RegisterDragDrop, and RevokeDragDrop functions in drag-and-drop operations.

You don't usually call IDropSource methods directly. Instead, your data source calls the DoDragDrop function when it detects that the user has initiated a drag-and-drop operation. Then, DoDragDrop calls the IDropSource methods during the drag-and-drop operation.

For example, DoDragDrop calls IDropSource::GiveFeedback when you need to change the cursor shape or when you need to provide some other visual feedback. DoDragDrop calls IDropSource::QueryContinueDrag when there is a change in the mouse button state to determine if the drag-and-drop operation was canceled or completed.
 

 

Methods in VTable order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IDropSource Methods

Description

QueryContinueDrag

Determines whether a drag-and-drop operation should continue.

GiveFeedback

Gives visual feedback to an end user during a drag-and-drop operation.

 

QueryContinueDrag

 

FUNCTION IDropSource_QueryContinueDrag ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL fEscapePressed AS LONG _

, BYVAL grfKeyState AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[3] USING IDropSource_QueryContinueDrag (pthis, fEscapePressed, grfKeyState) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

GiveFeedback

 

FUNCTION IDropSource_GiveFeedback ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL dwEffect AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[4] USING IDropSource_GiveFeedback (pthis, dwEffect) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

Page last updated on Monday, 29 May 2006 15:32:10 +0200