打开新建工程时,有三种可以选择的工程类型:ActiveX EXE、ActiveX DLL 和 ActiveX 控件。所选择的工程类型将决定部件所能提供的对象种类。
以下各项有助于选择正确的部件工程类型。
注意 由于 ActiveX 控件工程中的类模块的实例只允许有两种选择 PublicNotCreatable 或 Private,因此控件部件提供其它对象种类的能力有限。最常用来增强控件的功能对象放在控件部件内,其它用途的对象放在一个单独的 ActiveX DLL 工程中。
请参阅“建立 ActiveX 文档”中关于选择进程内还是进程外部件来提供活动文档的论述。
为新部件打开工程后,需要设置一些工程属性。
要为新建的部件工程设置属性,请按照以下步骤执行:
对新建部件来说,这是最重要的属性。它用于在 Windows 注册表和对象浏览器中标识该部件,因此其唯一性是很重要的。
该名字也是编译后的部件的缺省名字,以及包含对该部件提供的对象和接口进行描述的类型库的名字。请参阅本章后面的“多态性、接口、类型库和 GUID”。
工程描述是开发者或用户设置对部件的引用时,或者在“部件”对话框中选择控件部件时将看到的文本字符串。
如果无须初始化部件则单击“无”。如果部件需要初始化,则单击“Sub Main”,给该工程添加一个模块,且在该模块内定义一个名为 Main 的 Public Sub。在该 Sub 内放置初始化代码。
重点 要知道在 Sub Main 中的处理为什么要尽可能少,请参阅本章后面的“启动和结束部件”。
注意 不要在类模块中放置 Sub Main。在类模块中放置的 Sub Main 将被视为一个名为 Main 的方法,而非一个启动过程。
根据所创建的部件类型,还会有一些其它的工程属性需要设置。
位于 “通用”选项卡,可以给无用户交互的代码部件设置该属性。在 ActiveX DLL 工程中,设置该属性使得该 DLL 线程安全(通过单元模型线程化)。
ActiveX EXE 工程允许部件是多线程的。该属性的含义和局限性在“建立代码部件”中详述。
注意 包含 UserDocuments、UserControls 和窗体的部件不能标记为无用户界面执行。
为部件提供帮助文件是很有必要的。关于如何将部件中类的属性和方法与相应帮助主题链接的信息,请参阅“调试、测试和部署部件”一章的“提供 ActiveX 部件的用户帮助”。
对于进程外部件,这种部件兼作独立运行的桌面应用程序,通过设置“部件”选项卡中的 Start Mode 属性就可以调试两种启动模式。这一点在“调试、测试和部署部件”一章的“调试进程外部件”中介绍。
“生成”选项卡上的属性允许设置文件版本号及部件的版本信息。极力推荐使用该选项卡来提供版本信息。
重点 递增的文件版本号对部件的使用十分重要,能够确保部件的安装程序不会用老版本覆盖新版本。
可以在“部件”选项卡中选择版本兼容模式。对于新建工程,该选项将在该部件第一次编译时自动设置为“工程兼容”,这在“调试、测试和部署部件”一章的“如何测试 ActiveX 部件”中详述。
对后续的部件版本,可以选择“二进制兼容”确保使用旧版本编译的程序在新版本下也能运行。请参阅“调试、测试和部署部件”一章的“版本兼容性”。
通过设置“编译”选项卡的属性可以选择将部件编译为 p-code 或者本地代码,这在《Visual Basic 程序员指南》的“再论编程”中详述。
Visual Basic 企业版中,设置该“部件”选项卡的属性会生成在远程计算机上运行该部件所需的支持文件。