Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions
nsIFactory Interface Reference

A class factory allows the creation of nsISupports derived components without specifying a concrete base class. More...

import "nsIFactory.idl";

Inheritance diagram for nsIFactory:
Inheritance graph
[legend]
Collaboration diagram for nsIFactory:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void createInstance (in nsISupports aOuter, in nsIIDRef iid,[retval, iid_is(iid)] out nsQIResult result)
 Creates an instance of a component.
void lockFactory (in PRBool lock)
 LockFactory provides the client a way to keep the component in memory until it is finished with it.

Detailed Description

A class factory allows the creation of nsISupports derived components without specifying a concrete base class.

FROZEN

Definition at line 48 of file nsIFactory.idl.


Member Function Documentation

void nsIFactory::createInstance ( in nsISupports  aOuter,
in nsIIDRef  iid,
[retval, iid_is(iid)] out nsQIResult  result 
)

Creates an instance of a component.

Parameters:
aOuterPointer to a component that wishes to be aggregated in the resulting instance. This will be nsnull if no aggregation is requested.
iidThe IID of the interface being requested in the component which is being currently created.
result[out] Pointer to the newly created instance, if successful.
Returns:
NS_OK - Component successfully created and the interface being requested was successfully returned in result. NS_NOINTERFACE - Interface not accessible. NS_ERROR_NO_AGGREGATION - if an 'outer' object is supplied, but the component is not aggregatable. NS_ERROR* - Method failure.

LockFactory provides the client a way to keep the component in memory until it is finished with it.

The client can call LockFactory(PR_TRUE) to lock the factory and LockFactory(PR_FALSE) to release the factory.

Parameters:
lock- Must be PR_TRUE or PR_FALSE
Returns:
NS_OK - If the lock operation was successful. NS_ERROR* - Method failure.

The documentation for this interface was generated from the following file: