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


Предоставление автоматизации для пакетов VSPackage

Существует два основных способа обеспечения автоматизации для VSPackages: реализация объектов VSPackage и реализация стандартных объектов автоматизации. Как правило, они используются вместе для расширения модели автоматизации среды.

Объекты, относящиеся к VSPackage

Некоторые места в модели автоматизации требуют предоставления объектов автоматизации, уникальных для VSPackage. Например, для новых проектов требуются отдельные объекты, которые предоставляются только в VSPackage. Имена этих объектов вводятся в реестр и получаются с помощью вызовов объекта среды DTE .

Объекты VSPackage также можно получить, если потребитель службы автоматизации использует объект, предоставленный с помощью свойства Object стандартного объекта. Например, стандартный Window Object объект имеет свойство, известное как Windows.Object свойство. Когда потребители вызывают Window.Object окно, реализованное в VSPackage, вы передаете определенный объект автоматизации собственного дизайна.

Проекты

VSPackages может расширить модель автоматизации для новых типов проектов с помощью собственных объектов VSPackage. Основная цель предоставления новых объектов автоматизации для VSPackage — различать уникальные объекты проекта от VCProject объекта или VSProject2 объекта. Это различие удобно, если вы хотите предоставить способ выделения или итерации типа проекта отдельно от других типов проектов, если они отображаются параллельно в решении. Дополнительные сведения см. в разделе "Предоставление объектов проекта".

События

Архитектура событий среды предлагает другое место для добавления собственных объектов VSPackage. Например, создав собственные уникальные объекты событий, можно расширить модель событий среды для проектов. Может потребоваться предоставить собственные события при добавлении нового элемента в собственный тип проекта. Дополнительные сведения см. в разделе "Предоставление сведений о событиях".

Объекты окон

Windows может вернуть объект автоматизации для VSPackage обратно в среду при вызове. Вы реализуете объект, производный от IVsExtensibleObjectсвойств или IDispatch IExtensibleObject возвращающий свойства, расширяя объект окна, в котором он расположен. Например, этот подход можно использовать для автоматизации для элемента управления, на который в окне. Семантика этого объекта и любых других объектов, которые она может расширить, является вашей структурой. Дополнительные сведения см. в разделе "Практическое руководство. Предоставление автоматизации для Windows".

Страницы параметров в меню "Сервис"

Вы можете создавать страницы для расширения модели автоматизации "Инструменты", "Параметры" с помощью реализации страниц и добавления сведений в реестр для создания собственных параметров. Затем страницы можно вызывать через объектную модель среды, как и любые другие страницы параметров. Если для разработки функции, добавляемой в среду с помощью VSPackages, требуются страницы параметров, следует также добавить поддержку автоматизации. Дополнительные сведения см. в разделе "Поддержка автоматизации для страниц параметров".

Стандартные объекты автоматизации

Чтобы расширить автоматизацию проектов, вы также реализуете стандартные объекты автоматизации (производные IDispatchот), которые стоят рядом с другими объектами проекта и реализуют стандартные методы и свойства. Примеры стандартных объектов включают объекты проекта, вставляемые в иерархию решений, например Projects, Project, ProjectItemи ProjectItems. Каждый новый тип проекта должен реализовывать эти объекты (и, возможно, другие в зависимости от семантики проекта).

В смысле эти объекты обеспечивают противоположное преимущество объектов проекта ДЛЯ VSPackage. Стандартные объекты автоматизации позволяют проекту использовать обобщенный способ, как и любой другой проект, поддерживающий те же объекты. Таким образом, надстройка, написанная против общих Project и ProjectItem объектов, может функционировать против проектов любого типа. Дополнительные сведения см. в разделе "Моделирование проектов".