0

我想要做的是强制 Windows 使用我的程序作为从某种不是图像的文件创建缩略图的基础。

在 Windows 中,您可以看到来自图像、word 文档、pdf 等的缩略图——这就是我想要的其他文件类型。我可以从这些文件中创建位图(稍后我想将其用作缩略图)并将它们存储在某个地方。

我的问题是如何将扩展与创建/检查它们是否存在与我的程序缩略图并返回图像/图像路径的请求连接起来。任何帮助和示例都会非常有帮助。

4

1 回答 1

1

您需要创建一个 COM DLL 库,其中包含一个实现IExtractImage.

然后,您使用您支持的文件扩展名注册您的shell 扩展名:

HKEY_CLASSES_ROOT\[.ext]\shellex\[SID_IExtractImage]
@default = [MyExtractImageShellExtensionCLSID]

在哪里

  • .ext是您正在为其创建查看器的文件的扩展名(例如.psd
  • SID_IExtractImage是常数{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}
  • MyExtractImageShellExtensionCLSIDclsid是实现的 shell 扩展的类 id ( )IExtractImage

所以,如果我正在注册一个 Photoshoppsd扩展处理程序,并且我的 COM 对象的 clsid 是{CCB7DB3B-D073-4606-B246-2A5174D274C8}

HKEY_CLASSES_ROOT\.psd\shellex\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}
@default = {CCB7DB3B-D073-4606-B246-2A5174D274C8}

然后只需创建一个实现的 COM 对象:

  • IPersist
  • IPersistFile
  • IPersistStream(选修的)
  • IExtractImage

Explorer 将使用您的扩展程序创建 Photoshop 图像的缩略图。

注意:如果您运行的是 64 位 Windows,则需要 64 位编译器来创建 64 位 COM 对象 DLL,该 64 位 Windows 资源管理器可以加载。

于 2013-01-23T15:19:21.967 回答