2015-03-31 58 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。

相关问题