developer.mozilla.org

XPCOM API Reference

This documentation describes the frozen interfaces and functions provided by the XPCOM library. It also details the helper classes and functions provided by the XPCOM glue library.

Frozen Components

These components may be accessed using the XPCOM Component Manager (or Service Manager).
nsDirectoryService
The XPCOM Directory Service.
nsObserverService
The XPCOM Observer Service.
nsScriptableInputStream
A component implementing nsIScriptableInputStream.

Frozen Functions

These functions are exported from the XPCOM shared library.

Core Functions

NS_InitXPCOM2
The NS_InitXPCOM2 function initiates use of the XPCOM library by a process.
NS_ShutdownXPCOM
The NS_ShutdownXPCOM function terminates use of the XPCOM library.
NS_GetComponentManager
The NS_GetComponentManager function returns a reference to the XPCOM component manager.
NS_GetComponentRegistrar
The NS_GetComponentRegistrar function returns a reference to the XPCOM component registrar.
NS_GetServiceManager
The NS_GetServiceManager function returns a reference to the XPCOM service manager.
NS_GetMemoryManager
The NS_GetMemoryManager function returns a reference to the XPCOM memory manager.
NS_NewLocalFile
The NS_NewLocalFile function creates an instance of nsILocalFile that provides a platform independent representation of a file path.
NS_NewNativeLocalFile
The NS_NewNativeLocalFile function creates an instance of nsILocalFile that provides a platform independent representation of a file path.

String Functions

NS_CStringContainerInit
The NS_CStringContainerInit function initializes a nsCStringContainer instance for use as a nsACString. This is a low-level API.
NS_CStringContainerFinish
The NS_CStringContainerFinish function releases any memory allocated by a nsCStringContainer instance. This is a low-level API.
NS_CStringGetData
The NS_CStringGetData function gives the caller access to the string's internal buffer. This is a low-level API.
NS_CStringSetData
The NS_CStringSetData function copies data into the string's internal buffer. This is a low-level API.
NS_CStringSetDataRange
The NS_CStringSetDataRange function copies data into a section of the string's internal buffer. This is a low-level API.
NS_CStringCopy
The NS_CStringCopy function copies the value from one nsACString instance to another. This is a low-level API.
NS_CStringAppendData
The NS_CStringAppendData function appends data to the existing value of a nsACString instance. This is a low-level API.
NS_CStringInsertData
The NS_CStringInsertData function appends data to the existing value of a nsACString instance. This is a low-level API.
NS_CStringCutData
The NS_CStringCutData function removes a section of the string's internal buffer. This is a low-level API.
NS_CStringCloneData
The NS_CStringCloneData function returns a null-terminated, heap allocated copy of the string's internal buffer.
NS_StringContainerInit
The NS_StringContainerInit function initializes a nsStringContainer instance for use as a nsAString. This is a low-level API.
NS_StringContainerFinish
The NS_StringContainerFinish function releases any memory allocated by a nsStringContainer instance. This is a low-level API.
NS_StringGetData
The NS_StringGetData function gives the caller access to the string's internal buffer. This is a low-level API.
NS_StringSetData
The NS_StringSetData function copies data into the string's internal buffer. This is a low-level API.
NS_StringSetDataRange
The NS_StringSetDataRange function copies data into a section of the string's internal buffer. This is a low-level API.
NS_StringCopy
The NS_StringCopy function copies the value from one nsAString instance to another. This is a low-level API.
NS_StringAppendData
The NS_StringAppendData function appends data to the existing value of a nsAString instance. This is a low-level API.
NS_StringInsertData
The NS_StringInsertData function appends data to the existing value of a nsACString instance. This is a low-level API.
NS_StringCutData
The NS_StringCutData function removes a section of the string's internal buffer. This is a low-level API.
NS_StringCloneData
The NS_StringCloneData function returns a null-terminated, heap allocated copy of the string's internal buffer.
NS_CStringToUTF16
The NS_CStringToUTF16 function converts the value of a nsACString instance to UTF-16 and stores the result in a nsAString instance.
NS_UTF16ToCString
The NS_UTF16ToCString function converts the value of a nsAString instance from UTF-16 to the specified multi-byte encoding and stores the result in a nsACString instance.

Frozen Interfaces

Core

