ActiveX 控件体系结构
ActiveX 控件技术建立在 OLE 中许多低级别对象和接口的基础之上。 控件上的具体接口因其功能而异。 本节将详细介绍控件可能提供的功能。
ActiveX 控件用于为在应用程序中创建用户界面提供构建基块。 例如,在单击一个按钮后会启动容器应用程序中的某些操作,这就是一个简单的控件。 提供这些用户界面构建基块涉及以下几个方面:
- 控件可以嵌入其容器客户端中,以支持客户端内的某些用户界面活动。 因此,当控件嵌入到容器中时,它需要提供自身的可视化表示形式,并需要提供保存其状态的方法,例如其属性值和在容器中的位置。 客户端必须支持成为一个嵌入对象的容器。
- 通过使用键盘或鼠标激活控件,最终用户可在客户端应用程序中启动某些操作。 因此,控件必须对键盘活动做出响应,并且必须能够与其客户端通信,以便将其活动通知其容器,并触发客户端中的事件。
- 客户端通常还提供一种编程语言,最终用户可以通过GIA语言来启动控件属性和方法提供的操作。 因此,控件还必须支持自动化和一些设计时与运行时功能。
由于控件在提供用户界面构建基块方面的作用,它通常使用 OLE 技术(如图所示)支持以下方面的功能:
-
属性和方法
-
与任何 OLE 对象一样,控件可以通过一组带有属性和方法的传入接口来提供其大部分功能。 容器可以提供其他环境属性,并支持通过聚合扩展控件的属性。 这些功能依赖于 OLE 自动化、属性页、可连接对象和 ActiveX 控制技术。
-
事件
-
除了提供属性和方法外,ActiveX 控件还可以提供传出接口来通知其客户端的事件。 客户端必须支持处理这些事件。 这些功能使用 OLE 自动化和可连接对象。
-
视觉表现
-
控件可以支持在其容器中定位和显示自身。 容器用于放置控件并确定其大小。 这些功能使用了复合文档技术,包括 OLE 拖放技术。
-
键盘处理
-
控件可对键盘加速器做出响应,以便最终用户启动控件执行的操作。 容器管理其所有嵌入控件的键盘活动。 这些功能使用了控制和复合文件技术。
-
持久性
-
控件可以保存其状态。 客户端管理其嵌入控件的持久性。 这些功能使用结构化存储和对象持久性技术。
-
注册和许可
-
控件通常支持自我注册,并在实例化时创建一组注册表项。 控件也可以授权使用,以防止未经授权的使用。
这些功能大多涉及控件及其客户端容器。
相关主题