<implements> 要素
スクリプト コンポーネントに対して、追加の COM インターフェイス ハンドラを指定します。
<implements type="COMHandlerName" [id="internalName"] [default=fAssumed]>
ここにハンドラ固有の情報を記述します。
</implements>
値
COMHandlerName
参照するインターフェイス ハンドラの名前を指定します。通常、インターフェイス ハンドラは DLL として実装されます。DLL は、スクリプト コンポーネント用の運用環境で使用可能であり、登録されていることを確認する必要があります。オートメーション ハンドラや ASP ハンドラなど、ハンドラによってはスクリプト コンポーネント ランタイム (Scrobj.dll) に組み込まれているものもあります。使用できるインターフェイス ハンドラの例を、次に示します。インターフェイス ハンドラ 内容 実装方法 ASP スクリプト コンポーネントから、Microsoft Internet Information Server (IIS) の Active Server Pages (ASP) オブジェクト モデルにアクセスできるようにします。 Scrobj.dll に組み込まれています。 DHTML ビヘイビア Behavior スクリプト コンポーネントに使用してページと通信し、イベントを発生させたり、DHTML オブジェクト モデルにアクセスしたりできるようにします。 Scrobj.dll に組み込まれています。 internalName
省略可能です。スクリプト内でハンドラを参照するための名前を指定します。既定では、プロパティ、メソッド、イベント、およびスクリプトのほかのメンバを、グローバルな名前空間で使用できます。ただし、<implements> 要素どうしでメンバの名前が競合する場合は、次の例のように、メンバが属している <implements> 要素の ID を、メンバの名前の前に記述すると区別することができます。<implements type="Behavior" id="sctBehavior"> [...] </implements> [...] <script language="JScript"> // [...] sctBehavior.fireEvent("onResultChange",oEvent); </script>
fAssumed
省略可能です。スクリプト内では internalName で参照されることを示すブール型 (Boolean) のフラグです。この属性の既定値は真 (true) で、ハンドラが公開するオブジェクト モデルのメンバは、グローバルなスクリプト名前空間に追加されます。また、これらのメンバには、制限なくアクセスすることができます。この属性を指定する必要があるのは、特定の <implements> 要素のメンバを隠蔽するために偽 (false) に設定する場合だけです。
解説
インターフェイス ハンドラは、スクリプト コンポーネント ランタイムを拡張します。インターフェイス ハンドラは、特定の COM インターフェイスを実装しているコンパイル済みのコンポーネントで、一般的には C++ で記述されています。
スクリプト コンポーネントは、既定で COM オートメーション インターフェイス (具体的には IDispatchEx COM インターフェイス) を実装しています。オートメーション オブジェクトのプロパティ、メソッド、およびイベントは、スクリプト コンポーネントの <public> 要素で定義されます。オートメーション ハンドラは既定で実装されているので、<implements> 要素を使って実装する必要はありません。
<implements> 要素を含むことによって、スクリプト コンポーネントは追加の COM インターフェイスも実装できます。<implements> 要素の内部には、実装するインターフェイス固有の情報を指定します。それぞれのインターフェイス ハンドラには、異なった情報が必要です。たとえば、Behavior スクリプト コンポーネントでは、DHTML Behavior インターフェイスに固有の <attach> 要素と <layout> 要素を指定できます。
例
<implements type="Behavior">
<event name="onResultChange" />
</implements>