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,Shell 会为你创建一个放置源对象。
[in] dwEffect
类型:DWORD
源在拖放操作中允许的效果。 最重要的效果是拖放操作是否允许移动。 有关可能值的列表,请参阅 DROPEFFECT。
[out] pdwEffect
类型: DWORD*
指向值的指针,该值指示拖放操作如何影响源数据。 仅当操作未取消时,才会设置 pdwEffect 参数。 有关可能值的列表,请参阅 DROPEFFECT。
返回值
类型: HRESULT
此函数支持标准返回值E_OUTOFMEMORY,以及以下值:
返回代码 | 说明 |
---|---|
|
拖放操作成功。 |
|
拖放操作已取消。 |
|
出现了意外错误。 |
注解
从 Windows Vista 开始,如果拖动图像尚未存储在数据对象 pdtobj 中,并且无法从 hwnd 指定的窗口中获取拖动图像,则 Shell 将提供通用拖动图像。 由于 hwnd 为 NULL 或指定的窗口不支持DI_GETDRAGIMAGE消息,因此无法从指定窗口获取拖动图像。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shlobj_core.h (包括 Shlobj.h) |
Library | Shell32.lib |
DLL | Shell32.dll (6.0 或更高版本) |
API 集 | ext-ms-win-shell-shell32-l1-2-1 (在 Windows 10 版本 10.0.10240 中引入) |