ほかのコンポーネントの参照
Windows®スクリプト コンポーネントには、スクリプト コンポーネントを作成するために必要な外部コンポーネントへの参照を含めることができます。次の外部コンポーネントを参照することができます。
- 追加の COM オブジェクト
- タイプ ライブラリ
- リソース (スクリプト コンポーネントのスクリプトに埋め込みたくない数と文字など)
追加の COM コンポーネントを参照する
スクリプト コンポーネントでは、必要に応じて、ほかの COM コンポーネントのインスタンスを作成します。次の 2 つの方法で作成できます。
スクリプト内 スクリプト内で直接ほかのオブジェクトのインスタンスを作成します。たとえば、Microsoft® Visual Basic® Scripting Edition (VBScript) では CreateObject 関数を使用し、JScript では新しい ActiveXObject オブジェクトを使用します。
<object> 要素を使用する HTML ページで使用する <OBJECT> タグに似た <object> 要素を使用します。<object> 要素を使用すると、どのスクリプトからでもグローバルにオブジェクトを使用することができ、スクリプト作成ツールを使用してステートメントを補完することができます。スクリプト コンポーネントのオブジェクトの要約とドキュメントを作成する便利な方法も提供されます。
メモ スクリプト コンポーネントの <object> 要素は、HTML ページの <OBJECT> タグに似ていますが、スクリプト コンポーネントにはユーザー インターフェイスがないので、<object> 要素の属性のリストは <OBJECT> タグよりも短くなります。
OBJECT 要素を作成するには
- <object> 要素を作成します。この要素は、<component> 要素の内側に記述しますが、<script> 要素など、その他の要素の外側に記述します。
次のコードは、スクリプト コンポーネント内でオブジェクトを定義する例です。
<object id="cnn" progid="ADODB.Connection"/>
外部タイプ ライブラリを参照する
多くのコンポーネントは、タイプ ライブラリをサポートします。タイプ ライブラリは、コンポーネントのクラスとそのメンバの完全なリストを提供します。コンポーネントのタイプ ライブラリを参照することにより、タイプ ライブラリに定義されている定数が使用できます。
タイプ ライブラリへの参照をインクルードするには
インクルードするタイプ ライブラリの位置と名前が指定されているスクリプト コンポーネントに、<reference> 要素を記述します。次に例を示します。
<reference object="ADODB.Connection.2.0"/>
リソースを参照する
<resource> 要素には、バージョンによって異なる情報、ほかの情報に変換される文字列、およびその他の値を含めることができます。
リソースを参照するには
スクリプト コンポーネントの内側で <public> 要素と <script> 要素の外側 (<implements> 要素がある場合は、さらにこの要素の外側) に、定義するリソースに対して 1 つの <resource> 要素を作成します。それぞれの要素には、一意の ID を指定します。次のコードは、2 つの <resource> 要素の例です。
メモ <resource> 要素の内容をパーサーに対して隠蔽するには、CDATA セクションが必要です。詳細については、「スクリプト コンポーネント ファイルと XML 適合性」を参照してください。
<component id="MyScriptlet"> <public> <method name="random" internalName="getRandomNumber"/> </public> <resource id="errNonNumeric"><![CDATA[Non-numeric value passed]]> </resource> <resource id="errOutOfRange"><![CDATA[Passed value is out of range ]]> </resource>
スクリプトでは、getResource 関数を呼び出して、スクリプト内にリソースのテキストまたは数値を含めます。次に例を示します。
メモ <script> 要素内のスクリプトをパーサーに対して隠蔽するには、CDATA セクションが必要です。詳細については、「スクリプト コンポーネント ファイルと XML 適合性」を参照してください。
<script language="VBScript"> <![CDATA[ Function getRandomNumber(upperBound) If IsNumeric(upperBound) Then getRandomNumber = Cint(upperBound * Rnd + 1) Else getRandomNumber=getResource("errNonNumeric") End If End Function ]]> </script>