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