2015-03-31 61 views
1

Windows資源管理器縮略圖處理程序調試 - Windows資源管理器縮略圖處理程序的Windows 8.1

再一次我在外面的世界的擺佈,因爲微軟 文檔缺乏或不是最新的,或者總BS。

使用VS2010我創建了一個Thumbnail處理程序(作爲ATL)項目。 我已經更改了項目,因此它針對x64進行了編譯,因爲我正在Windows 8.1 64位計算機上開發 。

構建完成後,我通過\ Windows \ system32文件夾中的regsvr註冊dll,I 會收到一條消息,指出註冊是否正常。使用ShellExView我可以看到 我的DLL是安裝並註冊的。

現在來了一個問題,大家似乎知道,但沒有任何工作對我來說是 如何調試代碼。正如我所說的,我沒有給原始代碼添加任何內容,但我已經在我可以提交的每個函數中放置了斷點。我沒有看到其他任何分機註冊到PLT分機 。

我將調試應用程序設置爲包含* .plt文件的C:\ Windows \ explorer.exe c:\ somefolder \。 在調試輸出窗口,我從來沒有看到我的dll被加載,所以當然不應該打中斷點 。

我試着執行vs2010作爲管理員,而不是管理員,我試圖在 開始調試之前殺死所有的探險家,而不是任何東西。

那麼祕密是什麼?

在此先感謝

+0

您在縮略圖處理程序中實現了哪些接口? – 2015-04-01 04:12:46

+0

當我選擇ATL項目作爲DLL和縮略圖處理程序時,接口是由vs2010自動生成的。我知道我需要填寫我的代碼,但是我必須對基本代碼做任何事情才能看到被調用的內容,而沒有實際執行任何操作? – 2015-04-01 12:04:51

+0

你的擴展實現了IExtractmage或IThumbnailProvioder嗎?如何將文件加載到您的擴展?使用IInitializeWithStream或IPersistFile?或者你不知道? – 2015-04-01 12:11:11

回答

0

縮略圖處理程序,如因安全原因縮略圖處理程序提取主機加載。如果你想通過瀏覽器加載你的處理器直接您必須創建額外的註冊表DWORD值:

HKEY_CLASSES_ROOT\CLSID\{GUID}\DisableProcessIsolation = 1 

其中{GUID}是您的處理程序的CLSID。