Реакция на команды

Оценить
(0 голоса)

Надстройки могут реагировать на команды, выдаваемые внутри интегрированной среды. Если вы помните из обсуждения команд в главах 11 и 12, то это делается при помощи кон­цепции "именованных команд". Именованная команда — это просто действие, которое име­ет имя. Вы уже знаете, что Visual Studio имеет огромный список собственных команд, кото­рые соответствуют широкому разнообразию действий, имеющихся в интегрированной среде. Используя коллекцию Commands/Commands2, вы можете создать собственные имено­ванные команды (при помощи метода AddNamedCommand2).

Еще раз возвратимся к анализу метода OnConnection: мастер создал тело кода, отвечающе­го за создание новой именованной команды, добавление ее в меню Tools и для последующе­го реагирования на команду. Метод IDTCommandTarget .Exec— это перехватчик, исполь­зуемый для реагирования на выданную команду. Вот его прототип:

void Exec (

[InAttribute] string QmdName,

[InAttribute] vsCommandExecOption ExecuteOption,

[InAttribute] ref Object VariantIn,

[InAttribute] out Object VariantOut,

[InAttribute] out bool Handled

)

Для обработки команды, выданной надстройке, вы пишете код в методе Ехес, который реа­гирует на переданную в него команду.

CmdName — это строка, содержащая имя команды; это метка, используемая для уникальной идентификации команды — и, таким образом, она является тем параметром, который вы будете изучать в теле метода Ехес для того, чтобы определить, будете ли вы реагировать на команду и каким именно образом.

ExecuteOption— это перечисление vsCommandExecOption, которое предоставляет ин­формацию об опциях, связанных с командой (табл. 13.4).

Параметр Variant In используется для передачи любых аргументов, необходимых для вхо­дящей команды, a VariantOut служит для передачи информации из надстройки обратно вызывающей стороне.

Наконец, Handled показывает хост-приложению, обработала ли надстройка команду. Как правило, если ваша надстройка обработала команду, то она устанавливает его в true. В про­тивном случае она будет установлена в false, что является сигналом для Visual Studio о том, что ей нужно продолжить поиск обработчика команды. Описание: C:\Users\Артём\Desktop\media\image306.png

Управление надстройками
Объекты автоматизации надстроек
Начинаем
Создание User Control
Обработка движений по палитре

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.