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 (
VSITEMID
itemid
,
VSHPROPID
propid
,
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.
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.