项目建模
为项目提供自动化的下一步是实现标准项目对象:Projects和集合、Project
对象ProjectItems
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
对象。