Freigeben über


Projektmodellierung

Der nächste Schritt bei der Bereitstellung der Automatisierung für Ihr Projekt besteht darin, die Standardprojektobjekte zu implementieren: die Projects und ProjectItems die Auflistungen, die und ProjectItem die Project Objekte und die verbleibenden Objekte, die für Ihre Implementierung eindeutig sind. Diese Standardobjekte werden in der Datei "Dteinternal.h" definiert. Eine Implementierung der Standardobjekte wird im BscPrj-Beispiel bereitgestellt. Sie können diese Klassen als Modelle verwenden, um eigene Standardprojektobjekte zu erstellen, die nebeneinander mit Projektobjekten aus anderen Projekttypen stehen.

Ein Automatisierungsanwender geht davon aus, dass er ("<UniqueProjName>") und ProjectItems (n) aufrufen Solutionkann, wobei n eine Indexnummer zum Abrufen eines bestimmten Projekts in der Lösung ist. Durch diesen Automatisierungsaufruf wird die Umgebung für die entsprechende Projekthierarchie aufgerufen GetProperty , wobei VSITEMID_ROOT als ItemID-Parameter übergeben und als VSHPROPID-Parameter VSHPROPID_ExtObject. IVsHierarchy::GetProperty gibt einen IDispatch Zeiger auf das Automatisierungsobjekt zurück, das die Kernschnittstelle Project bereitstellt, die Sie implementiert haben.

Es folgt die Syntax von IVsHierarchy::GetProperty.

HRESULT GetProperty (

VSITEMIDitemid,

VSHPROPIDpropid,

VARIANT *pvar

);

Projekte unterstützen das Verschachteln und Verwenden von Sammlungen zum Erstellen von Gruppen von Projektelementen. Die Hierarchie sieht wie folgt aus.

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

Die Schachtelung bedeutet, dass ein ProjectItem Objekt gleichzeitig Auflistungen sein ProjectItems kann, da eine ProjectItems Auflistung die geschachtelten Objekte enthalten kann. Im Beispiel "Basic Project" wird diese Schachtelung nicht veranschaulicht. Durch die Implementierung des Project Objekts nehmen Sie an der strukturähnlichen Struktur teil, die den Entwurf des allgemeinen Automatisierungsmodells kennzeichnet.

Die Projektautomatisierung folgt dem Pfad im folgenden Diagramm.

Visual Studio-Projektobjekte

Projektautomatisierung

Wenn Sie kein Project Objekt implementieren, gibt die Umgebung weiterhin ein generisches Project Objekt zurück, das nur den Namen des Projekts enthält.

Siehe auch