將專案模型化
為專案提供自動化的下一個步驟是實作標準項目物件: Projects 和 ProjectItems
集合、 Project
和 ProjectItem 物件,以及您實作唯一的其餘物件。 這些標準物件定義於 Dteinternal.h 檔案中。 標準對象的實作會在 BscPrj 範例中提供。 您可以使用這些類別作為模型來建立您自己的標準項目物件,以與其他項目類型的項目物件並排運作。
自動化取用者假設能夠呼叫 Solution(“<UniqueProjName>")
和 ProjectItems (n
) ,其中 n 是取得解決方案中特定專案的索引編號。 進行此自動化呼叫會導致環境在適當的項目階層上呼叫 GetProperty ,將VSITEMID_ROOT傳遞為ItemID參數,並將VSHPROPID_ExtObject為 VSHPROPID 參數。 IVsHierarchy::GetProperty
會 IDispatch
傳回自動化物件的指標,提供您實作的核心 Project
介面。
以下是的 IVsHierarchy::GetProperty
語法。
HRESULT GetProperty (
VSITEMID
itemid
、
VSHPROPID
propid
、
VARIANT
*pvar
);
專案容納巢狀,並使用集合來建立專案專案的群組。 階層看起來像這樣。
Projects
|- Project
|- ProjectItems (a collection of ProjectItem)
|- ProjectItem (single object) or ProjectItems (another collection)
巢狀表示 ProjectItem 物件可以 ProjectItems 同時進行集合,因為 ProjectItems
集合可以包含巢狀物件。 基本專案範例不會示範此巢狀結構。 藉由實作 Project
物件,您可以參與樹狀結構,以描述整體自動化模型設計的特性。
專案自動化會遵循下圖中的路徑。
專案自動化
如果您未實 Project
作 對象,環境仍會傳回只包含專案名稱的泛型 Project
物件。