项目子类型扩展的属性和方法

项目子类型具有许多影响项目行为的力量,因为它被构造为基项目的聚合器。 本部分总结了项目子类型可以增强或修改的一些功能。

聚合获取的功能

下表汇总了许多方法,这些方法使项目子类型能够在基本项目中重写。

由聚合重写的方法 项目子类型
IVsHierarchy

GetProperty

SetProperty

GetGuidProperty

SetGuidProperty
允许项目子类型

- 更改项目节点描述文字和图标。
- 完全重写项目 Browse 对象。
- 控制是否可以重命名项目。
- 控制排序顺序。
- 控制动态帮助的用户上下文。
IVsProject

GetItemContext
使项目子类型能够控制向设计器和编辑器提供哪些上下文服务。
IOleCommandTarget

QueryStatus

Exec

QueryStatusCommand

ExecCommand
允许项目子类型

- 参与项目命令的命令路由。
- 添加、删除或禁用项目环境命令和解决方案资源管理器活动命令。
IVsFilterAddProjectItemDlg2 使项目子类型能够筛选用户在“添加新项”对话框中看到的内容。
IVsSingleFileGeneratorFactory 允许项目子类型

- 确定给定文件扩展名的默认生成器。
- 将人工可读生成器名称映射到 COM 对象。

项目子类型使用的属性

环境和基本项目系统可以使用下表中详述的属性 __VSSPROPID__VSSPROPID2 枚举,使项目子类型能够控制项目系统的各种功能。

VSHPROPID 属性 项目子类型
AddItemTemplatesGuid 允许项目子类型控制“添加项”对话框的内容。 项目子类型可以提供模板目录的新规范、添加新类型的项、删除现有项,以及重新组织基项目的 “添加项 ”对话框中的项子集。
PropertyPagesCLSIDList 允许项目子类型添加或删除与配置无关的属性页。
CfgPropertyPagesCLSIDList 允许项目子类型添加或删除依赖于配置的属性页。
ExtObjectCATID 允许项目子类型通过了解 Extender CATID 为项目或项目项对象提供自动化扩展程序。 例如,项目子类型可以提供自定义 Project.Extender("<subtype>") 对象。
BrowseObjectCATID 允许项目子类型通过知道 Extender CATID 为 Browse 对象提供自动化扩展程序。 例如,项目子类型可以向集合添加额外的属性 Properties
CfgBrowseObjectCATID 允许项目子类型为项目配置浏览对象提供自动化扩展程序。 例如,项目子类型可以向集合添加额外的属性 Properties
CfgExtObjectCATID 允许项目子类型为配置对象提供自动化扩展程序。
DefaultPlatformName 允许项目子类型确定项目配置对象的平台名称。

基本项目提供上述属性的默认实现。 基项目通过调用QueryInterfaceIVsHierarchy最外部的项目子类型来获取这些属性,从而允许项目子类型重写属性的实现。

另请参阅