nsIFactory

IID:00000001-0000-0000-c000-000000000046
Inherits From:nsISupports
Status:FROZEN

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

This interface is implemented by the following components:


Methods

void createInstance ( nsISupports outer , nsIIDRef iid , retval nsQIResult* result ) void lockFactory ( PRBool lock )

void createInstance ( nsISupports outer , nsIIDRef iid , retval nsQIResult* result )

Creates an instance of a component.

Arguments:
outer: Pointer to a component that wishes to be aggregated in the resulting instance. This will be nsnull if no aggregation is requested.
iid: The 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.

void lockFactory ( PRBool lock )

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.

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

References

This interface is passed as an argument to the following methods:

nsIComponentManagerObsolete.registerFactory, nsIComponentManagerObsolete.unregisterFactory, nsIComponentRegistrar.registerFactory, nsIComponentRegistrar.unregisterFactory

This interface is returned from the following methods:

nsIComponentLoader.getFactory, nsIComponentManagerObsolete.findFactory

Reference documentation is generated from Mozilla's source.

Add a note User Contributed Notes
No comments available

Copyright © 1999 - 2005 XULPlanet.com