定義用來(lái)將腳本部件注冊(cè)為 COM 部件的信息。
<registration progid="progID" classid="GUID" description="description" version="version" [remotable=remoteFlag]/>
或者
<registration progid="progID" classid="GUID" description="description" version="version" [remotable=remoteFlag]> <script> (注冊(cè)腳本或取消注冊(cè)的腳本) </script> </registration>
Set Component = CreateObject("Component.MyComponent")
注意 盡管 progid 屬性是可選的,但必須包括 progid 和 classid 屬性兩者之一(可以兩個(gè)都包括)。如果只指定 progid 屬性,將自動(dòng)生成類 ID。如果只創(chuàng)建了類 ID,則不會(huì)注冊(cè) progid,且只能通過(guò)直接引用類 ID 來(lái)創(chuàng)建該對(duì)象。
注意 <registration> 元素中的注冊(cè)信息順序可以任意。
在創(chuàng)建腳本部件之后,即可以使用 Regsvr32.exe 之類的程序來(lái)注冊(cè)該腳本部件。這些程序讀取 <registration> 元素中的信息,并將其寫入計(jì)算機(jī)的 Windows 注冊(cè)表。例如,可以用這種方式來(lái)注冊(cè)一個(gè)腳本部件:
regsvr32 file:\\myserver\MyComponent.wsc
注意 并不是所有情況都必須要 <registration> 元素。例如,如果腳本部件實(shí)現(xiàn)的是 Microsoft® Internet Explorer 5.0 中的 DHTML Behavior 接口處理程序,則不需要注冊(cè),因?yàn)?Internet Explorer 將記錄在頁(yè)面上檢測(cè)到的操作。關(guān)于注冊(cè)要求的詳細(xì)信息,請(qǐng)參閱所實(shí)現(xiàn)的接口處理程序的文檔,并且還要注意在哪種主機(jī)上使用該腳本部件。
如果沒(méi)有包括類 ID 信息,注冊(cè)程序?qū)⒃谧?cè)腳本部件時(shí)為其指定一個(gè)類 ID。不過(guò),這樣在每個(gè)注冊(cè)地該腳本部件將獲得一個(gè)不同的類 ID。建議您自己為腳本部件提供一個(gè)類 ID,確保在所有注冊(cè)該腳本部件的計(jì)算機(jī)上具有相同的類 ID。
如果與該腳本部件一起使用的開發(fā)工具要存儲(chǔ)類 ID,則讓注冊(cè)程序創(chuàng)建類 ID 會(huì)產(chǎn)生問(wèn)題。如果注冊(cè)過(guò)程每次創(chuàng)建一個(gè)新的類 ID,就會(huì)與該應(yīng)用程序所存儲(chǔ)的 ID 不一致。
當(dāng)注冊(cè)腳本部件或取消注冊(cè)時(shí)可以運(yùn)行腳本。要做到這一點(diǎn),只需在 <registration> 元素內(nèi)包括一個(gè) <script> 元素。要在注冊(cè)起見運(yùn)行腳本,就編寫一個(gè) register( ) 函數(shù)。要在注消腳本部件后運(yùn)行腳本,就包括一個(gè) unregister( ) 函數(shù)。
下面演示了一個(gè)典型的 <registration> 元素,其中同時(shí)包括了程序 ID 和類 ID。
<registration
progid="Component.TestScript"
classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"
description="My Test Component"
version="1"/>
下面的 registration 元素允許通過(guò) DCOM 來(lái)實(shí)例化該腳本部件:
<registration>
progid="Component.TestScript"
classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"
version="1"
description="My Test Component"
remotable=true/>
下面的示例演示了一個(gè)包括腳本的 <registration> 元素,在注冊(cè)該腳本部件或取消注冊(cè)時(shí)將執(zhí)行這些腳本。
注意 CDATA 項(xiàng)是必需的,以使 <script> 元素中的腳本成為不透明的。詳細(xì)信息請(qǐng)參閱腳本部件文件和 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>