Шаг 14.
Технология OLE. Функции интерфейса "Перетащить и опустить"

    На этом шаге мы рассмотрим функции интерфейса "Перетащить и опустить".

    В OLE существует функция DoDragDrop, с помощью которой начинаются основные операции "перетаскивания". Эта функция имеет четыре параметра и возвращает значение типа HRESULT. Прототип функции DoDragDrop имеет следующий вид:

    HRESULT DoDragDrop
         (
           LPDATAOBJECT pDataObject,
           LPDROPSOURCE pDropSource,
           DWORD dwEffect,
           LPDWORD pdwEffect
         );

    Параметры DoDragDrop() означают следующее.

   
Таблица 1. Перечислимые значения DROPEFFECT
Значение Определение Описание
DROPEFFECT_NONE
0
Целевое приложение операции "Перетащить и опустить" не может принять перемещаемые данные
DROPEFFECT_COPY
1
Оригинальные данные копируются в целевое приложение. В источнике данные не изменяются
DROPEFFECT_MOVE E
2
Оригинальные данные копируются в целевое приложение и удаляются из источника
DROPEFFECT_LINK
4
Оригинальные данные остаются в истопнике, и с ними устанавливается связь
DROPEFFECT_SCROLL
0x80000000
Возникла операция прокрутки. Это значение используется совместно с одним из других значений DROPEFFECT

    Значения, возвращаемые функцией DoDragDrop() приводятся в таблице 2. Очень важно проверить возвращаемые значения для определения статуса завершения операции, чтобы определить, была ли она прервана, успешно выполнена или по каким-либо причинам не удалась.

   
Таблица 2. Значения, возвращаемые функцией DoDragDrop()
Возвращаемое значение Описание
S_OK
Операция "Перетащить и опустить" успешно инициирована
DRAGDROP_S_DROP
Операция "Перетащить и опустить" успешно выполнилась
DRAGDROP_S_CANCEL
Операция "Перетащить и опустить" была прервана
E_OUTOFVEVORY
Недостаточно памяти для завершения операции "Перетащить и опустить"
E_UNSPEC
Операция "Перетащить и опустить" не удалась. Причина неудачи не указывается

    Функция DoDragDrop() сложна в использовании, и прежде чем работать с этой функцией непосредственно, перечитайте документацию по OLE 2 Borland C++ версии 4.5.

    На следующем шаге мы рассмотрим интерфейс активации и редактирования по месту.




Предыдущий шаг Содержание Следующий шаг