将源数据合并到目标窗口中,删除目标反馈并释放数据对象。
Syntax
HRESULT Drop(
[in] IDataObject *pDataObj,
[in] DWORD grfKeyState,
[in] POINTL pt,
[in, out] DWORD *pdwEffect
);
参数
[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。 其他可能的值包括以下内容。
| 返回代码 | Description |
|---|---|
|
OLE 拖放作已取消。 |
|
发生意外错误。 |
|
pdwEffect 参数无效。 |
|
此作的内存不足。 |
注解
不直接调用此方法。 当用户完成拖放作时 ,DoDragDrop 函数将调用此方法。
在实现 Drop 中,必须将数据对象合并到目标中。 使用 IDataObject 中提供的格式(通过 pDataObj 提供),以及修改键的当前状态,以确定数据如何合并,例如链接或嵌入。
除了合并数据之外,还必须像 在 IDropTarget::D ragLeave 方法中那样清理:
- 删除当前显示的任何目标反馈。
- 释放对数据对象的任何引用。
- 删除正在显示的任何源反馈。
- 对数据进行任何必要的更改,例如,如果作已移动,则删除数据。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
| 支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| Header | oleidl.h |