扩展功能区

在 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

注册完成后,必须注册以像平常一样处理协议,如 默认程序中所述。