项目建模

为项目提供自动化的下一步是实现标准项目对象:Projects和集合、Project对象ProjectItemsProjectItem以及实现唯一的其余对象。 这些标准对象在 Dteinternal.h 文件中定义。 BscPrj 示例中提供了标准对象的实现。 可以将这些类用作模型来创建自己的标准项目对象,这些对象与其他项目类型中的项目对象并排存在。

自动化使用者假定能够调用 Solution(“<UniqueProjName>")ProjectItemsn), 其中 n 是用于获取解决方案中特定项目的索引号。 进行此自动化调用会导致环境对相应的项目层次结构进行调用 GetProperty ,将VSITEMID_ROOT作为 ItemID 参数传递,并将VSHPROPID_ExtObject作为 VSHPROPID 参数传递。 IVsHierarchy::GetProperty 返回指向 IDispatch 提供已实现的核心 Project 接口的自动化对象的指针。

下面是 . 的 IVsHierarchy::GetProperty语法。

HRESULT GetProperty (

VSITEMIDitemid

VSHPROPIDpropid

VARIANT *pvar

);

项目可以容纳嵌套和使用集合来创建项目项组。 层次结构如下所示。

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

嵌套意味着 ProjectItem 对象可以 ProjectItems 同时进行集合,因为 ProjectItems 集合可以包含嵌套对象。 基本项目示例不演示此嵌套。 通过实现 Project 对象,可以参与描述整体自动化模型设计特征的树状结构。

项目自动化遵循下图中的路径。

Visual Studio 项目对象

项目自动化

如果未实现对象 Project ,环境仍将返回仅包含项目名称的泛型 Project 对象。

另请参阅