Partager via


Modélisation de projet

L’étape suivante de la fourniture d’automatisation pour votre projet consiste à implémenter les objets de projet standard : les Projects et ProjectItems collections ; les Project objets et ProjectItem les objets restants propres à votre implémentation. Ces objets standard sont définis dans le fichier Dteinternal.h. Une implémentation des objets standard est fournie dans l’exemple BscPrj. Vous pouvez utiliser ces classes en tant que modèles pour créer vos propres objets de projet standard qui se trouvent côte à côte avec des objets de projet d’autres types de projet.

Un consommateur automation suppose de pouvoir appeler Solution("<UniqueProjName>") et ProjectItems (n) où n est un numéro d’index pour obtenir un projet spécifique dans la solution. L’exécution de cet appel d’automatisation entraîne l’appel GetProperty de l’environnement sur la hiérarchie de projet appropriée, en passant VSITEMID_ROOT en tant que paramètre ItemID et VSHPROPID_ExtObject en tant que paramètre VSHPROPID. IVsHierarchy::GetProperty retourne un IDispatch pointeur vers l’objet Automation fournissant l’interface principale Project que vous avez implémentée.

Voici la syntaxe de IVsHierarchy::GetProperty.

HRESULT GetProperty (

VSITEMIDitemid,

VSHPROPIDpropid,

VARIANT *pvar

);

Les projets prennent en charge l’imbrication et l’utilisation de collections pour créer des groupes d’éléments de projet. La hiérarchie ressemble à ceci.

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

L’imbrication signifie qu’un ProjectItem objet peut être ProjectItems une collection en même temps, car une ProjectItems collection peut contenir les objets imbriqués. L’exemple De projet de base ne montre pas cet imbrication. En implémentant l’objet Project , vous participez à la structure de type arborescence qui caractérise la conception du modèle d’automatisation global.

L’automatisation du projet suit le chemin d’accès dans le diagramme suivant.

Objets de projet Visual Studio

Automatisation du projet

Si vous n’implémentez pas d’objet Project , l’environnement retourne toujours un objet générique Project qui contient uniquement le nom du projet.

Voir aussi