Поделиться через


Функция SHDoDragDrop (shlobj_core.h)

Выполняет операцию перетаскивания. Поддерживает создание источника перетаскивания по запросу, а также перетаскивание изображений.

Синтаксис

SHSTDAPI SHDoDragDrop(
  [in]  HWND        hwnd,
  [in]  IDataObject *pdata,
  [in]  IDropSource *pdsrc,
  [in]  DWORD       dwEffect,
  [out] DWORD       *pdwEffect
);

Параметры

[in] hwnd

Тип: HWND

Дескриптор окна, используемого для получения изображения перетаскивания. Это значение может иметь значение NULL. Дополнительные сведения см. в разделе Примечания.

[in] pdata

Тип: IDataObject*

Указатель на интерфейс IDataObject для объекта данных, содержащего перетаскиваемые данные.

[in] pdsrc

Тип: IDropSource*

Указатель на реализацию интерфейса IDropSource , который используется для связи с источником во время операции перетаскивания.

В Windows Vista, если это значение равно NULL, оболочка создает исходный объект для удаления.

[in] dwEffect

Тип: DWORD

Эффекты, которые источник допускает в операции перетаскивания. Наиболее важным эффектом является то, допускает ли операция перетаскивания перемещение. Список возможных значений см. в разделе DROPEFFECT.

[out] pdwEffect

Тип: DWORD*

Указатель на значение, указывающее, как операция перетаскивания повлияла на исходные данные. Параметр pdwEffect задается только в том случае, если операция не отменена. Список возможных значений см. в разделе DROPEFFECT.

Возвращаемое значение

Тип: HRESULT

Эта функция поддерживает стандартное возвращаемое значение E_OUTOFMEMORY, а также следующие значения:

Код возврата Описание
DRAGDROP_S_DROP
Операция перетаскивания прошла успешно.
DRAGDROP_S_CANCEL
Операция перетаскивания была отменена.
E_UNSPEC
Произошла непредвиденная ошибка.

Комментарии

Начиная с Windows Vista, если изображение перетаскивания еще не хранится в объекте данных pdtobj и изображение перетаскивания невозможно получить из окна, указанного hwnd, оболочка предоставляет универсальное изображение перетаскивания. Невозможно получить изображение перетаскивания из указанного окна, так как hwnd имеет значение NULL или указанное окно не поддерживает сообщение DI_GETDRAGIMAGE.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header shlobj_core.h (включая Shlobj.h)
Библиотека Shell32.lib
DLL Shell32.dll (версия 6.0 или более поздняя)
Набор API ext-ms-win-shell-shell32-l1-2-1 (представлено в Windows 10 версии 10.0.10240)