<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>

参照

スクリプト コンポーネントのしくみ | スクリプト コンポーネント ファイルの内容