RegisterDragDrop 函数 (ole2.h)
将指定窗口注册为可以是 OLE 拖放操作的目标窗口,并指定要用于删除操作的 IDropTarget 实例。
语法
HRESULT RegisterDragDrop(
[in] HWND hwnd,
[in] LPDROPTARGET pDropTarget
);
参数
[in] hwnd
可成为 OLE 拖放操作目标的窗口的句柄。
[in] pDropTarget
指向指定窗口中要作为拖放操作目标的对象的 IDropTarget 接口的指针。 此接口用于传达该窗口的 OLE 拖放信息。
返回值
此函数返回成功S_OK。 其他可能的值包括以下内容。
返回代码 | 描述 |
---|---|
|
hwnd 参数中返回的句柄无效。 |
|
指定的窗口已注册为放置目标。 |
|
操作内存不足。 |
言论
如果应用程序可以在 OLE 拖放操作期间接受已删除的对象,则必须调用 RegisterDragDrop 函数。 每当某个应用程序窗口作为潜在删除目标可用时执行此操作;也就是说,当窗口在屏幕上未显示时。
调用 RegisterDragDrop 函数的应用程序线程必须泵送消息,这大概是通过调用具有 NULLhWnd 参数的 GetMessage 函数,因为 OLE 在需要处理消息的线程上创建窗口。 如果未满足此要求,则在目标应用程序关闭之前,将对象拖动到注册为放置目标的窗口上的任何应用程序都将挂起。
RegisterDragDrop 函数一次只注册一个窗口,因此必须为能够接受已删除对象的每个应用程序窗口调用它。
当鼠标在 OLE 拖放操作期间遍历目标窗口的未遮挡部分时,DoDragDrop 函数将调用当前窗口的指定 IDropTarget::D ragOver 方法。 当删除操作实际发生在给定窗口中时,doDragDrop 函数
RegisterDragDrop 函数还对 IDropTarget 指针调用 IUnknown::AddRef 方法。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | ole2.h |
库 | Ole32.lib |
DLL | Ole32.dll |