项目子类型可以通过在 Projects 注册表子项子项下注册“添加项模板”,为“添加新项”对话框提供完整的新项目录。
注册“添加新项”模板
此部分位于注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Projects 下。 下面的注册表项假定 Visual Studio 项目由假设项目子类型聚合。 下面列出了 Visual Studio 项目的条目。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Projects\{F184B08F-C81C-45F6-A57F-5ABD9991F28F}]
@="#2143"
"DefaultProjectExtension"="vbproj"
"PossibleProjectExtensions"="vbproj;vbp"
"ProjectTemplatesDir"="visualStudioInstallPath\\Vb\\.\\VBProjects"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Projects\{F184B08F-C81C-45F6-A57F-5ABD9991F28F}\AddItemTemplates\TemplateDirs\{12345678-1234-1234-1122334455667788}\/1]
@="#100"
"TemplatesDir"="projectSubTypeTemplatesDir\\VBProjectItems"
AddItemTemplates\TemplateDirs 子项包含注册表项,这些注册表项中的路径指向在“添加新项”对话框中可用项所在的目录。
环境会自动加载 Projects 注册表子项下的所有 AddItemTemplates 数据。 此数据可以包括基本项目实现的数据以及特定项目子类型的数据。 每个项目子类型都由项目类型 GUID 标识。 项目子类型可以通过在GetProperty实现中支持__VSHPROPID2枚举来返回项目子类型的GUID值,从而指定应为特定风格项目实例使用一组备用的添加项模板。 如果未指定属性 VSHPROPID_AddItemTemplatesGuid ,则使用基本项目 GUID。
可以通过在项目子类型聚合器对象上实现接口来筛选“IVsFilterAddProjectItemDlg”对话框中的项。 例如,通过聚合 Visual Studio 项目来实现数据库项目的项目子类型,可以通过实现筛选从“添加新项”对话框中筛选 Visual Studio 特定项,反过来,还可以通过支持VSHPROPID_ AddItemTemplatesGuidGetProperty来添加数据库项目特定的项。 有关筛选和添加项到添加新项对话框的详细信息,请参阅添加项到添加新项对话框。