Compartir a través de


Modelado de proyectos

El siguiente paso para proporcionar automatización para el proyecto es implementar los objetos de proyecto estándar: las Projects colecciones y ProjectItems , los Project objetos y ProjectItem y y los objetos restantes únicos para la implementación. Estos objetos estándar se definen en el archivo Dteinternal.h. En el ejemplo BscPrj se proporciona una implementación de los objetos estándar. Puede usar estas clases como modelos para crear sus propios objetos de proyecto estándar que se den en paralelo con objetos de proyecto de otros tipos de proyecto.

Un consumidor de automatización supone poder llamar Solutiona ("<UniqueProjName>") y ProjectItems (n) donde n es un número de índice para obtener un proyecto específico en la solución. Realizar esta llamada de automatización hace que el entorno llame GetProperty a en la jerarquía de proyectos adecuada, pasando VSITEMID_ROOT como parámetro ItemID y VSHPROPID_ExtObject como parámetro VSHPROPID. IVsHierarchy::GetProperty devuelve un IDispatch puntero al objeto de automatización que proporciona la interfaz principal Project , que ha implementado.

A continuación se muestra la sintaxis de IVsHierarchy::GetProperty.

HRESULT GetProperty (

VSITEMIDitemid,

VSHPROPIDpropid,

VARIANT *pvar

);

Los proyectos admiten el anidamiento y usan colecciones para crear grupos de elementos de proyecto. La jerarquía tiene este aspecto.

Projects
  |- Project
      |- ProjectItems (a collection of ProjectItem)
          |- ProjectItem (single object) or ProjectItems (another collection)

El anidamiento significa que un ProjectItem objeto puede ser ProjectItems colección al mismo tiempo porque una ProjectItems colección puede contener los objetos anidados. El ejemplo de proyecto básico no muestra este anidamiento. Al implementar el Project objeto, participa en la estructura similar a árbol que caracteriza el diseño del modelo de automatización general.

La automatización del proyecto sigue la ruta de acceso del diagrama siguiente.

Objetos de proyecto de Visual Studio

Automatización de proyectos

Si no implementa un Project objeto, el entorno seguirá devolviendo un objeto genérico Project que contenga solo el nombre del proyecto.

Consulte también