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 函数调用 IDropTarget::D rop。
RegisterDragDrop 函数还调用 IDropTarget 指针上的 IUnknown::AddRef 方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ole2.h |
Library | Ole32.lib |
DLL | Ole32.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