如何注册预览处理程序
本主题说明如何注册与给定数据类型关联的预览处理程序。 为了便于说明,本主题中的示例使用 .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
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