Backed out the nsService template stuff.

git-svn-id: svn://10.0.0.236/trunk@23320 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
warren%netscape.com
1999-03-09 11:49:41 +00:00
parent 345056e941
commit e082c74dc0
19 changed files with 448 additions and 138 deletions

View File

@@ -148,7 +148,7 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports * aServMgr,
*aFactory = nsnull;
nsresult rv = aServMgr->QueryInterface(nsIComponentManager::IID(), (void**)&gCompMgr);
nsresult rv = aServMgr->QueryInterface(nsIComponentManager::GetIID(), (void**)&gCompMgr);
if (NS_FAILED(rv)) return rv;
if (aClass.Equals(kEditorCID)) {
@@ -177,31 +177,52 @@ extern "C" NS_EXPORT nsresult
NSRegisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kEditorCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kTextEditorCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kHTMLEditorCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
return result;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult
NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kIEditFactoryIID, path);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kITextEditFactoryIID, path);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kIHTMLEditFactoryIID, path);
return result;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
//END EXPORTS

View File

@@ -148,7 +148,7 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports * aServMgr,
*aFactory = nsnull;
nsresult rv = aServMgr->QueryInterface(nsIComponentManager::IID(), (void**)&gCompMgr);
nsresult rv = aServMgr->QueryInterface(nsIComponentManager::GetIID(), (void**)&gCompMgr);
if (NS_FAILED(rv)) return rv;
if (aClass.Equals(kEditorCID)) {
@@ -177,31 +177,52 @@ extern "C" NS_EXPORT nsresult
NSRegisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kEditorCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kTextEditorCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kHTMLEditorCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
return result;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult
NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kIEditFactoryIID, path);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kITextEditFactoryIID, path);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kIHTMLEditFactoryIID, path);
return result;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
//END EXPORTS

View File

