Расширение ленты
В Windows Обозреватель лента помогает упростить и более легко обнаруживать общие действия по управлению файлами пользователей, но для разработчиков приложений есть изменения. Например, старая панель команд была свободно расширяемой, но в настоящее время лента более ограничена. Кроме того, лента по умолчанию отображается не для всех расширений пространства имен, поэтому необходимо согласиться на получение ленты. В противном случае вы получите старую панель команд.
Действия, доступные пользователям на ленте, делятся на три категории расширяемости:
- Расширяемость не требуется. Примеры: копирование, вставка, удаление. Windows обрабатывает эти команды за вас.
- Расширяемость в настоящее время не разрешена. Примеры: Zip, Закрыть сеанс и другие настраиваемые действия. Используйте контекстное меню, чтобы охватить эти сценарии.
- Расширяемость встроена в само действие. Примеры: Поиск, Email, Печать, Создать элемент. Необходимо зарегистрироваться для этих команд, чтобы включить формат приложения или файла на ленте .
В этом документе описывается, как можно согласиться на получение ленты и как зарегистрироваться для обработки определенных команд ленты.
Согласие на ленту
Чтобы включить ленту, в реализации IShellFolder2 необходимо указать EP_Ribbon в IExplorerPaneVisibility::GetPaneState и вернуть EPS_FORCE | EPS_DEFAULT_ON.
Расширение ленты для расширений файлов
Эти кнопки ленты расширяемы в зависимости от расширений файлов:
- Извлечь все
- Подключение | Запись (ISO)
- Воспроизвести | Воспроизвести все | Добавить в список воспроизведения (глагол: Enqueue)
- Open
- Изменить
- Свойства
При регистрации для статической обработки соответствующих команд для новых типов файлов лента обрабатывает команды соответствующим образом. Регистрация выполняется так же, как и для команд контекстного меню. Дополнительные сведения о сопоставлениях файлов и регистрации для команд см. в разделах Глаголы и сопоставления файлов и Создание обработчиков контекстного меню.
Регистрация в качестве обработчика по умолчанию для ActionId
Сначала зарегистрируйте ProgId в соответствующем подразделе AssocActionId. Каждый подраздел AssocActionId представляет команду или действие, которые пользователи могут вызывать с ленты. В этом примере приложение регистрируется для Идентификатора действия ZipSelection, чтобы расширить кнопку "Извлечь все" на ленте.
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
После завершения этой регистрации необходимо зарегистрироваться для обработки протоколов так же, как обычно, как описано в разделе Программы по умолчанию.