Выбор метода статического или динамического контекстного меню
Этот раздел организован следующим образом:
- Выбор метода Verb
- Расширение контекстного меню
- Поддержка методов verb по операционной системе
- Связанные статьи
Выбор метода Verb
Настоятельно рекомендуется реализовать контекстное меню с помощью одного из методов статической команды.
Методы статической команды
Статические команды — это простейшие команды для реализации, но они по-прежнему предоставляют широкие функциональные возможности. Всегда выберите самый простой метод контекстного меню, соответствующий вашим потребностям.
Статический глагол | Description |
---|---|
CreateProcess с параметрами командной строки | Это самый простой и наиболее знакомый способ реализации статической команды. Процесс вызывается с помощью вызова функции CreateProcess с выбранными файлами и любыми необязательными параметрами, переданными в командной строке. Откроется файл или папка. Этот метод имеет следующие ограничения:
|
DropTarget/IDropTarget | Активация команд на основе COM означает, что поддерживает активацию в proc или внепрок. DropTarget/IDropTarget также поддерживает повторное использование уже запущенного обработчика при реализации интерфейса IDropTarget локальным сервером. Он также прекрасно выражает элементы через маршалированные объекты данных и предоставляет ссылку на вызывающую цепочку сайтов, чтобы взаимодействовать с вызывающим объектом через QueryService. |
Windows 7 и более поздних версий: IExecuteCommand | Самый прямой метод реализации. Так как это метод вызова на основе COM (например, DropTarget), этот интерфейс поддерживает активацию in-proc и внепрок. Команда реализует IExecuteCommand и IObjectWithSelection, а также при необходимости IInitializeCommand. Элементы передаются непосредственно в виде массива элементов оболочки, а другие параметры вызывающего элемента доступны реализации команды, включая точку вызова, состояние клавиатуры и т. д. |
Windows 7 и более поздних версий:ExplorerCommand IExplorerCommand/ | Позволяет источникам данных, предоставляющим команды модуля команд с помощью IExplorerCommandProvider , использовать эти команды в качестве команд в контекстном меню. Так как этот интерфейс поддерживает только активацию в процессе, рекомендуется использовать источниками данных Оболочки, которые должны совместно использовать реализацию между командами и контекстными менюми. |
Примечание.
IExplorerCommand — это гибридная команда между статической и динамической командой. IExplorerCommand был объявлен в Windows Vista, но его возможность реализовать команду в контекстном меню является новой для Windows 7.
Дополнительные сведения о запросах IDropTarget и Shell для атрибутов сопоставления файлов см. в разделе "Предполагаемые типы" и "Регистрация приложений".
Предпочитаемые методы динамической команды
Предпочтительны следующие методы динамической команды:
Тип команды | Description |
---|---|
Статическая команда (указанная в предыдущей таблице) + расширенный синтаксис запросов (AQS) | Этот выбор получает динамическую видимость глагола. |
Windows 7 и более поздних версий: IExplorerCommand | Этот выбор включает общую реализацию команд и команд обозревателя, отображаемых в модуле команд в проводнике Windows. |
Windows 7 и более поздних версий: IExplorerCommandState + статическое глагол | Этот выбор также получает динамическую видимость глагола. Это гибридная модель, в которой простой обработчик процесса используется для вычисления при отображении заданной статической команды. Это можно применить ко всем методам реализации статической команды для достижения динамического поведения и минимизации воздействия логики внутри процесса. IExplorerCommandState имеет преимущество выполнения в фоновом потоке и тем самым избегает зависания пользовательского интерфейса. Это значительно проще, чем IContextMenu. |
Не рекомендуется методы динамической команды
IContextMenu является самым мощным, но и самым сложным методом для реализации. Он основан на внутрипроцессных COM-объектах, которые выполняются в потоке вызывающего объекта, который обычно проводник Windows, но может быть любым приложением, в котором размещаются элементы. IContextMenu поддерживает видимость, упорядочивание и настраиваемый рисунок. Некоторые из этих функций были добавлены в функции статической команды, такие как значок, связанный с командой, и IExplorerCommand для работы с видимостью.
Если необходимо расширить контекстное меню для типа файла, зарегистрируя динамическую команду для типа файла, следуйте инструкциям, приведенным в разделе "Настройка контекстного меню с помощью динамических команд".
Расширение контекстного меню
После выбора метода команды можно расширить контекстное меню для типа файла, зарегистрируя статическую команду для типа файла. Дополнительные сведения см. в разделе "Создание обработчиков контекстного меню".
Поддержка методов verb по операционной системе
Поддержка методов вызова глаголов операционной системой приведена в следующей таблице.
Метод Verb | Windows XP | Windows Vista | Windows 7 и более далеко |
---|---|---|---|
CreateProcess | X | X | X |
DDE | X | X | X |
DropTarget | X | X | X |
ExecuteCommand | X | X | |
ExplorerCommand | X | ||
ExplorerCommandState | X |
См. также