我正在尝试为我们的自定义文件类型编写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