Sti*_*gma 2 c++ com windows-shell thumbnails
我正在尝试开发一个IThumbnailProvider
在 Windows 7 中使用的。由于这个特定的缩略图也将依赖于同一目录中的一些其他文件,我需要使用除IInitializeWithStream
路径以外的其他东西来使用,这是IInitializeWithItem
. (或者,我可以使用IInitializeWithFile
,但这显然更令人不悦。)
无论我做什么,我都无法让它发挥作用。我有微软的FileTypeVerifier.exe
工具,它允许使用IInitializeWithItem
,但是当资源管理器调用它时,它似乎只是尝试IInitializeWithStream
过。(这是通过临时实现所述接口进行测试的,并且 Beep() 在其中消失Initialize()
)我忘记配置什么了吗?
简而言之:我如何让它发挥作用?
好吧,我终于知道是怎么回事了。引用MSDN 网站上的Building Thumbnail Providers链接:
在某些情况下,无法使用流进行初始化。在您的缩略图提供程序未实现 IInitializeWithStream 的情况下,它必须选择退出在隔离进程中运行,当流发生更改时,系统索引器默认将其放置在该进程中。要选择退出进程隔离功能,请设置以下注册表值。
HKEY_CLASSES_ROOT
- CLSID
{66742402-F9B9-11D1-A202-0000F81FEDEE}
禁用进程隔离= 1
我知道我的进程用完了,因为我在别处读到缩略图提供程序总是用完了。但是由于该特定代码段几乎位于所有 shell 扩展处理程序上,因此我将其解释为一项非常愉快的复制粘贴工作,因为它需要以我理解的方式在进程内运行。
而我错了。我希望这会在不久的将来对其他人有所帮助。:)