我正在嘗試爲我們的自定義文件類型編寫Windows資源管理器縮略圖處理程序。我在預覽窗格中可以正常工作,但無法使其適用於縮略圖。縮略圖提供程序不工作
Windows甚至似乎沒有試圖調用DllGetClassObject入口點。
在繼續之前,請注意我正在使用Windows 7和非託管C++。
我已經註冊了下面的值在註冊表中:
HKCR\CLSID\<my guid>
HKCR\CLSID\<my guid>\InprocServer32 (default value = path to my DLL)
HKCR\CLSID\<my guid>\InprocServer32\ThreadingModel (value = "Apartment")
HKCR\.<my ext>\shellex\{E357FCCD-A995-4576-B01F-234630154E96} (value = my guid)
我還用贏SDK樣本試過了,還是不行。此外,這篇文章中的示例項目(http://www.codemonkeycodes.com/2010/01/11/ithumbnailprovider-re-visited/),並不起作用。
我是shell編程的新手,所以不太確定調試的最佳方式。我試着將調試器附加到explorer.exe,但這似乎不起作用(斷點被禁用,並且我的OutputDebugStrings中沒有任何一個顯示在輸出窗口中)。請注意,我試圖在註冊表中設置「DesktopProcess」,如WinSDK文檔中所述,用於調試shell,但我仍然只能在任務管理器中看到一個explorer.exe - 這樣「可能」就是我爲什麼不能調試它?
任何幫助,將不勝感激!
Regards, Dan。
嗨。我正在使用x64 Windows7。因爲這不僅僅是你的樣品不適合我 - 這是MS樣品和我自己的代碼,也沒有工作 - 我猜還有別的東西。由於我是Windows shell編程的新手(我的背景是應用程序和遊戲開發),我不知道調試它的最佳方式。我試着將我的調試器(MS VS 2005)附加到explorer.exe,但我沒有看到我的任何跟蹤日誌。 – Dan 2010-05-04 20:22:07
一個愚蠢的問題,我敢肯定你沒有忽視這個,但是你註冊了DLL與regsrv32的64位版本嗎? – Jeremy 2010-05-04 22:30:38
是的,我明確鍵入\ windows \ system32 \ regsvr32.exe。 你知道Windows在什麼時候應該調用我的DllGetClassObject函數嗎?看看它是否到達那將是有用的。 – Dan 2010-05-05 08:55:58