Winapi 如何通知用户将要将文件放入我的窗口

Winapi 如何通知用户将要将文件放入我的窗口,winapi,mouseevent,mouse,Winapi,Mouseevent,Mouse,WM_MOUSEMOVE在鼠标移动到我的窗口上时发送,无论是否按住鼠标按钮 但是,如果用户正在将文件携带到我的窗口中,则上述情况不正确 我怎样才能得到这个特殊情况的通知 我可以要求最低限度的Windows7,甚至Windows10 我发现这几乎是一样的,但我无法实现IDropTargetCOM接口,因为我的项目还没有创建为一个 编辑:我将从上面的链接问题中尝试WH\u MOUSE\u ll。COM没有库要求。如果你愿意,你可以在C中实现 IDROPMAPTION/CODEN>,尽管C++使它更简

WM_MOUSEMOVE在鼠标移动到我的窗口上时发送,无论是否按住鼠标按钮

但是,如果用户正在将文件携带到我的窗口中,则上述情况不正确

我怎样才能得到这个特殊情况的通知

我可以要求最低限度的Windows7,甚至Windows10

我发现这几乎是一样的,但我无法实现
IDropTarget
COM接口,因为我的项目还没有创建为一个


编辑:我将从上面的链接问题中尝试
WH\u MOUSE\u ll

COM没有库要求。如果你愿意,你可以在C中实现<代码> IDROPMAPTION/CODEN>,尽管C++使它更简单。它只是解释了如何使用ATL实现COM接口。ATL是微软官方的COM支持库,但您可以使用任何其他库(如WRL或C++/WinRT),也可以不使用任何库。COM有:“COM的唯一语言要求是,代码生成的语言可以创建指针的结构,并可以显式或隐式地通过指针调用函数。”关键是初始化COM并调用
RegisterDragDrop
。您提供的接口可以是C、C++或任何其他可以创建兼容接口的语言。您也可以使用更高级别的
DragAcceptFiles
(或设置适当的窗口样式),在这种情况下,COM内容将为您处理。@StefanMonov使用
RegisterDragDrop
()是否比自己使用鼠标输入事件实现相同的逻辑更容易?不建议在产品环境中使用钩子。您正在处理哪些文件?
DragAcceptFiles
只会发送一条
WM_DROPFILES
消息。此消息在用户删除文件后发送。在此之前,它不允许您响应用户操作。为此,您需要
RegisterDragDrop
IDropTarget