扩展功能区
在 Windows 资源管理器中,功能区有助于使常见的最终用户文件管理活动更轻松、更易于发现,但应用开发人员即将发生更改。 例如,旧的命令栏可自由扩展,但此时功能区受到更多限制。 此外,默认情况下不会为所有命名空间扩展显示功能区,因此必须选择加入才能获取功能区;否则,将获取较旧的命令栏。
功能区上可供用户使用的操作分为三个扩展性类别:
- 不需要扩展性。 示例:复制、粘贴、删除。 Windows 为你处理这些谓词。
- 当前不允许扩展性:示例:Zip、关闭会话和其他自定义操作。 使用上下文菜单来涵盖这些方案。
- 扩展性内置于操作本身中。 示例:搜索、Email、打印、新建项。 需要注册这些谓词,才能在功能区 中包含应用或文件格式。
本文档介绍如何选择加入以获取功能区,以及如何注册以处理特定的功能区谓词。
选择加入功能区
若要选择加入功能区,IShellFolder2 实现应在 IExplorerPaneVisibility::GetPaneState 中指定EP_Ribbon,并返回EPS_FORCE | EPS_DEFAULT_ON。
扩展文件扩展名的功能区
以下功能区按钮可根据文件扩展名进行扩展:
- 全部提取
- 装载 |烧 (ISO)
- 播放 |全部播放 |添加到播放列表 (谓词:排队)
- 打开
- 编辑
- 属性
注册以静态方式处理新文件类型的相关谓词时,功能区会相应地处理谓词。 就像注册上下文菜单谓词一样。 有关文件关联和注册谓词的详细信息,请参阅 谓词和文件关联 和 创建快捷菜单处理程序。
注册为 ActionId 的默认处理程序
首先,在相应的 AssocActionId 子项下注册 ProgId。 每个 AssocActionId 子项表示用户可以从功能区调用的谓词或操作。 在此示例中,应用注册 ZipSelection ActionID 以扩展功能区上的“全部提取”按钮。
HKEY_LOCAL_MACHINE
SOFTWARE
Classes
Explorer.AssocActionId.ZipSelection
shell
open
command
(Default) = %SystemRoot%\[Your App].exe
Microsoft
Windows
CurrentVersion
Your App Name
Capabilities
URL Protocol
FriendlyTypeName = @%SystemRoot%\explorer.exe,-1234
注册完成后,必须注册以像平常一样处理协议,如 默认程序中所述。