定义用来将脚本部件注册为 COM 部件的信息。
<registration progid="progID" classid="GUID" description="description" version="version" [remotable=remoteFlag]/>
或者
<registration progid="progID" classid="GUID" description="description" version="version" [remotable=remoteFlag]> <script> (注册脚本或取消注册的脚本) </script> </registration>
Set Component = CreateObject("Component.MyComponent")
注意 尽管 progid 属性是可选的,但必须包括 progid 和 classid 属性两者之一(可以两个都包括)。如果只指定 progid 属性,将自动生成类 ID。如果只创建了类 ID,则不会注册 progid,且只能通过直接引用类 ID 来创建该对象。
注意 <registration> 元素中的注册信息顺序可以任意。
在创建脚本部件之后,即可以使用 Regsvr32.exe 之类的程序来注册该脚本部件。这些程序读取 <registration> 元素中的信息,并将其写入计算机的 Windows 注册表。例如,可以用这种方式来注册一个脚本部件:
regsvr32 file:\\myserver\MyComponent.wsc
注意 并不是所有情况都必须要 <registration> 元素。例如,如果脚本部件实现的是 Microsoft® Internet Explorer 5.0 中的 DHTML Behavior 接口处理程序,则不需要注册,因为 Internet Explorer 将记录在页面上检测到的操作。关于注册要求的详细信息,请参阅所实现的接口处理程序的文档,并且还要注意在哪种主机上使用该脚本部件。
如果没有包括类 ID 信息,注册程序将在注册脚本部件时为其指定一个类 ID。不过,这样在每个注册地该脚本部件将获得一个不同的类 ID。建议您自己为脚本部件提供一个类 ID,确保在所有注册该脚本部件的计算机上具有相同的类 ID。
如果与该脚本部件一起使用的开发工具要存储类 ID,则让注册程序创建类 ID 会产生问题。如果注册过程每次创建一个新的类 ID,就会与该应用程序所存储的 ID 不一致。
当注册脚本部件或取消注册时可以运行脚本。要做到这一点,只需在 <registration> 元素内包括一个 <script> 元素。要在注册起见运行脚本,就编写一个 register( ) 函数。要在注消脚本部件后运行脚本,就包括一个 unregister( ) 函数。
下面演示了一个典型的 <registration> 元素,其中同时包括了程序 ID 和类 ID。
<registration progid="Component.TestScript" classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}" description="My Test Component" version="1"/>
下面的 registration 元素允许通过 DCOM 来实例化该脚本部件:
<registration> progid="Component.TestScript" classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}" version="1" description="My Test Component" remotable=true/>
下面的示例演示了一个包括脚本的 <registration> 元素,在注册该脚本部件或取消注册时将执行这些脚本。
注意 CDATA 项是必需的,以使 <script> 元素中的脚本成为不透明的。详细信息请参阅脚本部件文件和 XML 一致性。
<registration progid="Component.TestScript" classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"> version="1" description="My Test Component"> <script language="VBScript"> Function register() MsgBox "Component 'My Test Component' registered." End Function Function unregister() MsgBox "Component 'My Test Component' unregistered." End Function </script> ]]> </registration>