nsICategoryManager
The nsICategoryManager interface provides access to a data structure that holds a list of name-value pairs called categories, where each value is a list of strings.
nsIClassInfo
The nsIClassInfo interface provides information about a specific implementation class.
nsIComponentManager
The nsIComponentManager interface provides methods to access factory objects and instantiate instances of classes.
nsIComponentRegistrar
The nsIComponentRegistrar interface provides methods to access and modify the XPCOM component registry.
nsIFactory
The nsIFactory interface allows for the creation of nsISupports derived classes without specifying a concrete class type.
nsIInterfaceRequestor
The nsIInterfaceRequestor interface defines a generic interface for requesting interfaces that a given object might provide access to.
nsIModule
The nsIModule interface must be implemented by each XPCOM component. It is the main entry point by which the system accesses an XPCOM component.
nsIMemory
The nsIMemory interface represents a generic memory allocator.
nsIObserver
The nsIObserver interface is a generic notification callback interface that is typically used in conjunction with nsIObserverService.
nsIObserverService
The nsIObserverService interface provides methods to add, remove, notify, and enumerate observers of various notifications.
nsIProgrammingLanguage
The nsIProgrammingLanguage interface provides an enumeration of programming language identifiers.
nsIProperties
The nsIProperties interface provides methods to access a map of named XPCOM object values.
nsIServiceManager
The nsIServiceManager manager interface provides a means to obtain global services in an application.
nsISimpleEnumerator
The nsISimpleEnumerator interface represents an enumeration of XPCOM objects and provides methods to access elements sequentially.
nsISupports
All XPCOM interfaces inherit the nsISupports interface.
nsISupportsWeakReference
The nsISupportsWeakReference interface is a factory interface, which produces appropriate instances of nsIWeakReference.
nsIWeakReference
The nsIWeakReference interface represents a proxy for an XPCOM object. It allows a consumer to hold an indirect, non-owning reference to an XPCOM object.

Files and Directories

nsIFile
The nsIFile interface represents a file or directory location in a platform-independent manner.
nsILocalFile
The nsILocalFile interface represents a file or directory location in a platform-independent manner that is accessible on the local filesystem. It extends nsIFile.
nsIDirectoryService
The nsIDirectoryService interface provides methods to initialize and configure a directory service instance.
nsIDirectoryServiceProvider
The nsIDirectoryServiceProvider interface is used by the Directory Service to get file locations.
nsIDirectoryServiceProvider2
The nsIDirectoryServiceProvider2 interface is used by the Directory Service to get an enumeration of file locations.

Streams

nsIInputStream
The nsIInputStream interface represents a readable data source.
nsIOutputStream
The nsIOutputStream interface represents a writable data sink.
nsIScriptableInputStream
The nsIScriptableInputStream interface provides scriptable access to a nsIInputStream instance.

Primitives

nsISupportsPrimitive
The nsISupportsPrimitive interface serves as a base interface for all of the nsISupports* family of interfaces.
nsISupportsPRBool
The nsISupportsPRBool interface provides scriptable access for boolean values.
nsISupportsChar
The nsISupportsChar interface provides scriptable access for single character values (often used to store an ASCII character).
nsISupportsPRInt16
The nsISupportsPRInt16 interface provides scriptable access for 16-bit signed integers. values.
nsISupportsPRInt32
The nsISupportsPRInt32 interface provides scriptable access for 32-bit signed integers.
nsISupportsPRInt64
The nsISupportsPRInt64 interface provides scriptable access for 64-bit signed integers.
nsISupportsPRUint16
The nsISupportsPRUint16 interface provides scriptable access for 16-bit unsigned integers.
nsISupportsPRUint32
The nsISupportsPRUint32 interface provides scriptable access for 32-bit unsigned integers.
nsISupportsPRUint64
The nsISupportsPRUint64 interface provides scriptable access for 64-bit unsigned integers.
nsISupportsPRUint8
The nsISupportsPRUint8 interface provides scriptable access for 8-bit unsigned integers.
nsISupportsDouble
The nsISupportsDouble interface provides scriptable access for double-precision floating-point values.
nsISupportsFloat
The nsISupportsFloat interface provides scriptable access for single-precision floating-point values.
nsISupportsPRTime
The nsISupportsPRTime interface provides scriptable access for PRTime values.
nsISupportsCString
The nsISupportsCString interface provides scriptable access for ASCII character strings.
nsISupportsString
The nsISupportsString interface provides scriptable access for Unicode character strings.
nsISupportsVoid
The nsISupportsVoid interface provides scriptable access for generic pointers. values.
nsISupportsID
The nsISupportsID interface provides scriptable access for boolean values.
nsISupportsInterfacePointer
The nsISupportsInterfacePointer interface provides scriptable access for XPCOM objects.

Glue Classes

These classes are provided to simplify the use of XPCOM from C++. They are not part of the frozen XPCOM API. When these classes are used by a component, it may be necessary to link the component against the XPCOM glue library.
nsCOMPtr
This utility class simplifies managing XPCOM interface references from C++ code.
nsACString
The nsACString abstract class represents a character string composed of single-byte storage units. This class is typically used to represent ASCII or UTF-8 character arrays.
nsAString
The nsAString abstract class represents a character string composed of double-byte storage units. This class is typically used to represent Unicode character arrays.
nsEmbedString
The nsEmbedString concrete class provides a way to construct a nsAString object that allocates null-terminated storage.
nsEmbedCString
The nsEmbedCString concrete class provides a way to construct a nsACString object that allocates null-terminated storage.
nsMemory
The nsMemory class provides static helper routines to manage memory. These routines allow easy access to XPCOM's global nsIMemory implementation without having to go through the service manager to get it.
nsSupportsWeakReference
Inherit from this C++ class to add canonical support for nsISupportsWeakReference.