Свойства и методы, расширенные подтипами проектов
Подтип проекта имеет большую способность влиять на поведение проекта, так как он создается как агрегатор базового проекта. В этом разделе приведены некоторые функции, которые могут быть улучшены или изменены подтипами проекта.
Функции, полученные агрегированием
В следующей таблице перечислены многие методы, которые агрегирование позволяют переопределить подтипы проекта в базовых проектах.
Переопределение методов путем агрегирования | Подтип проекта |
---|---|
От 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 к самому внешнему подтипу проекта, что позволяет подтипу проекта переопределить реализацию свойств.