IDropTarget::D rop 方法 (oleidl.h)
将源数据合并到目标窗口中,删除目标反馈,并释放数据对象。
语法
HRESULT Drop(
[in] IDataObject *pDataObj,
[in] DWORD grfKeyState,
[in] POINTL pt,
[in, out] DWORD *pdwEffect
);
parameters
[in] pDataObj
指向拖放操作中传输的数据对象上的 IDataObject 接口的指针。
[in] grfKeyState
键盘上键盘修改键的当前状态。 可能的值可以是MK_CONTROL、MK_SHIFT、MK_ALT、MK_BUTTON、MK_LBUTTON、MK_MBUTTON和MK_RBUTTON的任何标志的组合。
[in] pt
包含屏幕坐标中的当前光标坐标的 POINTL 结构。
[in, out] pdwEffect
输入时,指向 DoDragDrop 函数的 pdwEffect 参数值的指针。 返回时, 必须包含 DROPEFFECT 标志之一,该标志指示放置操作的结果。
返回值
此方法在成功时返回S_OK。 其他可能的值包括以下内容。
返回代码 | 说明 |
---|---|
|
发生意外错误。 |
|
pdwEffect 参数无效。 |
|
可用于此操作的内存不足。 |
注解
请勿直接调用此方法。 当用户完成拖放操作时, DoDragDrop 函数会调用此方法。
在实现 Drop 时,必须将数据对象合并到目标中。 使用 IDataObject 中提供的格式(通过 pDataObj 提供)以及修改键的当前状态来确定如何合并数据,例如链接或嵌入。
除了合并数据外,还必须像在 IDropTarget::D ragLeave 方法中一样进行清理:
- 删除当前显示的任何目标反馈。
- 释放对数据对象的任何引用。
- 删除正在显示的任何源反馈。
- 对数据进行任何必要的更改,例如,如果操作是移动,则删除数据。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |