欢迎来到天天文库
浏览记录
ID:13276783
大小:126.00 KB
页数:13页
时间:2018-07-21
《在vs2008中定制visual c++项目向导》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在VS2008中定制VisualC++项目向导时间:2010-06-2513:08:52来源:网络作者:未知点击:44次1.向导执行过程1.1弹出项目模板列表对话框当用户打开“新建项目”对话框时,VSShell将通过注册表查找所有已安装的项目模板。首先,在注册表项HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio9.0Proje1.向导执行过程1.1弹出项目模板列表对话框当用户打开“新建项目”对话框时,VSShell将通过注册表查找所有已安装的项目模板。首先,在注册表
2、项HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio9.0Projects中枚举所有类型的项目,并查找名称为ProjectTemplatesDir的字符串值,该值的数据就是存放该类项目的所有项目模板的目录(模板目录);然后,VSShell从模板目录中读取所有项目模板的向导描述文件(*.vsz)和目录描述文件(*.vsdir)。最后,VSShell在“新建项目”对话框中显示这些项目模板。同样,对于添加新项目、添加新项、添加类……,也是类似的一个过程。在新建项目、添加新项
3、、添加类时,每一个向导都一个图标显示,该图标文件在两个位置进行查找:向导文件所在目录或者目录描述文件所指定的位置。表1向导类型类型目的位置是否可扩展新建项目创建一个新的项目“新建项目”对话框Yes添加新项向项目添加文件“添加新项”对话框Yes类向项目添加类“添加类”对话框Yes代码向项目添加代码右键单击类视图节点No2.2启动向导和初始化上下文当用户选择了一个项目向导,并单击“确认”按钮之后,VSShell使用.vsz文件中第二行的ProgID来创建向导引擎(一个COM对象)。比如,对于VC项目,引擎名为VSWizard
4、,ProgID为VsWizard.VsWizardEngine.9.0。2.2.1向导引擎VSWizard引擎为向导提供了框架和一些可使用的辅助函数。向导的用户接口(UI)主要是HTML;后端是JScript,其能够完全访问VS的富对象模型。VSWizard引擎的工作是布局UI和在用户点击“完成”时执行后端脚本。它也提供一些辅助函数来增强对象模型,这些辅助函数能够提供那些复杂的或者难实现的功能。例如,引擎暴露了一个API来弹出OleDB对话框,这在脚本中是不可实现的。请参考VCWizCtlObjectProperties
5、,Methods,andEvents,以获得所有控件API的完整列表。2.2.2符号表.vsz文件还包含了一些传递给向导引擎的参数,这些参数可用于定制向导行为。当VSWizard引擎实例化时,它会创建一个符号表来存储这些参数,并在符号表中记录用户在UI中的所有选择。该符号表为“名字/值”对的集合。除了.vsz文件中的那些自定义参数,VSShell,这些参数提供了当前项目和引擎运行环境的详细信息。对于上下文参数,它们只能由VSShell设置,但可以在向导的任何地方使用。2.2.3定位向导文件一旦引擎初始化完毕,它将按如下步
6、骤定位向导的UI和脚本文件:(1)向VSShell查询VS安装位置的注册表项。(2)打开查询得到的注册表项的setup子项,作为当前注册表项。(3)从.vsz文件中取得符号PROJECT_TYPE的值,如果没有指定则默认为C++项目。对于C++,该值为VCPROJ,向导引擎把它映射到注册表项“VC”;对于第三方语言没有这种自动映射,因此引擎直接在setup子项下查找PROJECT_TYPE值。把该子项作为当前注册表项。(4)引擎在当前注册表项下查找ProductDir字符串值,并把该值保存在PRODUCT_INSTALL
7、ATION_DIR符号中。(5)引擎在*.vsz文件中查找参数RELATIVE_PATH或参数ABSOLUTE_PATH。如果找到RELATIVE_PATH,那么它的值被追加到PRODUCT_INSTALLATION_DIR符号的值后,得到的新路径就为向导文件所在目录。如果找到的是ABSOLUTE_PATH,那么它的值就是向导文件所在目录。如果两个符号都没找到,那么引擎把默认的向导目录VCWizards添加到PRODUCT_INSTALLATION_DIR符号的值后,作为向导文件所在目录。(6)一旦引擎找到向导文件所在目
8、录,它将确定向导文件在哪个子目录中,这是通过.vsz文件中的WIZARD_NAME参数确定的。引擎最终把此子目录保存在符号START_PATH中供向导使用。2.2.4向导文件布局在START_PATH目录中,通常有四个子目录:html、image、scripts和templates。html目录存放着作为UI的HTM
此文档下载收益归作者所有