@@ -24,6 +24,7 @@
#include "nsTransactionManagerCID.h"
#include "nsTransactionManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
@@ -138,21 +139,39 @@ extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char *
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->RegisterComponent(kCTransactionManagerFactoryCID,
NULL, NULL, path,
PR_TRUE, PR_TRUE);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kCTransactionManagerFactoryCID,
NULL, NULL, path,
PR_TRUE, PR_TRUE);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->UnregisterFactory(kCTransactionManagerFactoryCID, path);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kCTransactionManagerFactoryCID, path);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -107,7 +107,14 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports* serviceMgr,
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
//
@@ -115,50 +122,61 @@ extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char *
//
rv = compMgr->RegisterComponent(kLocaleFactoryCID,NULL,NULL,path,PR_TRUE,PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: RegisterFactory failed.");
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
//
// register the collation factory
//
rv = compMgr->RegisterComponent(kCollationFactoryCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: Register CollationFactory failed.");
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
//
// register the collation interface
//
rv = compMgr->RegisterComponent(kCollationCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: Register Collation failed.");
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
//
// register the date time formatter
//
rv = compMgr->RegisterComponent(kDateTimeFormatCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: Register DateTimeFormat failed.");
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
return NS_OK;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kLocaleFactoryCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
rv = compMgr->UnregisterFactory(kCollationFactoryCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
rv = compMgr->UnregisterFactory(kCollationCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
rv = compMgr->UnregisterFactory(kDateTimeFormatCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
return NS_OK;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -31,6 +31,7 @@
#include "nsCollationCID.h"
#include "nsLocaleSO.h"
#include "nsIServiceManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);

View File

@@ -121,7 +121,14 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports* serviceMgr,
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
//
@@ -129,59 +136,70 @@ extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char *
//
rv = compMgr->RegisterComponent(kLocaleFactoryCID,NULL,NULL,path,PR_TRUE,PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: RegisterFactory failed.");
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
//
// register the windows specific factory
//
rv = compMgr->RegisterComponent(kWin32LocaleFactoryCID,NULL,NULL,path,PR_TRUE,PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: Register nsIWin32LocaleFactory failed.");
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
//
// register the collation factory
//
rv = compMgr->RegisterComponent(kCollationFactoryCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: Register CollationFactory failed.");
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
//
// register the collation interface
//
rv = compMgr->RegisterComponent(kCollationCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: Register Collation failed.");
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
//
// register the date time formatter
//
rv = compMgr->RegisterComponent(kDateTimeFormatCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
NS_ASSERTION(rv==NS_OK,"nsLocaleTest: Register DateTimeFormat failed.");
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
return NS_OK;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kLocaleFactoryCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
rv = compMgr->UnregisterFactory(kWin32LocaleFactoryCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
rv = compMgr->UnregisterFactory(kCollationFactoryCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
rv = compMgr->UnregisterFactory(kCollationCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
rv = compMgr->UnregisterFactory(kDateTimeFormatCID, path);
if (rv!=NS_OK) return rv;
if (rv!=NS_OK) goto done;
return NS_OK;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -110,18 +110,38 @@ extern "C" NS_EXPORT PRBool NSCanUnload(nsISupports* aServMgr) {
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->RegisterComponent(kLWBrkCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kLWBrkCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->UnregisterFactory(kLWBrkCID, path);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kLWBrkCID, path);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -221,15 +221,22 @@ extern "C" NS_EXPORT nsresult
NSRegisterSelf(nsISupports* aServMgr, const char* path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kStringBundleServiceCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) {
return rv;
}
if (NS_FAILED(rv)) goto done;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
@@ -237,14 +244,21 @@ extern "C" NS_EXPORT nsresult
NSUnregisterSelf(nsISupports* aServMgr, const char* path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kStringBundleServiceCID, path);
if (NS_FAILED(rv)) {
return rv;
}
if (NS_FAILED(rv)) goto done;
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -109,41 +109,61 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports* aServMgr,
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kUnicodeEncodeHelperCID, NULL, NULL,
path, PR_TRUE, PR_TRUE);
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) return rv;
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) goto done;
rv = compMgr->RegisterComponent(kCharsetAliasCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) return rv;
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) goto done;
rv = compMgr->RegisterComponent(kCharsetConverterManagerCID, NULL, NULL,
path, PR_TRUE, PR_TRUE);
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) return rv;
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) goto done;
rv = compMgr->RegisterComponent(kPlatformCharsetCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kUnicodeEncodeHelperCID, path);
if(NS_FAILED(rv)) return rv;
if(NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kCharsetAliasCID, path);
if(NS_FAILED(rv)) return rv;
if(NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kCharsetConverterManagerCID, path);
if(NS_FAILED(rv)) return rv;
if(NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kPlatformCharsetCID, path);
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -150,29 +150,47 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports* aServMgr,
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
rv = compMgr->RegisterComponent(*(g_FactoryData[i].mCID), NULL, NULL,
path, PR_TRUE, PR_TRUE);
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) return rv;
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) goto done;
}
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
rv = compMgr->UnregisterFactory(*(g_FactoryData[i].mCID), path);
if(NS_FAILED(rv)) return rv;
if(NS_FAILED(rv)) goto done;
}
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -169,7 +169,14 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports* aServMgr,
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
@@ -178,13 +185,22 @@ extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char *
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) return rv;
}
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
@@ -192,6 +208,8 @@ extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char
if(NS_FAILED(rv)) return rv;
}
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -173,29 +173,47 @@ extern "C" NS_EXPORT nsresult NSGetFactory(nsISupports* aServMgr,
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
rv = compMgr->RegisterComponent(*(g_FactoryData[i].mCID), NULL, NULL,
path, PR_TRUE, PR_TRUE);
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) return rv;
if(NS_FAILED(rv) && (NS_ERROR_FACTORY_EXISTS != rv)) goto done;
}
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char * path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
rv = compMgr->UnregisterFactory(*(g_FactoryData[i].mCID), path);
if(NS_FAILED(rv)) return rv;
if(NS_FAILED(rv)) goto done;
}
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -25,6 +25,7 @@
#include "nsICaseConversion.h"
#include "nsCaseConversionImp2.h"
#include "nsIServiceManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
@@ -111,18 +112,38 @@ extern "C" NS_EXPORT PRBool NSCanUnload(nsISupports* aServMgr) {
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->RegisterComponent(kUnicharUtilCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kUnicharUtilCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->UnregisterFactory(kUnicharUtilCID, path);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kUnicharUtilCID, path);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -27,6 +27,7 @@
#include "nsIStreamListener.h"
#endif
#include "nsIServiceManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
@@ -616,19 +617,39 @@ extern "C" NS_EXPORT PRBool NSCanUnload(nsISupports* serviceMgr)
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->RegisterComponent(kPrefCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kPrefCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->UnregisterFactory(kPrefCID, path);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kPrefCID, path);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -39,6 +39,7 @@
#include "rdf.h"
#include "nsIXULSortService.h"
#include "nsIServiceManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
@@ -271,7 +272,14 @@ extern "C" PR_IMPLEMENT(nsresult)
NSRegisterSelf(nsISupports* aServMgr , const char* aPath)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
// register our build-in datasources:
@@ -279,95 +287,97 @@ NSRegisterSelf(nsISupports* aServMgr , const char* aPath)
"Bookmarks",
NS_RDF_DATASOURCE_PROGID_PREFIX "bookmarks",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFCompositeDataSourceCID,
"RDF Composite Data Source",
NS_RDF_DATASOURCE_PROGID_PREFIX "composite-datasource",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFFileSystemDataSourceCID,
"RDF File System Data Source",
NS_RDF_DATASOURCE_PROGID_PREFIX "files",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFHistoryDataSourceCID,
"RDF History Data Source",
NS_RDF_DATASOURCE_PROGID_PREFIX "history",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFInMemoryDataSourceCID,
"RDF In-Memory Data Source",
NS_RDF_DATASOURCE_PROGID_PREFIX "in-memory-datasource",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFXMLDataSourceCID,
"RDF XML Data Source",
NS_RDF_DATASOURCE_PROGID_PREFIX "xml-datasource",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kXULDataSourceCID,
"XUL Data Source",
NS_RDF_DATASOURCE_PROGID_PREFIX "xul-datasource",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
// register our built-in resource factories:
rv = compMgr->RegisterComponent(kRDFDefaultResourceCID,
"RDF Default Resource Factory",
NS_RDF_RESOURCE_FACTORY_PROGID, // default resource factory has no name= part
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
// register all the other rdf components:
rv = compMgr->RegisterComponent(kRDFContentSinkCID,
"RDF Content Sink",
NS_RDF_PROGID "|content-sink",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFHTMLBuilderCID,
"RDF HTML Builder",
NS_RDF_PROGID "|html-builder",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFServiceCID,
"RDF Service",
NS_RDF_PROGID "|rdf-service",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kXULSortServiceCID,
"XUL Sort Service",
NS_RDF_PROGID "|xul-sort-service",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFTreeBuilderCID,
"RDF Tree Builder",
NS_RDF_PROGID "|tree-builder",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFMenuBuilderCID,
"RDF Menu Builder",
NS_RDF_PROGID "|menu-builder",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFToolbarBuilderCID,
"RDF Toolbar Builder",
NS_RDF_PROGID "|toolbar-builder",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kRDFXULBuilderCID,
"RDF XUL Builder",
NS_RDF_PROGID "|xul-builder",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kXULContentSinkCID,
"XUL Content Sink",
NS_RDF_PROGID "|xul-content-sink",
aPath, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kXULDocumentCID,
"XUL Document",
NS_RDF_PROGID "|xul-document",
aPath, PR_TRUE, PR_TRUE);
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
@@ -376,46 +386,56 @@ extern "C" PR_IMPLEMENT(nsresult)
NSUnregisterSelf(nsISupports* aServMgr, const char* aPath)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterComponent(kRDFBookmarkDataSourceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFFileSystemDataSourceCID,aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFHistoryDataSourceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFCompositeDataSourceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFInMemoryDataSourceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFXMLDataSourceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kXULDataSourceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFDefaultResourceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFContentSinkCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFHTMLBuilderCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFServiceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kXULSortServiceCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFTreeBuilderCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFMenuBuilderCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFToolbarBuilderCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kRDFXULBuilderCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kXULContentSinkCID, aPath);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterComponent(kXULDocumentCID, aPath);
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -59,6 +59,7 @@
#include "nsIBrowserWindow.h"
#include "nsIWebShell.h"
#include "nsIServiceManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
@@ -1436,7 +1437,14 @@ extern "C" NS_EXPORT nsresult
NSRegisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
#ifdef NS_DEBUG
@@ -1444,8 +1452,11 @@ NSRegisterSelf(nsISupports* aServMgr, const char *path)
#endif
rv = compMgr->RegisterComponent(kSilentDownloadCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->RegisterComponent(kSilentDownloadTaskCID, NULL, NULL, path, PR_TRUE, PR_TRUE);
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
@@ -1453,7 +1464,14 @@ extern "C" NS_EXPORT nsresult
NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
#ifdef NS_DEBUG
@@ -1461,8 +1479,11 @@ NSUnregisterSelf(nsISupports* aServMgr, const char *path)
#endif
rv = compMgr->UnregisterFactory(kSilentDownloadCID, path);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
rv = compMgr->UnregisterFactory(kSilentDownloadTaskCID, path);
done:
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}

View File

@@ -133,7 +133,7 @@ public:
//
// and the automatic destructor will take care of releasing the service.
#if 0
#ifdef XP_WIN
template<class T> class nsService {
protected:

View File

@@ -133,7 +133,7 @@ public:
//
// and the automatic destructor will take care of releasing the service.
#if 0
#ifdef XP_WIN
template<class T> class nsService {
protected:

View File

@@ -23,6 +23,7 @@
#include "nsISupports.h"
#include "nsIComponentManager.h"
#include "nsIServiceManager.h"
#include "nsCOMPtr.h"
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
@@ -136,18 +137,38 @@ extern "C" NS_EXPORT PRBool NSCanUnload(nsISupports* aServMgr) {
extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr , const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->RegisterComponent(kTestLoadedFactoryCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->RegisterComponent(kTestLoadedFactoryCID, NULL, NULL, path,
PR_TRUE, PR_TRUE);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}
extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char *path)
{
nsresult rv;
nsService<nsIComponentManager> compMgr(aServMgr, kComponentManagerCID, &rv);
nsCOMPtr<nsIServiceManager> servMgr(do_QueryInterface(aServMgr, &rv));
if (NS_FAILED(rv)) return rv;
return compMgr->UnregisterFactory(kTestLoadedFactoryCID, path);
nsIComponentManager* compMgr;
rv = servMgr->GetService(kComponentManagerCID,
nsIComponentManager::GetIID(),
(nsISupports**)&compMgr);
if (NS_FAILED(rv)) return rv;
rv = compMgr->UnregisterFactory(kTestLoadedFactoryCID, path);
(void)servMgr->ReleaseService(kComponentManagerCID, compMgr);
return rv;
}