Поделиться через


Свойства и методы, расширенные подтипами проектов

Подтип проекта имеет большую способность влиять на поведение проекта, так как он создается как агрегатор базового проекта. В этом разделе приведены некоторые функции, которые могут быть улучшены или изменены подтипами проекта.

Функции, полученные агрегированием

В следующей таблице перечислены многие методы, которые агрегирование позволяют переопределить подтипы проекта в базовых проектах.

Переопределение методов путем агрегирования Подтип проекта
От IVsHierarchy:

GetProperty

SetProperty

GetGuidProperty

SetGuidProperty
Включение подтипа проекта

— Изменение подпись и значка узла проекта.
— Полностью переопределить объект проекта Browse .
— Определяет, можно ли переименовать проект.
— Порядок сортировки элементов управления.
— Управление контекстом пользователя для динамической справки.
От IVsProject:

GetItemContext
Позволяет подтипу проекта управлять тем, какие контекстные службы предоставляются конструкторам и редакторам.
От IOleCommandTarget:

QueryStatus

Exec

QueryStatusCommand

ExecCommand
Включение подтипа проекта

— участие в маршрутизации команд для команд проекта.
— Добавление, удаление или отключение команд среды проекта и Обозреватель решений активных команд.
IVsFilterAddProjectItemDlg2 Позволяет подтипу проекта фильтровать то, что пользователь видит в диалоговом окне "Добавление нового элемента ".
IVsSingleFileGeneratorFactory Включение подтипа проекта

— Определите генератор по умолчанию с расширением файла.
— сопоставляет имя удобочитаемого генератора с COM-объектом.

Свойства, используемые подтипами проекта

Среда и базовая система проектов могут использовать свойства из __VSSPROPID и __VSSPROPID2 перечислений, подробные в следующей таблице, чтобы включить подтип проекта для управления различными функциями системы проекта.

Свойство VSHPROPID Подтип проекта
AddItemTemplatesGuid Позволяет подтипу проекта управлять содержимым диалогового окна "Добавление элемента ". Подтип проекта может предоставить новую спецификацию каталогов шаблонов, добавить новые типы элементов, удалить существующие элементы и переорганизовать подмножество элементов в диалоговом окне добавления элемента базового проекта.
PropertyPagesCLSIDList Позволяет подтипу проекта добавлять или удалять страницы свойств независимой от конфигурации.
CfgPropertyPagesCLSIDList Позволяет подтипу проекта добавлять или удалять страницы свойств, зависящих от конфигурации.
ExtObjectCATID Позволяет подтипу проекта предоставить расширение службы автоматизации для объектов проекта или элемента проекта, зная идентификатор CATID расширения. Например, подтип проекта может предоставить пользовательский Project.Extender("<subtype>") объект.
BrowseObjectCATID Позволяет подтипу проекта предоставить расширение службы автоматизации для Browse объекта, зная идентификатор CATID расширителя. Например, подтип проекта может добавлять дополнительные свойства в коллекцию Properties .
CfgBrowseObjectCATID Позволяет подтипу проекта предоставить расширение службы автоматизации для объекта обзора конфигурации проекта. Например, подтип проекта может добавлять дополнительные свойства в коллекцию Properties .
CfgExtObjectCATID Позволяет подтипу проекта предоставить расширение службы автоматизации для объекта конфигурации.
DefaultPlatformName Позволяет подтипу проекта определить имя платформы для объектов конфигурации проекта.

Базовый проект предоставляет реализацию указанных выше свойств по умолчанию. Базовый проект получает их путем вызова QueryInterface IVsHierarchy к самому внешнему подтипу проекта, что позволяет подтипу проекта переопределить реализацию свойств.

См. также