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


Основные компоненты модели проекта

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

Дополнительные сведения см. в разделе "Поддержка инструментов просмотра символов".

Объект package

Интерфейс Комментарии
IVsPackage Инициализирует VSPackage в интегрированной среде разработки и делает свои службы доступными для интегрированной среды разработки.

Объект Фабрики проектов

Интерфейс Комментарии
IVsProjectFactory Управляет созданием новых проектов и открытием существующих проектов.

Объекты Project

Интерфейсы Комментарии
IVsProject3 Управляет добавлением и удалением элементов проекта, открывает редакторы и поддерживает сопоставление между каждым моникером документа и моникером VSITEMID. Наследует от IVsProject и IVsProject2.
IVsHierarchy Управляет навигацией и отображением свойств и предоставляет события.
IVsUIHierarchy Включает выполнение команд, аналогичных командам, таким как IOleCommandTarget "Вырезать" и "Переименовать", которые применяются только в том случае, если фокус находится в Обозреватель решений.
IOleCommandTarget Служит основным целевым интерфейсом команды для иерархии проектов. Это стандартный интерфейс для запроса объектов для их состояния команды или состояния и выполнения команд. Доступно, если вы не сосредоточены в окне проекта.
IPersistFileFormat Координирует сохраняемость состояния проекта. Как правило, состояние проекта хранится в виде файла проекта, но может быть адаптировано к системам хранения, которые не основаны на файлах.
IVsPersistHierarchyItem2 Позволяет проекту управлять всеми аспектами сохраняемости элементов проекта в виде файлов на диске или объектах в других системах хранения. Интерфейс IVsPersistHierarchyItem2 используется для элементов, которые не реализуют IVsPersistDocData2 интерфейс.
IVsSccProject2 Координирует взаимодействие с элементом управления исходным кодом.
IVsProjectFlavorCfgProvider Позволяет проектам управлять сведениями о конфигурации.
IVsCfgProvider2 Управляет объектами конфигурации проекта, такими как конфигурации отладки и выпуска. Операции сборки, развертывания и отладки координируются с помощью объектов конфигурации проекта.
IVsHierarchyDeleteHandler Реализуется иерархиями для управления параметрами удаления (деструктивного) или удаления (неразрушающего) для элементов иерархии. Вызов интерфейса запроса в IVsHierarchyDeleteHandler интерфейсе IVsHierarchy из интерфейса.
IVsGetCfgProvider Предоставляет вариант реализации объекта, который поддерживает IVsCfgProvider2 интерфейс в другом com-удостоверении, чем объект проекта, реализующий IVsHierarchy интерфейс.
IVsProjectStartupServices Необязательный интерфейс, реализованный для расширения проекта другими разработчиками. Интерфейс IVsProjectStartupServices позволяет стороннему VSPackage зарегистрировать GUID, который сохраняется в файле проекта, чтобы каждый раз при загрузке проекта вы загружаете guid службы сторонних производителей в файл проекта и вызываете QueryService этот GUID.
IVsUIHierWinClipboardHelperEvents Реализуется исходными иерархиями в UIHierarchy окне для координации операций буфера обмена, таких как вырезание, копирование и вставка. AdviseClipboardHelperEvents Используйте интерфейс для регистрации событий буфера обмена.
IVsHierarchyDropDataSource2 Предоставляет сведения о перетаскиваемом элементе относительно источника данных во время операции перетаскивания в окне иерархии пользовательского интерфейса. Вызывается из IVsHierarchy интерфейса.
IVsHierarchyDropDataTarget Предоставляет сведения о перетаскиваемом элементе относительно целевого объекта перетаскивания во время операции перетаскивания в окне иерархии пользовательского интерфейса. Вызывается из IVsHierarchy интерфейса.

Объект конфигурации

Интерфейсы Комментарии
IVsCfg Предоставляет сведения о конфигурации.
IVsProjectCfg2 Позволяет проектам управлять сведениями о конфигурации.
IVsDebuggableProjectCfg Позволяет запускать проект под контролем отладчика.
IVsDeployableProjectCfg Реализованы проектами развертывания, выполняющими операции развертывания для других проектов.

Объект Configuration Builder

Интерфейсы Комментарии
IVsBuildableProjectCfg Управляет операцией сборки конфигурации проекта.

Дополнительные объекты Project

Интерфейсы Комментарии
IDispatch

ISpecifyPropertyPages
Отображает свойства элемента в окне "Свойства ".
IVsOutput2

IVsEnumOutputs
Отображает выходные данные для развертывания.

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

Службы

Service Комментарии
SVsRegisterProjectTypes Используется VSPackages, реализующих типы проектов для регистрации того, что фабрика проектов существует в интегрированной среде разработки. VSPackage должен вызывать QueryService эту службу и зарегистрировать ее фабрику проектов при IVsPackage::SetSite вызове метода. SetSite Если метод не вызывается, проект не создается.
SVsSolution Предоставляет доступ к внутреннему, встроенному решению интегрированной среды разработки, например возможности перечисления проектов, создания новых проектов, уведомления об изменениях проекта и т. д.
SVsSccManager Вызывается проектами, которые хотят участвовать в системе управления версиями.
SVsRunningDocumentTable Поддерживает таблицу открытых документов, чтобы определить, открыт ли один или несколько элементов проекта.
SVsUIShellOpenDocument Содержит интерфейсы и методы, вызывающиеся для фактического открытия элемента проекта с помощью стандартного редактора или определенного редактора.
SVsTrackProjectDocuments Необходимо вызывать все проекты при добавлении, удалении или переименовании их элементов.
SVsFileChangeEx Управляет изменениями в файле или каталоге и уведомляет клиентов о том, что выбранные файлы были изменены на диске.
SVsQueryEditQuerySave Необходимо вызывать все проекты и редакторы, прежде чем они грязное элементы или сохранить их.
SVsSolutionBuildManager Управляет порядком операций сборки и развертывания для конфигураций проекта.
SVsShellDebugger Предоставляет доступ к службам отладчика низкого уровня, используемым для большинства элементов управления отладкой.
SVsShellMonitorSelection Позволяет VSPackages получать доступ к сведениям о текущих выборах и обеспечивает обмен данными с окном свойств .
SVsUIShell Предоставляет основные функциональные возможности интегрированной среды разработки, связанные с пользовательским интерфейсом, например возможность создавать и перечислять окна инструментов или окна документов или сообщать об ошибке пользователю.
SVsStatusbar Предоставляет доступ к строке состояния интегрированной среды разработки.
IVsExtensibility3 Используется для реализации модели автоматизации. В модели проекта вы вернете объект свойств, который позволяет создать экземпляр этого объекта.
SVsUIHierWinClipboardHelper Используется для реализации событий буфера обмена в объекте проекта в иерархии. SVsUIHierWinClipboardHelper позволяет правильно обрабатывать операции вырезания, копирования и вставки.

См. также