Защита модели для VSPackages
2 Основных способа обеспечить автоматизации для VSPackages. путем реализации объектов VSPackage-специфического и путем реализации стандартные объекты ole-автоматизации. Обычно они используются совместно, чтобы расширить модель автоматизации среды.
Объекты VSPackage-Специфического
Некоторые размещения в модели автоматизации требуется предоставить объекты автоматизации, уникальные в VSPackage. Например, новые проекты, которые требуют объектов, определяемых только в VSPackage. Имена этих объектов вводятся в реестр и получаются через вызовы к механизму среды DTE объект.
Объекты VSPackage-специфического можно также получить, когда объект-получатель автоматизации использует объект, предоставленный через свойство объекта стандартного объекта. Например, standard Window объект обладает Object свойство, известное как часто Windows.Object свойство. Вызывается, когда объекты-получатели Window.Object в окне, реализованном в VSPackage передается обратно конкретный объект автоматизации собственной конструкции.
Проекты
VSPackages может передать модель автоматизации для новых типов проектов через собственные объекты VSPackage-специфического. Основной целью предоставления новых объектов автоматизации для различения в VSPackage уникальные объекты проекта из a VCProject или a VSProject2 объект. Это сподручно дифференцирование если требуется обеспечить способ определения out или повторяющемся тип проекта отдельно от других типов проектов должно отображаться параллельный их в решении. Дополнительные сведения см. в разделе Представление объектов проекта.
События
Архитектура события среды предлагает другое место для добавления собственных объектов VSPackage-специфического. Например, создать собственные уникальные объекты событий можно расширять модель события среды для проектов. Может потребоваться предоставить собственные события, когда новый элемент будет добавлен на собственный тип проекта. Дополнительные сведения см. в разделе Представление событий в Visual Studio SDK.
Объекты окна
Окна могут возвратить объект автоматизации VSPackage-специфического обратно среде. Объект, производный от реализации IVsExtensibleObject" IExtensibleObject OR IDispatch он передает задние свойства, расширение объект окна, в котором он расположен. Например, можно использовать этот подход, чтобы обеспечить автоматизации для элемента управления, находящегося в границы окна. Семантика этого объекта и любые другие объекты, которые он может расширить, то для проектирования. Дополнительные сведения см. в разделе Практическое руководство. Предоставление модели для Windows.
Страницы Параметры в меню сервис
Можно создать страницы для расширения средств модели автоматизации параметров до реализация страницы и добавление сведений в реестр для создания собственных параметров. Страницы затем можно вызвать через объектную модель среды как любые другие страницы параметров. Если построение функции добавлении к механизму среды через VSPackages требует страниц Параметры, необходимо также добавить поддержку автоматизации. Дополнительные сведения см. в разделе Поддержка автоматизации для страницы параметров.
Стандартные объекты ole-автоматизации
Для расширения автоматизации проектов, необходимо также реализовать стандартные объекты ole-автоматизации (производные от IDispatchstand), рядом с других объектов проекта и стандартных методов и свойств ". Примеры стандартных объектов включают объекты проекта, вставить в иерархию в качестве решения Projects" Project" ProjectItemи ProjectItems. Каждый новый тип проекта должен реализовать эти объекты (и, возможно, другие один в зависимости от семантики проекта).
В некотором смысле, эти объекты содержат противоположное преимущество объектов проекта VSPackage-специфического. Стандартные объекты ole-автоматизации позволяют проект, который будет использоваться в обобщенном образом, как и любой другой проект, поддерживающий одни и те же объекты. Таким образом, макрос, который записан с разделами Project и ProjectItem объекты могут работать с проектами любого типа. Дополнительные сведения см. в разделе моделирование проекта.