建立代码部件

代码部件就是以前所谓的 OLE 服务器,它是用来封装对象的一种对象库,为代码重用提供了一种简便的方法。例如,创建的过程库可以用于 Microsoft Visual Basic,也可以用于支持 Visual Basic for Applications 的桌面应用程序,诸如 Microsoft Office 等。

利用 Visua Basic 企业版,代码部件可以成为企业系统的一部分,在远程计算机上以后台方式提供数据服务与业务规则。与此关系较为密切的章节包括“可扩展性与多线程”和“异步的回调与事件”。

代码部件可以作 Visual Basic 的向导和外接程序。《部件工具指南》的“使用外接程序扩展 Visual Basic 环境”描述了如何创建向导和外接程序。本章的很多主题都提供了创建外接程序的背景知识。

阅读“建立代码部件”的读者应熟悉“部件设计的一般准则”和“调试、测试和部署部件”的内容,还应熟悉《程序员指南》的“用对象编程”。

下述主题描述了 Visual Basic 代码部件的关键特性。

主题

全局对象与代码库

创建不必显式创建对象即可调用的过程库,这些过程使用起来象是 Visual Basic 的一部分。

可扩展性与多线程

当部件需要处理多个请求时,Visual Basic 提供了两种途径来防止长任务阻塞短任务:多线程与 SingleUse 类。

异步的回调与事件

定义异步处理,并介绍了两种方式用来通知客户端异步任务已经执行完毕:产生事件或实现带回调的接口。

在代码部件中显示窗体

在进程内部件和进程外部件中显示模式窗体和无模式窗体。

在 Visual Basic 部件中如何创建对象

在某些情形下,例如使用 SingleUse 对象时,创建对象的方式将影响对象的行为。

绑定对 ActiveX 部件性能的影响

在引用部件中的对象时,客户端声明变量的方式将影响部件的性能。

调度对 ActiveX 部件性能的影响

声明进程外部件的方法参数如何对性能产生很大影响。


示例应用程序

Coffee2.vbp, CoffWat2.vbp, MTCoffee.vbp

Coffee2.vbp 和 CoffWat2.vbp 演示了异步通知的两个技术,即次级接口上的事件及回调方法,并举一个可用来代替 Timer 的完整代码实例。MTCoffee.vbp 解释了多线程的一些特性。示例应用程序列在Samples 目录中。


详细信息 请参阅“创建 ActiveX EXE 部件”,其中循序渐进地介绍了多线程和异步处理的循序渐进过程。“创建 ActiveX DLL”中的循序渐进到介绍了全局对象和无模式窗体。Visual Basic 代码部件也可以提供 ActiveX 文档,请参阅“建立 ActiveX 文档”。