504A5p3高程 下载 Function Welcome sgBox getResource('hello) End Function </script 16.33运行期层 为了创建一个WSC实例,通常需要使用一个类似Ⅴ SCript的 CreateObject的函数并以 ProgID作为其第一个参数(另外组件所安装的服务器的名称是可选的第二个参数)。一旦调用, VBScript引擎试图定位实现组件的DLL的名称,进行下列步骤: ·在注册表中搜寻 ProgId ·从 ProgID获得组件的 CLSID 在注册表中搜寻 CLSID。 读取可执行文件的名称 对于WSC而言,其服务器模块总是位于 Windows目录下的 scrobj dI文件。 VBScript创建 对象实例, scrobj. d将接受代表此对象的 CLSID。现在, scrobj. d的核心代码将使用这个 CLSID在注册表中搜寻名为 ScriptletURL的WSC键。这个键指向提供公共方法的运行期代码的 WSC文件。 SC的运行期DLL为一个虚拟对象创建一个实例,该实例实现WSC定义的接口并将其返 回给调用者。之后,当 VBScript代码执行一个方法时,将调用这个虚拟对象。由这个虚拟对 象从wSC源代码中提取正确的代码段,并交由Ⅴ SCript或 JScript解释器执行 改变后不用再注册 当向外界提供COM的接口后,不会因为添加或删除其属性和方法而发生改变,也不必在 脚本代码中对发生改变的组件进行重新注册。同理,也不必在服务器脚本组件发生改变后停 止并重新启动服务器。对于代码执行,所有需要处理的事情都发生在运行期。 164可用的接口 前面曾提到使用脚本语言编写COM对象存在着种种问题。下面,将通过了解WSC的底层 运行进行期机制找到以上问题的答案。客户端程序将始终需要获得标准的COM接口,但在 COM的标准接口背后,运行期引擎事实上是运行从分离的WSC文件中读取的脚本代码。 很清楚,这样做的结果就是必须为通过脚本代码提供的接口提供一个二进制的中介。这 个中介就是前面所说的接口处理器。换句话说,可以通过脚本代码实现一些COM接口,同时 必须相应的处理器。 微软给出的有关这方面的技术指导,指出了仅有的几个可用的接口处理器: 自动化处理器 事件处理器 ASP处理器。 IE50行为处理器 所有这些处理器都在 scrobj dI内实现,不需其他文件支持。如果使用了< public>标记,前 面两个处理器会被自动激活。后两个则需要定义一个< implements>标记16.3.3 运行期层 为了创建一个 W S C实例,通常需要使用一个类似 V B S c r i p t的C r e a t e O b j e c t的函数并以 P r o g I D作为其第一个参数 (另外组件所安装的服务器的名称是可选的第二个参数 )。一旦调用, V B S c r i p t引擎试图定位实现组件的D L L的名称,进行下列步骤: • 在注册表中搜寻P r o g I D。 • 从P r o g I D获得组件的C L S I D。 • 在注册表中搜寻C L S I D。 • 读取可执行文件的名称。 对于W S C而言,其服务器模块总是位于 Wi n d o w s目录下的s c r o b j . d l l文件。V B S c r i p t创建 对象实例, s c r o b j . d l l将接受代表此对象的 C L S I D。现在, s c r o b j . d l l的核心代码将使用这个 C L S I D在注册表中搜寻名为S c r i p t l e t U R L的W S C键。这个键指向提供公共方法的运行期代码的 W S C文件。 W S C的运行期D L L为一个虚拟对象创建一个实例,该实例实现 W S C定义的接口并将其返 回给调用者。之后,当 V B S c r i p t代码执行一个方法时,将调用这个虚拟对象。由这个虚拟对 象从W S C源代码中提取正确的代码段,并交由 V B S c r i p t或J S c r i p t解释器执行。 改变后不用再注册 当向外界提供C O M的接口后,不会因为添加或删除其属性和方法而发生改变,也不必在 脚本代码中对发生改变的组件进行重新注册。同理,也不必在服务器脚本组件发生改变后停 止并重新启动服务器。对于代码执行,所有需要处理的事情都发生在运行期。 16.4 可用的接口 前面曾提到使用脚本语言编写 C O M对象存在着种种问题。下面,将通过了解 W S C的底层 运行进行期机制找到以上问题的答案。客户端程序将始终需要获得标准的 C O M接口,但在 C O M的标准接口背后,运行期引擎事实上是运行从分离的 W S C文件中读取的脚本代码。 很清楚,这样做的结果就是必须为通过脚本代码提供的接口提供一个二进制的中介。这 个中介就是前面所说的接口处理器。换句话说,可以通过脚本代码实现一些 C O M接口,同时 必须相应的处理器。 微软给出的有关这方面的技术指导,指出了仅有的几个可用的接口处理器: • 自动化处理器。 • 事件处理器。 • ASP处理器。 • IE 5.0行为处理器。 所有这些处理器都在s c r o b j . d l l内实现,不需其他文件支持。如果使用了 < p u b l i c >标记,前 面两个处理器会被自动激活。后两个则需要定义一个 < i m p l e m e n t s >标记。 504计计ASP 3 高级编程 下载