Componentes principales del modelo de proyecto

Las tablas siguientes se expanden en el modelo de proyecto. Las tablas presentan descripciones breves de las interfaces y servicios identificados en el modelo, así como las interfaces y los servicios asociados a objetos específicos. Además, las tablas detallan otras interfaces que son opcionales en la creación y mantenimiento del proyecto en función de los requisitos del tipo de proyecto específico.

Para obtener más información, vea Compatibilidad con herramientas de exploración de símbolos.

Package (objeto)

Interfaz Comentarios
IVsPackage Inicializa un VSPackage en el IDE y pone sus servicios a disposición del IDE.

Project Factory (objeto)

Interfaz Comentarios
IVsProjectFactory Administra la creación de nuevos proyectos y la apertura de proyectos existentes.

Objetos de proyecto

Interfaces Comentarios
IVsProject3 Administra la adición y eliminación de elementos de proyecto, abre los editores y mantiene la asignación entre cada moniker de documento y VSITEMID. Hereda de IVsProject y IVsProject2.
IVsHierarchy Administra las propiedades de navegación y visualización y proporciona eventos.
IVsUIHierarchy Habilita la ejecución de comandos similar a la de IOleCommandTarget para comandos como Cortar y Cambiar nombre que solo se aplican cuando el foco está en Explorador de soluciones.
IOleCommandTarget Actúa como la interfaz de destino del comando principal para una jerarquía de proyectos. Es la interfaz estándar para consultar objetos para su estado de comando o estado y comandos en ejecución. Disponible cuando no se centra en la ventana Proyecto.
IPersistFileFormat Coordina la persistencia del estado del proyecto. Normalmente, el estado del proyecto se almacena como un archivo de proyecto, pero se puede adaptar a los sistemas de almacenamiento que no están basados en archivos.
IVsPersistHierarchyItem2 Permite al proyecto administrar todos los aspectos de persistencia de sus elementos de proyecto, ya sea como archivos en disco u objetos de otros sistemas de almacenamiento. La IVsPersistHierarchyItem2 interfaz se usa para los elementos que no implementan la IVsPersistDocData2 interfaz.
IVsSccProject2 Coordina las interacciones con el control de código fuente.
IVsProjectFlavorCfgProvider Permite a los proyectos administrar la información de configuración.
IVsCfgProvider2 Administra objetos de configuración del proyecto, como configuraciones de depuración o versión. Las operaciones de compilación, implementación y depuración se coordinan mediante objetos de configuración del proyecto.
IVsHierarchyDeleteHandler Implementado por jerarquías para controlar las opciones de eliminación (destructiva) o eliminación (no destructiva) de los elementos de jerarquía. Llame a La interfaz de consulta en la IVsHierarchyDeleteHandler interfaz desde la IVsHierarchy interfaz .
IVsGetCfgProvider Proporciona la opción de implementación de tener el objeto que admite la IVsCfgProvider2 interfaz en una identidad COM diferente que el objeto de proyecto que implementa la IVsHierarchy interfaz.
IVsProjectStartupServices Interfaz opcional implementada para que el proyecto sea extensible por otros desarrolladores. La IVsProjectStartupServices interfaz permite que un VSPackage de terceros registre un GUID que persista en el archivo del proyecto para que cada vez que se cargue el proyecto, cargue el GUID de servicio de terceros en el archivo de proyecto y llame QueryService a ese GUID.
IVsUIHierWinClipboardHelperEvents Implementado por jerarquías de origen en una UIHierarchy ventana para coordinar las operaciones del Portapapeles, como cortar, copiar y pegar. Use la AdviseClipboardHelperEvents interfaz para registrar eventos del Portapapeles.
IVsHierarchyDropDataSource2 Proporciona información sobre un elemento arrastrado relativo a su origen de datos durante una operación de arrastrar y colocar en una ventana de jerarquía de interfaz de usuario. Se llama desde la IVsHierarchy interfaz .
IVsHierarchyDropDataTarget Proporciona información sobre un elemento arrastrado en relación con su destino de colocación durante una operación de arrastrar y colocar en una ventana de jerarquía de interfaz de usuario. Se llama desde la IVsHierarchy interfaz .

objeto de configuración

Interfaces Comentarios
IVsCfg Proporciona información sobre una configuración.
IVsProjectCfg2 Permite a los proyectos administrar la información de configuración.
IVsDebuggableProjectCfg Permite que un proyecto se ejecute bajo el control del depurador.
IVsDeployableProjectCfg Implementado por proyectos de implementación que realizan operaciones de implementación para otros proyectos.

Objeto Configuration Builder

Interfaces Comentarios
IVsBuildableProjectCfg Administra la operación de compilación de una configuración del proyecto.

Objetos de Project adicionales

Interfaces Comentarios
IDispatch

ISpecifyPropertyPages
Muestra las propiedades del elemento en la ventana Propiedades .
IVsOutput2

IVsEnumOutputs
Muestra salidas para la implementación.

En la tabla siguiente se presentan breves descripciones de los servicios identificados en el modelo de proyecto.

Servicios

Service Comentarios
SVsRegisterProjectTypes Usado por VSPackages que implementan tipos de proyecto para registrar que su generador de proyectos existe con el IDE. VsPackage debe llamar a QueryService para este servicio y registrar su generador de proyectos cuando IVsPackage::SetSite se llama al método . Si no se llama al SetSite método , no se crea una instancia del proyecto.
SVsSolution Proporciona acceso a la noción interna e integrada del IDE de la solución actual, como la capacidad de enumerar proyectos, crear nuevos proyectos, observar los cambios del proyecto, etc.
SVsSccManager Llamado por proyectos que desean participar en el control de código fuente.
SVsRunningDocumentTable Mantiene una tabla de documentos abiertos para determinar si uno o varios de los elementos del proyecto ya están abiertos.
SVsUIShellOpenDocument Contiene las interfaces y los métodos a los que se llama para abrir realmente un elemento de proyecto mediante el editor estándar o un editor específico.
SVsTrackProjectDocuments Es necesario llamar a todos los proyectos cuando agreguen, quiten o cambien el nombre de sus elementos.
SVsFileChangeEx Administra los cambios en un archivo o directorio y notifica a los clientes cuando se han cambiado los archivos seleccionados en el disco.
SVsQueryEditQuerySave Es necesario llamar a todos los proyectos y editores antes de que los elementos desfasen o guárdelos.
SVsSolutionBuildManager Administra el orden de las operaciones de compilación e implementación para las configuraciones del proyecto.
SVsShellDebugger Proporciona acceso a los servicios de depurador de bajo nivel que se usan para la mayoría de los controles de depuración.
SVsShellMonitorSelection Habilita el acceso de VSPackages a información sobre las selecciones actuales y habilita la comunicación con la ventana Propiedades .
SVsUIShell Proporciona funcionalidad básica del IDE relacionado con la interfaz de usuario, como la capacidad de crear y enumerar ventanas de herramientas o de documentos o notificar un error al usuario.
SVsStatusbar Proporciona acceso a la barra de estado del IDE.
IVsExtensibility3 Se usa para implementar el modelo de automatización. En el modelo de proyecto, devolverá un objeto properties que le permite crear una instancia de ese objeto.
SVsUIHierWinClipboardHelper Se usa para implementar eventos del Portapapeles en el objeto de proyecto de la jerarquía. SVsUIHierWinClipboardHelper permite controlar correctamente las operaciones de cortar, copiar y pegar.

Consulte también