Components.interfaces

Components.interfaces は、プロパティがそれらの名前によって索引付けされたクラスである、読み出し専用オブジェクトです。

はじめに

Components.interfaces は、nsIJSCID インターフェースを実装した読み出し専用オブジェクトです。それぞれのオブジェクトは、いくつかのコンポーネントが実装している (あるいは未実装の可能性もあります) XPCOM インターフェースのひとつを表します。


対応する .idl の宣言が [scriptable] として設計されたインターフェースのみを反映します。つまり、XPConnect が JavaScript へ反映することのできるインターフェースということです。

Components.interfaces オブジェクトのプロパティは、nsID nsID 型のパラメータを除いた XPCOM メソッドで利用されます。これには nsISupports::QueryInterfacensICID::getService が受け取る追加パラメータ、nsICID::createInstance (JavaScript から呼ばれた場合)、nsIClassInfo::getInterfaces が含まれます。

Components.interfaces オブジェクトのプロパティは for...in ループを使って列挙できます。

使い方

インターフェースオブジェクトへのアクセス

Components.interfaces オブジェクトのプロパティはインターフェース名で索引付けされます。インターフェースオブジェクトは以下のようにして取得できます。

var iface = Components.interfaces.nsISupportsArray;

この戻り値は nsISupportsArray インターフェースのインターフェースオブジェクトです。

インターフェースで定義されたコンスタントへのアクセス

Interface descriptions (cf. XPIDL) may not only contain method declarations, but also constants. For example, assume we have the following interface declaration:

interface nsIFoo : nsISupports {
  const PRUint32 MYFLAG = 5;
};

The constant MYFLAG can then be accessed using

var myFlag = Components.interfaces.nsIFoo.MYFLAG;

Document Tags and Contributors

Contributors to this page: Yoshino
最終更新者: Yoshino,