摘要 本文介绍了脚本部件技术、特点及使用脚本部件的一般步骤,指出利用脚本部件创建COM 部件在工程应用中的意义,并给出了利用Visual Basic高级语言和脚本部件实现小型通用电话计费系统的应用实例。
关键词 脚本部件;COM;XML;软件复用
1.引言
许多企业和部门出于方便通信目的购置了电话程控交换机(PBX)。为便于代收电话费用或进行内部成本核算,通常都需要一个小型电话计费系统。由于不同型号的程控交换机电话单的输出格式不尽相同,这给开发一个通用的电话计费系统带来了不便。为了解决这一问题,利用简便高效的脚本部件创建COM 部件实现对特殊电话单进行解析,从而提高电话计费系统的可重用性。
本文首先介绍脚本部件技术、特点、使用方法,然后给出程控交换机电话计费系统中利用Visual Basic高级语言调用Windows脚本部件解决特殊电话单解析的应用实例。
2.脚本部件技术
脚本部件提供了用脚本创建功能强大、可复用的 COM 部件的简便方式。可以使用任何支持 Microsoft ActiveX Scripting 接口的脚本语言来创建脚本部件,如使用 JScript、 VBScript等脚本语言。其小巧高效、易于创建、维护和部署的特性决定了它在工程中得到广泛应用。
2.1 脚本部件的工作原理
脚本部件的工作涉及三方面内容:脚本部件运行时程序 (Scrobj.dll),接口处理程序和脚本部件文件 (文件属性名为 .wsc)。
(1)脚本部件运行时程序是作为脚本部件的 inproc 服务器来运行的,用来将应用主程序的 COM 请求发送到脚本部件。
(2)接口处理程序是已编译好的实现特定 COM 接口的部件。最常使用的接口处理程序包括 COM Automation 接口处理程序、ASP 接口处理程序以及用于 DHTML Behavior 的处理程序已内置于脚本部件运行时程序中。其它处理程序可作为外接部件或嵌在相关的应用程序中。
(3)脚本部件文件属于 XML (可扩展的标记语言) 文件。用户可遵循脚本部件文件的框架来开发只包含简单函数功能的COM,也可开发调用由接口处理程序提供的其它COM 部件或外接部件功能的复杂COM。
脚本部件运行时程序用作主机应用程序的入口点。复杂的 COM,包括诸如 IUnknown 之类的 COM 标准接口的实现等,都包含在相应接口处理程序中。脚本部件只包含为实现用户 COM 部件功能所必需的脚本。
例如,Automation 部件是最常使用的 COM 部件类型,该部件拥有属性和方法,其它应用程序可以调用这些属性和方法。实现这些功能所必需的低层次COM 接口都内置于 Automation 接口处理程序。在脚本部件文件中只需定义需要说明的属性、方法和事件,便可确保主应用程序对Automation 处理程序的正确调用。
2.2 脚本部件文件的框架
脚本部件文件采用 XML来编写,这种文件与 HTML 文件很相似,它包含了用于定义脚本部件及其操作的特有元素。脚本部件文件的框架如下:
<?XML version="1.0"?>
<package>
<?component error="true" debug="true"?>
<component id="MyScriptlet">
<registration
………
/registration>
<reference object="progID">
<public>
………
</public>
<implements type=COMhandlerName id=internalName>
………
</implements>
<script language="VBScript">
………
</script>
<script language="JScript">
………
</script>
………
</component>
</package>
其中主要脚本元素意义如下:
(1)<component> 和 <package> 元素: <component> 元素包含的是一个完整的脚本部件定义。在同一个 .wsc 文件中可以出现多个 <component> 元素,但这些元素应包含在一个 <package> 元素内。
(2)<registration> 元素:包括用来将脚本部件注册为 COM 部件的信息。
(3)<public> 元素:包含脚本部件所说明的属性、方法和事件的定义。方法功能将在 <script> 块中定义。