На этом шаге мы рассмотрим интерфейс "Перетащить и опустить" источника.
Интерфейс "Перетащить и опустить" источника управляется с помощью интерфейса IDropSource. В этом интерфейсе содержатся элементы, приведенные в листинге 1.
Листинг 1. Интерфейс IDropSource
DECLARE_INTERFACE_ (IDropSource, IUnkown) { // *** методы IUnknown *** HRESULT Querylnterface (THIS. REFIID riid, LPVOID FAR* ppvObj); ULONG AddRef (THIS); ULONG Release (THIS); // *** методы IDropSource *** HRESULT QueryContinueDrag (THIS_ BOOL fEscapePressed, DWORD grfKeyState); HRESULT GiveFeedBack (THIS_ DWORD dwEffect); };
В состав интерфейса входит пять функций, управляющих в источнике операциями "перетаскивания". В IDropSource существуют два метода - QueryContinueDrag() и GiveFeedBack().
С помощью функции QueryContinueDrag() можно определить, следует ли продолжать операцию перетаскивания.
Функция GiveFeedBack() используется для управления обратной связью с пользователем во время перетаскивания объекта. Обратная связь включает в себя два различных аспекта: может измениться форма указателя и внешний вид перемещаемых данных.
На следующем шаге мы рассмотрим интерфейс "Перетащить и опустить" приемника.