2017-02-21 72 views
-2

我正在寻找文档如何挂钩IDropTarget :: Drop函数。 我想将我的dll作为插件添加到目标应用程序中,并挂钩IDropTarget :: Drop函数以获取已删除的文件。有没有人已经做过类似的实施?如何挂钩IDropTarget :: Drop

回答

-1

你可能不得不接管在注册表中注册,以便Windows将激活您的自定义应用程序来代替。然后,您必须生成实际的应用程序,并在调用CoRegisterClassObject后将其手动连接到实际应用程序,然后将其拖放到该应用程序。这不是初学COM的东西,只处理.exe上的下载并启动其注册的文件类型。为了处理应用程序窗口上的丢弃,您也可以在实际应用程序中调用CreateProcess时注入一个.dll文件。您还必须考虑应用程序可能使用旧的WM_DROPFILES来代替。

这是非常复杂的,即使你可以全部工作,它仍然不能处理用户从开始菜单启动应用程序然后将文件放到窗口上的情况。要处理这种情况,您还必须在Image File Execution Options密钥中注册自己作为它的调试器,以便注入.dll。

在这一点上我们还远远没有到“邪恶”的领地。以这种方式超越其他应用程序是不可接受的。

您唯一真正的选择是询问原作者是否可以向应用程序添加插件支持。