502A5p3高编程 Chinapub.com 下载 客户端不能通过浏览器打开WSC中使用的属性,这些属性也不能读写。在大多情况下, 会发现组件同客户的交互需要多一点控制。假设组件显示当前会话个数,这个值应是只读的。 如果客户能修改他,则很快就会出现错误 每个 property>标记有两个子标记:<get>和put>。两者分别定义了读和写属性值的方 式。当需要读写属性内容时,执行二个过程中相应的一个。它们都有一个默认的名字,分别 是get和putL,加上属性的公共名称,但是二者都可通过使用前面讲到的 interalname属性进行 更改。如果省略≤get>标记,可自动使此属性只写。同理,省略<pu可以使属性只读。 (4)激发事件 在WSC中激发一个事件必须调用一个WSC的全局函数 fire Event。这可以触发一个由其第 一个参数指定的事件,另外,还可以增加任意个参数 fireEvent .OnEvent dataToPas 如果仅需要WSC提供方法、属性和事件,则不需考虑< implements>标记。这个标记主要 用于定义你的wSC支持的COM接口。缺省情况下,WSC自动支持自动化( Automation)和事件 处理接口。更准确地说,当插入< public>标记时,将自动要求支持这些接口。 个用脚本语言编写的COM对象并不能实现所有可能的COM接口。尽管这在C++和 Delphi中可以非常轻易地实现,在 Visual basic中将会稍微复杂一些,而用脚本代码几乎是无 法实现的。为了围绕这个方面展开工作,WSC依赖于名为“接口处理器”( interface handlers IH)的专用二进制模块。接口处理器由前面提及的 scrobj dI管理 接口处理器 接口处理器(IH)是一种对任何附加的非自动化COM接口提供支持的二进制模块。其结构 如图16-2所示 标准COM接口 ASP Behaviour Scrobi ddl (自动化、事件) C 图16-2接口处理器结构图 IH主要是作为wSC脚本代码和客户应用程序之间的一种中介,向客户提供给定接口的标 准的COM布局。当客户调用接口的方法时,IH检索并执行脚本代码以实现其功能 旦声明“ public>标记, scrobj dI将.自动为自动化和事件加载IH。如果需要支持附加的接 口,可以在< implements>中显式请求。也就是说,< implements>标记是一种WSC与特定的处 理器之间的联系方式。其语法如下
客户端不能通过浏览器打开 W S C中使用的属性,这些属性也不能读写。在大多情况下, 会发现组件同客户的交互需要多一点控制。假设组件显示当前会话个数,这个值应是只读的。 如果客户能修改他,则很快就会出现错误。 每个< p r o p e r t y >标记有两个子标记: < g e t / >和< p u t / >。两者分别定义了读和写属性值的方 式。当需要读写属性内容时,执行二个过程中相应的一个。它们都有一个默认的名字,分别 是g e t _和p u t _,加上属性的公共名称,但是二者都可通过使用前面讲到的 i n t e r a l n a m e属性进行 更改。如果省略< g e t >标记,可自动使此属性只写。同理,省略 < p u t >可以使属性只读。 (4) 激发事件 在W S C中激发一个事件必须调用一个 W S C的全局函数f i r e E v e n t。这可以触发一个由其第 一个参数指定的事件,另外,还可以增加任意个参数。 3. <implements> 如果仅需要W S C提供方法、属性和事件,则不需考虑 < i m p l e m e n t s >标记。这个标记主要 用于定义你的W S C支持的C O M接口。缺省情况下, W S C自动支持自动化( A u t o m a t i o n )和事件 处理接口。更准确地说,当插入 < p u b l i c >标记时,将自动要求支持这些接口。 一个用脚本语言编写的 C O M对象并不能实现所有可能的 C O M接口。尽管这在 C + +和 D e l p h i中可以非常轻易地实现,在 Visual Basic中将会稍微复杂一些,而用脚本代码几乎是无 法实现的。为了围绕这个方面展开工作, W S C依赖于名为“接口处理器” (interface handlers, I H )的专用二进制模块。接口处理器由前面提及的 s c r o b j . d l l管理。 接口处理器 接口处理器( I H )是一种对任何附加的非自动化 C O M接口提供支持的二进制模块。其结构 如图1 6 - 2所示。 图16-2 接口处理器结构图 I H主要是作为W S C脚本代码和客户应用程序之间的一种中介,向客户提供给定接口的标 准的C O M布局。当客户调用接口的方法时, I H检索并执行脚本代码以实现其功能。 一旦声明< p u b l i c >标记,s c r o b j . d l l将自动为自动化和事件加载 I H。如果需要支持附加的接 口,可以在< i m p l e m e n t s >中显式请求。也就是说, < i m p l e m e n t s >标记是一种W S C与特定的处 理器之间的联系方式。其语法如下: 502计计ASP 3 高级编程 下载 客 户 标准COM接口 (自动化、事件) ASP WSC Behaviour Scrobj.ddl
第6章4本组件503 下载 implements type=handler id=name"/> type属性定义IH的名称,而id是处理器自身实际使用的ID。在大多情况下可以省略id属性 在本章稍后将讨论WSC结构的内部细节。 4.<resource> 使用这个标记可以隔离wSC文件代码中所有是常量并且不想在脚本中进行硬编码的元素 (字符串和数字)。每种资源通过ID定义 <resource ID="hello.>Hello, world</resource> <resource ID="version>1. 02</resources 可以使用ID在WSC文件代码中检索信息。ID必须传递到全局函数 getResourceo以获得存 储的数据: <registration progid="Helloworld. WSC/ <comment> Place here as many comments as you like resource id=hello>Hello, world </resource> cpublic> <method name='welcome"/> </publi <script language"VBScript'> Function Welcome MsgBox getResource('hello") End Function </script> </component> 上面的代码显示了另外一个标记:< comment>。顾名思义,置于这个标记中的所有文本 将被分析器忽略,可以用做源代码的注释 < resource>标记的典型用途是定义脚本中的常量。尽管< resource>更为标准且语言上更为 中性一些,但从功能上讲,使用< resource>标记同在脚本中声明一组常量并没有区别。 163.2脚本层 所有与wSC方法、属性以及辅助函数相关的函数都必须包含于< script>标记中。其语法 HTML的< script>标记十分相似,但不同的是前者仅需要 language属性来进行修饰。 只要安装合适的解释器,就可以在脚本组件中使用任何语言。微软仅仅提供了基于 Ⅴ SCript和 JScript的两个解释器。但是第三方厂商已经开发了用于Perl和其他语言的 Windows 脚本兼容解释器。 XML适应性 正如前面提到的,一个wSC文件基本上就是一个XML文件,遵循XML1.0规范。到此为 止,实现它仍有两件工作要做。第一件是在文件顶部加入下面一行代码以声明它为ⅩML <?xm1 verslon=·1.0”?> 但是,当这样做了以后,必须将< cript>标签中的所有内容包含进来。为了防止XML解释 器对特殊字符的混淆,例如“<”或“&”,可使用 CDATA分界符。 <script language='VBScript'>
t y p e属性定义I H的名称,而id 是处理器自身实际使用的I D。在大多情况下可以省略i d属性。 在本章稍后将讨论W S C结构的内部细节。 4. <resource> 使用这个标记可以隔离 W S C文件代码中所有是常量并且不想在脚本中进行硬编码的元素 (字符串和数字)。每种资源通过I D定义: 可以使用I D在W S C文件代码中检索信息。 I D必须传递到全局函数 g e t R e s o u r c e ( )以获得存 储的数据: 上面的代码显示了另外一个标记: < c o m m e n t >。顾名思义,置于这个标记中的所有文本 将被分析器忽略,可以用做源代码的注释。 < r e s o u r c e >标记的典型用途是定义脚本中的常量。尽管 < r e s o u r c e >更为标准且语言上更为 中性一些,但从功能上讲,使用 < r e s o u r c e >标记同在脚本中声明一组常量并没有区别。 16.3.2 脚本层 所有与W S C方法、属性以及辅助函数相关的函数都必须包含于 < s c r i p t >标记中。其语法与 H T M L的< s c r i p t >标记十分相似,但不同的是前者仅需要 l a n g u a g e属性来进行修饰。 只要安装合适的解释器,就可以在脚本组件中使用任何语言。微软仅仅提供了基于 V B S c r i p t和J S c r i p t的两个解释器。但是第三方厂商已经开发了用于 P e r l和其他语言的Wi n d o w s 脚本兼容解释器。 X M L适应性 正如前面提到的,一个 W S C文件基本上就是一个 X M L文件,遵循XML 1.0规范。到此为 止,实现它仍有两件工作要做。第一件是在文件顶部加入下面一行代码以声明它为 X M L。 但是,当这样做了以后,必须将 < s c r i p t >标签中的所有内容包含进来。为了防止 X M L解释 器对特殊字符的混淆,例如“ <”或“&”,可使用C D ATA分界符。 第1 6章 A S P脚本组件计计503 下载