大picuture:我試圖注入我自己的包裝探險家的拖放n下降。我的代碼被注入到資源管理器中,我嘗試用我自己的替換掉目標。掛鉤資源管理器拖放失敗
爲了做到這一點我做的:
- 找到所有IE窗口(使用EnumWindows的,並檢查每個窗口過程協會)。
- 對於我運行下述(什麼也不做)代碼中的每個窗口:
*下降目標= lpDT(*下降目標)GetProp(hwnds [I]中,L 「OleDropTargetInterface」); //獲得現有放置目標
HRESULT res1 = :: RevokeDragDrop(hwnds [i]); //撤銷現有放置目標
HRESULT res2 = :: RegisterDragDrop(hwnds [i],lpDT); //並重新註冊放置目標
現在,代碼不會更改放置目標。我只是取消註冊並重新註冊同一個目標。
在所有資源管理器窗口上運行後,我得到res1 ==「應用程序調用了一個接口,該接口被編組爲不同的線程。我發現每一個窗口。
如果我忽略錯誤(僅用於測試),並繼續進行替換,那麼當前瀏覽器將停止拖動桌面上的文件(僅用於更改圖標位置)。順便說一句,令人驚訝的是,在兩個不同文件夾之間拖動文件仍然有效。我的代碼是從一個資源管理器線程(注入資源管理器)運行。
有沒有辦法解決這個問題?