如何注册 Shell 个缩略图处理程序

How to register Shell Thumbnail handlers

我正在尝试定义 2 个自定义文件类型,我希望它们在 windows 资源管理器中具有缩略图预览功能,并且我使用此代码示例 (https://code.msdn.microsoft.com/CppShellExtThumbnailHandler-32399b35) 注册了新的 shell扩展名,但我一次只能让其中一个工作。

当我尝试注册第二个时,它似乎替换了 IThumbnailProvider 的处理程序子键 {E357FCCD-A995-4576-B01F-234630154E96} 并破坏了第一个文件类型的注册。如果有人对此有一些经验,我的问题是,

我可以使用此代码示例一次注册 1 个以上的文件类型吗? 有其他选择吗?

谢谢!

我设法注册了 1 个以上的自定义文件,但我这样做的方式让我感到困惑...因此,如果有人能花时间向我解释一下,我将不胜感激。

我将 c++ project/solution 复制到一个新文件夹,更改了代码中的自定义文件类型参数以匹配我的第二个自定义文件类型需求,构建这个新项目并注册了生成的 .dll。

因此,基本上,使它起作用的原因是,当您构建项目/解决方案时,正在生成的文件(.dll 只是其中之一)对于缩略图处理程序的工作至关重要。 这就是让我感到困惑的地方。

我希望在您注册 .dll 后,新的文件类型就会建立,我什至可以删除上述文件。但显然,您不仅必须注册 .dll,而且还要确保您保留构建时生成的其他文件,始终保持不变。

所以这基本上意味着,每个自定义文件类型 1 project/solution,很好地保存在它自己的文件夹中 :) 这是执行此操作的正确方法,还是我只是在这里破解它?