定義用來將腳本部件注冊為 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。如果只創(chuàng)建了類 ID,則不會注冊 progid,且只能通過直接引用類 ID 來創(chuàng)建該對象。
注意 <registration> 元素中的注冊信息順序可以任意。
在創(chuàng)建腳本部件之后,即可以使用 Regsvr32.exe 之類的程序來注冊該腳本部件。這些程序讀取 <registration> 元素中的信息,并將其寫入計算機的 Windows 注冊表。例如,可以用這種方式來注冊一個腳本部件:
regsvr32 file:\\myserver\MyComponent.wsc
注意 并不是所有情況都必須要 <registration> 元素。例如,如果腳本部件實現(xiàn)的是 Microsoft® Internet Explorer 5.0 中的 DHTML Behavior 接口處理程序,則不需要注冊,因為 Internet Explorer 將記錄在頁面上檢測到的操作。關(guān)于注冊要求的詳細(xì)信息,請參閱所實現(xiàn)的接口處理程序的文檔,并且還要注意在哪種主機上使用該腳本部件。
如果沒有包括類 ID 信息,注冊程序?qū)⒃谧阅_本部件時為其指定一個類 ID。不過,這樣在每個注冊地該腳本部件將獲得一個不同的類 ID。建議您自己為腳本部件提供一個類 ID,確保在所有注冊該腳本部件的計算機上具有相同的類 ID。
如果與該腳本部件一起使用的開發(fā)工具要存儲類 ID,則讓注冊程序創(chuàng)建類 ID 會產(chǎn)生問題。如果注冊過程每次創(chuàng)建一個新的類 ID,就會與該應(yīng)用程序所存儲的 ID 不一致。
當(dāng)注冊腳本部件或取消注冊時可以運行腳本。要做到這一點,只需在 <registration> 元素內(nèi)包括一個 <script> 元素。要在注冊起見運行腳本,就編寫一個 register( ) 函數(shù)。要在注消腳本部件后運行腳本,就包括一個 unregister( ) 函數(shù)。
下面演示了一個典型的 <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> 元素,在注冊該腳本部件或取消注冊時將執(zhí)行這些腳本。
注意 CDATA 項是必需的,以使 <script> 元素中的腳本成為不透明的。詳細(xì)信息請參閱腳本部件文件和 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>