スクリプト コンポーネント ファイルの内容
Windows®スクリプト コンポーネント ファイルは、HTML ファイルによく似た XML (Extensible Markup Language) であり、スクリプト コンポーネントとそのビヘイビアを定義する特別な要素を記述します。スクリプト コンポーネントの定義に使用される要素は HTML タグではなく、スクリプト コンポーネント用の特別な XML 要素です。
基本的なスクリプト コンポーネント ファイルには、次の要素が含まれます。
<component> および <package> 要素 <component> 要素には、1 つの完全なスクリプト コンポーネントの定義を記述します。同じ .wsc ファイル内に何度も <component> 要素を記述することができ、これらはマスタ <package> 要素に記述します。
<registration> 要素 スクリプト コンポーネントを COM コンポーネントとして登録する情報を記述します。スクリプト コンポーネントのインスタンスを作成するときに、ホスト アプリケーション (Microsoft® Internet Explorer 5.0 など) が Windows レジストリを直接使用しない場合、この要素は必要ないことがあります。
<public> 要素 スクリプト コンポーネントが公開するプロパティ、メソッド、およびイベントの定義を記述します。これらの定義は、別の <script> ブロック内で定義された変数または関数をポイントします。
<implements> 要素 スクリプト コンポーネントがどの種類の COM コンポーネントとして機能するかを決定する、スクリプト コンポーネントの COM インターフェイス ハンドラを指定します。たとえば、<implements type=ASP> を指定して ASP インターフェイス ハンドラを実装すると、スクリプト コンポーネント内の ASP オブジェクト モデルにアクセスできるようになります。
<public> 要素は、スクリプト コンポーネントが COM オートメーション インターフェイス ハンドラを実装していることを示すために使用されます。このため、オートメーション ハンドラ用の <implements> 要素を作成する必要はありません。
メモ スクリプト コンポーネント ランタイムには、オートメーション用、ASP 用、および Internet Explorer 5.0 DHTML Behavior 用のインターフェイス ハンドラがあります (オートメーション インターフェイス ハンドラは、<public> 要素を使用して公開します)。その他のインターフェイス ハンドラは、外部 DLL として使用できます。追加のインターフェイス ハンドラとスクリプト コンポーネントの詳細については、Microsoft Scripting Technologies Web サイトを参照してください。
<script> 要素 作成する COM コンポーネントの種類に応じて、スクリプト コンポーネントのロジックを実装するスクリプトを記述します。たとえば、COM オートメーション コンポーネントを作成する場合、<public> 要素でプロパティ、メソッド、およびイベントを宣言し、1 つ以上の <script> 要素にスクリプトを記述して定義します。
<object> 要素 ほかの COM コンポーネントなど、スクリプトで使用するオブジェクトについての情報を記述します。
<resource> 要素 スクリプト コンポーネントのコードに埋め込まない方がよい値を記述します。<resource> 要素には、バージョンによって異なる情報、ほかの情報に変換される文字列、およびその他の値を含めることができます。
<reference> 要素 スクリプトで参照するタイプ ライブラリを記述します。
<comment> 要素 スクリプト コンポーネントが解析され、実行されるときに無視される文字列を記述します。
メモ 作成した .wsc ファイル内に XML 標準に従った XML が含まれている場合、スクリプト コンポーネントの XML パーサーで XML 構文をチェックするよう指定することができます。たとえば、将来 XML エディタを使用してファイルを編集する場合は、この指定が有用です。それ以外の場合は、通常、有用ではありません。詳細については、「スクリプト コンポーネント ファイルと XML 適合性」を参照してください。
スクリプト コンポーネント ファイルのひな型
次のコードは、スクリプト コンポーネント ファイルを構成する例です。
<?XML version="1.0"?>
<package>
<?component error="true" debug="true"?>
<comment>
このひな型は、スクリプト コンポーネントの要素が wsc ファイルに
どのように組み込まれるかを示しています。
</comment>
<component id="MyScriptlet">
<registration
progid="progID"
description="description"
version="version"
clsid="{00000000-0000-0000-000000000000}"/>
<reference object="progID">
<public>
<property name="propertyname"/>
<method name="methodname"/>
<event name="eventname"/>
</public>
<implements type=COMhandlerName id=internalName>
(interface-specific definitions here)
</implements>
<script language="VBScript">
<![CDATA[
dim propertyname
Function methodname()
' ここにスクリプトを記述します。
End Function
]]>
</script>
<script language="JScript">
<![CDATA[
function get_propertyname()
{ // ここにスクリプトを記述します。
}
function put_propertyname(newValue)
{ // ここにスクリプトを記述します。
fireEvent(eventname)
}
]]>
</script>
<object id="objID" classid="clsid:00000000-0000-0000-000000000000">
<resource ID="resourceID1">string or number here</resource>
<resource ID="resourceID2">string or number here</resource>
</component>
</package>
メモ XML では、前の例の <property> および <method> 要素のように内容のない (属性のみの) 要素でも /> で閉じれば、要素として指定できます。
次のことに注意してください。
先頭の <?XML ?> 宣言は、このコードが XML ファイルであることと、XML プロトコルに従っていることを示します。この宣言は省略可能です。この宣言を記述しない場合は、スクリプト コンポーネントの要素を作成する際に制限の緩い構文を使用できます。詳細については、「スクリプト コンポーネント ファイルと XML 適合性」を参照してください。
ファイルには <component> 要素が 1 つしか含まれていないので、この例では <package> 要素が省略可能です。
<?component?> 処理命令には、エラー チェック オプションを指定する属性が含まれています。詳細については、「スクリプト コンポーネント ファイルのエラー チェック」を参照してください。この要素を記述しなければ、既定のオプションは、すべて偽 (false) になります。
<comment> 要素は、スクリプト コンポーネントのどの部分にも記述できます。
<registration> 要素は、記述する必要がない場合もあります。たとえば、Internet Explorer 5.0 では、ページ上でビヘイビアが検出されたとき、ビヘイビアのインスタンスを直接生成するので、DHTML Behavior インターフェイス ハンドラを実装しているスクリプト コンポーネントを登録する必要がありません。登録の詳細な要件については、実装しているインターフェイス ハンドラのドキュメントを参照してください。また、どのホストでスクリプト コンポーネントが使用されるかについても注意してください。
<reference> 要素を使用すると、スクリプト コンポーネントにタイプ ライブラリをインクルードできるので、スクリプト内でライブラリの定数を使用できます。
<public> 要素には、<property>、<method>、および <event> 要素があります。これらを定義するスクリプトは、スクリプト コンポーネント ファイルの後ろの部分にあります。
<implements> 要素は、既定ではない COM インターフェイスを使用できるようにします。たとえば、次に示す <implements> の type 属性を使って ASP インターフェイスを公開できます。
<implements type="ASP" id="iASP">
<implements> 要素の内部に記述する適切な要素は、実装しているインターフェイスの内容によって異なります。
メモ 前の例では、id 属性を付けて <implements> 要素を指定しています。この属性は省略可能ですが、オブジェクトまたは変数を厳密に定義する必要がある場合は指定します。詳細については、<implements> 要素を参照してください。
このひな型には、2 つのスクリプト要素があります。1 つは VBScript 用で、もう 1 つは JScript 用です。使用するスクリプト言語が 1 つの場合、2 つ以上の <script> 要素は必要ありません。ファイルの先頭に <?XML ?> が宣言されているので、CDATA セクションを使って、<script> 要素内のスクリプトを隠蔽する必要があります。詳細については、「スクリプト コンポーネント ファイルと XML 適合性」を参照してください。
<object> 要素は、スクリプト コンポーネント内のスクリプトで使用するオブジェクトへの参照を作成します。
ひな型を作成した後、実装するインターフェイス ハンドラの種類に応じて、スクリプト コンポーネントの機能を定義する要素の内部を埋めていきます。
参照
スクリプト コンポーネント ファイルのエラー チェック | スクリプト コンポーネント タイプ ライブラリの作成 | 登録情報の作成 | イベントの公開 | メソッドの公開 | プロパティの公開 | ASP スクリプト コンポーネントの実装 | DHTML Behavior スクリプト コンポーネントの実装 | スクリプト コンポーネント ファイルと XML 適合性 | Script Component Wizard の使用