ActiveX Scripting是Microsoft 的Automation技术和Script技术结合的产物,因此,在介绍ActiveX Scripting之前,首先我们来看看Automation和Script两种技术的发展情况。
(1) Automation技术是Microsoft OLE技术 的一部分,它可使解释性的宏语言(主要是Visual Basic)能够在不了解应用程序的实现细节的情况下控制Automation对象,随着Visual Basic软件的发展以及Microsoft Office套件的广泛应用,Automation技术已经成为连接这些应用或者工具的纽带。而且,更多的应用把这种宏语言作为自己应用扩展的手段,例如Word、Access以及Notes都把BASIC类语言作为其开发语言,并且这些BASIC类语言均支持Automation对象;另一方面,Internet浏览器也提供了脚本引擎,可用于解释网络页面脚本语言中的Automation对象。所有这些应用能够得以不断发展,在很大程度上是因为这些BASIC语言或脚本语言提供了对Automation的支持。
Automation技术以COM(组件对象模型)为基础,所有的Automation对象都实现了标准的IDispatch接口,通过IDispatch接口暴露对象的属性和方法,以便在客户程序中使用这些属性并调用它所支持的方法。Automation对象的客户程序或者宿主程序通过类型库(Type Library)获得对象运行时刻的类型信息,并提供事件处理。宏语言解释器或者脚本引擎根据对象的类型信息,把其中对对象属性和方法的引用解释为对IDispatch接口成员函数Invoke的调用,从而实现对对象的控制。
(2) Script技术是指脚本语言的技术,目前主要用于Internet浏览器中,它可实现对页面的交互处理。我们知道,HTML是一种描述性的语言,交互能力很弱,但通过Script技术,可以编制出一些内容生动、具有极强交互性的网络页面;并且,使用Script技术的另一个好处是,它能够减轻服务器端计算的负担,把部分计算工作转移到客户端来完成。目前VBScript和JavaScript语言在网络浏览器上应用非常广泛,而且一些主要的浏览器也提供了相应的引擎用于处理网页中的脚本语言。
通常来说,用于网络浏览器的脚本语言具有以下特点:(1) 它本身是一门解释性语言,所以语言的语法简单,但执行效率相对较低;(2) 它采用了事件驱动机制,脚本语言主要用于对交互事件作出响应,脚本语言程序的主体是事件处理过程;(3) 与浏览器内在的对象模型结构结合紧密,脚本语言单独作为编程语言的价值很小,只有同特定的对象模型结构相结合后才能够体现出其控制能力。在HTML的脚本程序中用户可以直接使用如Window、Pane、Document等浏览器结构元素,并对其进行控制,产生各种效果。此外脚本语言还可以对页面上的Java Applet和ActiveX Control进行操作。能够对宿主应用的对象进行控制正是脚本语言的真正价值所在。
从上面对两种技术的讨论中不难看出, Automation 技术作为对应用程序进行外部控制的成熟而有力的手段,其设计目标与 Script 技术有许多共同之处。而 Automation 技术的基础 COM 技术本身是一种语言无关的软件模型,一个很自然的想法是通过 COM 来统一实现对对象的控制和对多种脚本语言的无缝支持。这种想法体现在实践上就形成了 Microsoft 的 Active Scripting 技术。