如何注册预览处理程序

本主题说明如何注册与给定数据类型关联的预览处理程序。 为了便于说明,本主题中的示例使用 .xyz 文件类型。 预览处理程序的注册是基于文件关联的标准注册。

Instructions

步骤 1:

首先,文件扩展名与 ProgID 相关联。 以下条目将 xyzfile ProgID 子项与 .xyz 文件扩展名相关联。

HKEY_CLASSES_ROOT
   .xyz
      (Default) = [REG_SZ] xyzfile

xyzfile ProgID 子项与其他 ProgID 一起存储,如下所示:

HKEY_CLASSES_ROOT
   xyzfile

每个预览处理程序 ProgID 子项都包含名为 shellex 的子项,该子项包含 始终 名为 {8895b1c6-b41f-4c1c-a562-0d564250836f} 的子项。 该子项的存在会告知系统该处理程序是预览处理程序。

{8895b1c6-b41f-4c1c-a562-0d564250836f} 子项的默认值是处理程序 (CLSID) 的类标识符。 此处显示了 xyzfile ProgID 子项的示例,它关联了 CLSID {ec3a629a-a47c-4245-bc78-b4b63d0e3154} 的处理程序。

HKEY_CLASSES_ROOT
   xyzfile
      shellex
         {8895b1c6-b41f-4c1c-a562-0d564250836f}
            (Default) = [REG_SZ] {ec3a629a-a47c-4245-bc78-b4b63d0e3154}

步骤 2:

接下来,在预览处理程序的 CLSID 下添加子项。 此处显示了一个示例。 下面介绍了各个条目。

HKEY_CLASSES_ROOT
   CLSID
      {ec3a629a-a47c-4245-bc78-b4b63d0e3154}
         (Default) = [REG_SZ] Fabricam XYZ Preview Handler
         DisplayName = [REG_SZ] @myhandler.dll,-101
         Icon = [REG_SZ] myhandler.dll,201
         AppID = [REG_SZ] {6d2b5079-2f0b-48dd-ab7f-97cec514d30b}
         InprocServer32
            (Default) = [REG_EXPAND_SZ] %ProgramFiles%\Fabricam\myhandler.dll
            ThreadingModel = [REG_SZ] Apartment
            ProgID = [REG_SZ] xyzfile
            VersionIndependentProgID = [REG_SZ] Version IndependentProgID

此处的子项的默认值 ({ec3a629a-a47c-4245-bc78-b4b63d0e3154}) 是必需的或使用。 但是,将其设置为非本地化字符串有助于调试注册问题。

DisplayName 条目中.dll资源中的减号 (-101) 存在传统原因。 另一方面,Icon 条目不需要减号。

AppID 值引用与存储在 HKEY_CLASSES_ROOT APPID 下的\文件扩展名 (关联的应用程序的 AppID。 此处使用的值{6d2b5079-2f0b-48dd-ab7f-97cec514d30b}是Prevhost.exe代理主机的 ID。 在 64 位操作系统上安装时,32 位预览处理程序应使用 AppID {534A1E02-D58F-44f0-B58B-36CBED287C7C}。

InprocServer32 子项下的条目包括对文件扩展名的 ProgID 子项的引用,以及 VersionIndependentProgID 的条目。

步骤 3:

最后,必须将预览处理程序添加到所有预览处理程序的列表中。 此列表由系统用作优化,以枚举所有已注册的预览处理程序以进行显示。 同样,默认值不是必需的,它只是帮助调试过程。

注意

在 Windows 7 中,如果为计算机的所有用户安装了应用程序,请使用 HKEY_LOCAL_MACHINE;如果只有一个用户,请使用 HKEY_CURRENT_USER。

 

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   SOFTWARE
      Microsoft
         Windows
            CurrentVersion
               PreviewHandlers
                  {ec3a629a-a47c-4245-bc78-b4b63d0e3154}
                     (Default) = [REG_SZ] Fabricam XYZ Preview Handler

预览处理程序和 Shell 预览主机

生成预览处理程序

预览处理程序指南