2017-02-21 74 views
-2

我正在尋找文檔如何掛鉤IDropTarget :: Drop函數。 我想將我的dll作爲插件添加到目標應用程序中,並掛鉤IDropTarget :: Drop函數以獲取已刪除的文件。有沒有人已經做過類似的實施?如何掛鉤IDropTarget :: Drop

回答

-1

你可能不得不接管在註冊表中註冊,以便Windows將激活您的自定義應用程序來代替。然後,您必須生成實際的應用程序,並在調用CoRegisterClassObject後將其手動連接到實際應用程序,然後將其拖放到該應用程序。這不是初學COM的東西,只處理.exe上的下載並啓動其註冊的文件類型。爲了處理應用程序窗口上的丟棄,您也可以在實際應用程序中調用CreateProcess時注入一個.dll文件。您還必須考慮應用程序可能使用舊的WM_DROPFILES來代替。

這是非常複雜的,即使你可以全部工作,它仍然不能處理用戶從開始菜單啓動應用程序然後將文件放到窗口上的情況。要處理這種情況,您還必須在Image File Execution Options密鑰中註冊自己作爲它的調試器,以便注入.dll。

在這一點上我們還遠遠沒有到「邪惡」的領地。以這種方式超越其他應用程序是不可接受的。

您唯一真正的選擇是詢問原作者是否可以嚮應用程序添加插件支持。