Visit Mozilla.org

Components.interfaces

From MDC


Components.interfaces is a read-only object whose properties are interfaces indexed by their names.

Contents

[edit] Introduction

Components.interfaces is a read-only object whose properties implement the nsIJSIID interface. Each object represents one of the XPCOM interfaces -- that some component or another might or might not implement. It reflects only those interfaces which have been designated in their .idl description as [scriptable], i.e. the interfaces which XPConnect is capable of reflecting into JavaScript.

Properties of the Components.interfaces object are used where XPCOM methods expect a parameter of type nsID. This includes nsISupports::QueryInterface, the optional parameter accepted by nsICID::getService, nsICID::createInstance when called from JavaScript, and nsIClassInfo::getInterfaces.

The properties of the Components.interfaces object can be enumerated using a for...in loop.

[edit] Usage

[edit] Accessing an interface object

Properties of the Components.interfaces object are indexed by interface name. You can retrieve an interface object using:

var iface = Components.interfaces.nsISupportsArray;

This will return you the interface object for the nsISupportsArray interface.

[edit] Accessing constants defined in an interface

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;