The NS_InitXPCOM2 function initiates use of XPCOM in the calling process.
#include "nsXPCOM.h" nsresult NS_InitXPCOM2( nsIServiceManager** aResult, nsIFile* aBinDirectory, nsIDirectoryServiceProvider* aAppFileLocationProvider );
NS_GetServiceManager. The resulting interface pointer is AddRef'd upon return and must either be Release'd explicitly or passed to NS_ShutdownXPCOM when the application is finished with XPCOM.
nsnull.
The NS_InitXPCOM2 function returns NS_OK if successful. Otherwise, it returns an error code. Some of the possible errors are documented below:
NS_ShutdownXPCOM has been called.
You must call NS_InitXPCOM2 (or NS_InitXPCOM3) before proceeding to use XPCOM in a process. The one exception is that you may call NS_NewLocalFile or NS_NewNativeLocalFile to create a nsIFile needed for the aBinDirectory parameter to NS_InitXPCOM2. Many of the XPCOM glue functions and classes are also available prior to XPCOM initialization, including for example nsEmbedCString and nsCOMPtr.
This function was finalized for Mozilla 0.9.6. See bug 999147 for details.