ActiveX 文档的组成部分

用 Visual Basic 创建的 ActiveX 文档,总是由 UserDocument 对象、代码、代码模块、和放置在 UserDocument 上的控件组成。

工程文件

和 Visual Basic 窗体一样,UserDocument 对象有代码模块和可视化设计器,如图 11.2 所示。

图 11.2 UserDocument 设计器和代码窗口

和窗体一样,UserDocument 对象被保存在普通文本文件内,该文件包含源代码、UserDocument 的属性值和放置在它上面的控件。Visual Basic 对这些源文件使用扩展名 .dob。

如果 UserDocument 包含使用图形元素的控件,如位图,而图形元素是不能存储为普通文本的,则 Visual Basic 把这些元素存储在 .dox 文件中。该文件与用来存储窗体中使用的图形元素的 .frx 文件类似。

.dob 和 .dox 文件完全定义了 ActiveX 控件的外观和界面(属性、事件、和方法)。编译的 ActiveX 文档由 ActiveX .exe 或 .dll 和 .vbd 文件组成。在浏览器中,如 Internet Explorer,用户必须移动到 .vbd 文件来打开 ActiveX 文档。

编译的文件

ActiveX 文档可以被连编为进程外部件(.exe 文件)或进程内部件(.dll 文件)。在这两种情况下,当运行或编译工程时,除了创建 .exe 或 .dll 文件外,Visual Basic 还创建 Visual Basic 文档文件,其扩展名为 "vbd"。编译 .exe 或 .dll 时,.vbd 文件将被放置在与编译的部件相同的目录中。

.vbd 文件事实上是 OLE 结构化存储─ 意味着文件中的数据可以通过标准的 OLE 接口来访问和操作。其它 Microsoft 应用程序,如 Word 和 Excel,就以这种方式来存储数据。

注意 从 Visual Basic IDE 运行 ActiveX 工程时,在已安装 Visual Basic 的目录下将创建临时 .vbd 文件。临时 .vbd 文件用 UserDocument 的名称命名,扩展为 "vbd"。如果已有同名文件存在(在 Visual Basic 目录中),则那个 .vbd 文件将被移动到临时文件位置。该工程停止运行时,原有的文件将被恢复。可是,在该工程运行时,可以移动到该临时文件(从浏览器或其它应用程序中)。

为了在容器应用程序中查看 ActiveX 文档,如 Internet Explorer 或 Microsoft Office Binder,必须移动到 .vbd 文件。例如,如果创建了名叫 “DocObject1.vbd” 的 ActiveX 文档,且它在 Visual Basic 程序的缺省目录中,则在 Internet Explorer 的“地址”框中键入下面的 URL:

file://c:\Program Files\VB\DocObject1.vbd

注意 这个路径随所安装的 Visual Basic 的版本不同而不同。如果已将 Visual Basic 作为 Microsoft Visual Studio 的部分安装,则上面显示的 URL 可能是 file://c:\Program Files\Microsoft Visual Studio\VB\DocObject1.vbd.

也可以从 ActiveX 文档内,使用 Hyperlink 对象的 NavigateTo 方法打开另一个 ActiveX 文档,如:

Private Sub cmdGoNext_Click()
   UserDocument.Hyperlink.NavigateTo _
      "c:\Program Files\VB\DocObject1.vbd"
End Sub

注意 编译了 ActiveX 文档后,可以改变 .vbd 文件的扩展。换句话说,可以使用户移动到 "Nice.dog”,而不是 "Nice.vbd"。

详细信息 关于在浏览器中如何在 ActiveX 文档之间移动,请参阅“与 ActiveX 文档一起使用 HyperLink 对象”。