Modelování projektu
Dalším krokem při poskytování automatizace projektu je implementace standardních objektů projektu: objektů Projects a ProjectItems
kolekcí, Project
objektů a ProjectItem zbývajících objektů jedinečných pro vaši implementaci. Tyto standardní objekty jsou definovány v souboru Dteinternal.h. Implementace standardních objektů je k dispozici v ukázce BscPrj. Tyto třídy můžete použít jako modely k vytvoření vlastních standardních objektů projektu, které stojí vedle objektů projektu z jiných typů projektů.
Uživatel automatizace předpokládá, že může volat Solution("<UniqueProjName>")
a ProjectItems (n
), kde n je číslo indexu pro získání konkrétního projektu v řešení. Provedení tohoto volání automatizace způsobí, že prostředí zavolá GetProperty příslušnou hierarchii projektu a předá VSITEMID_ROOT jako parametr ItemID a VSHPROPID_ExtObject jako parametr VSHPROPID. IVsHierarchy::GetProperty
IDispatch
vrátí ukazatel na objekt automatizace poskytující základní Project
rozhraní, které jste implementovali.
Následuje syntaxe .IVsHierarchy::GetProperty
HRESULT GetProperty (
VSITEMID
itemid
,
VSHPROPID
propid
,
VARIANT
*pvar
);
Projekty umožňují vnořování a použití kolekcí k vytváření skupin položek projektu. Hierarchie vypadá takto.
Projects
|- Project
|- ProjectItems (a collection of ProjectItem)
|- ProjectItem (single object) or ProjectItems (another collection)
Vnoření znamená, že ProjectItem objekt může být ProjectItems současně kolekcí, protože ProjectItems
kolekce může obsahovat vnořené objekty. Ukázka základního projektu neukazuje toto vnoření. Implementací objektu Project
se účastníte struktury podobné stromové struktuře, která charakterizuje návrh celkového modelu automatizace.
Automatizace projektu se řídí cestou v následujícím diagramu.
Automatizace projektů
Pokud objekt neimplementujete Project
, vrátí prostředí obecný Project
objekt, který obsahuje pouze název projektu.