Windows 脚本部件  

说明事件

要给 Windows® 脚本部件来添加事件能力:

有些主机环境还会要求您生成一个类型库,主机需要这个类型库来绑定事件。详细信息请参阅创建脚本部件类型库

注意   Behavior 处理程序以一种略微不同的方式来说明事件。详细信息请参阅在 Behavior 脚本部件中说明自定义事件

声明事件

必须逐个地声明每个希望能够激活的事件。

要声明一个事件

  1. 创建一个 <public> 元素,该元素应作为 <component> 元素的子元素。
  2. 在 <public> 元素中,对每个要声明的事件包含一个 <event> 元素。
  3. 例如,下面的脚本部件片段演示了如何来说明两个事件:
    <public>
       <property name="sname"/>
       <method name="factorial"/>
       <event name="namechanged"/>
       <event name="querydone"/>
    </public>

指定派遣标识符

COM 编程通过派遣标识符(称为 dispid ) 来提供事件通知,派遣标识符是指标识部件事件的整数值。dispid 在编译时被写入该部件的类型库,然后由宿主应用程序用来绑定到事件。

给脚本部件创建类型库的过程将自动为脚本部件的事件生成 dispid 。不过,如果您愿意,您可以指定自己的 dispid 。这样做的好处是:

要给事件指定一个 dispid,请在 <event> 元素中包括该 dispid 属性,如下例所示:

<public>
   <event name="namechanged" dispid="22">
</public>

Dispid 在脚本部件内必须是唯一的。您可以将一个为负数指定为 dispid,并映射到传统的事件,但必须使用指定的范围(如 -999 到 -500)加以控制。关于保留的 dispid 的范围的详细信息,请参阅 MSDN 库中的 DISPID 的文档。

注意   0 这个 dispid 号码用来标识缺省的方法或属性。详细信息请参阅说明方法说明属性

激活一个事件

可以通过调用 fireEvent 方法并指定要激活的事件名来激活一个事件。不能激活没有在 <implements> ; 元素中声明的事件。可以激活脚本部件文件任何脚本中的事件。例如,下面演示了在属性值更改时如何激活事件。

<script language="VBScript">
<![CDATA[
Sub put_lowercaseName(newLCName)
   name = newLCName
   fireEvent("namechanged")
End Sub
]]>
</script>

请参阅

在 Behavior 脚本部件中说明自定义事件 | 说明方法 | 说明属性 | 在宿主应用程序中处理脚本部件的事件 | 脚本部件文件的内容