diff --git a/mozilla/mailnews/base/build/nsMsgFactory.cpp b/mozilla/mailnews/base/build/nsMsgFactory.cpp index 738314b8829..3019be8fd20 100644 --- a/mozilla/mailnews/base/build/nsMsgFactory.cpp +++ b/mozilla/mailnews/base/build/nsMsgFactory.cpp @@ -336,9 +336,7 @@ extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char* path) { nsresult rv; - - nsCOMPtr servMgr(do_QueryInterface(aServMgr, &rv)); - if (NS_FAILED(rv)) return rv; + nsresult finalResult = NS_OK; NS_WITH_SERVICE(nsIComponentManager, compMgr, kComponentManagerCID, &rv); if (NS_FAILED(rv)) return rv; @@ -348,81 +346,96 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path) "Folder Event", nsnull, path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kCUrlListenerManagerCID, "UrlListenerManager", "component://netscape/messenger/urlListenerManager", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kCMessengerBootstrapCID, "Netscape Messenger Bootstrapper", "component://netscape/appshell/component/messenger", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kCMessengerCID, "Messenger DOM interaction object", "component://netscape/messenger", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kMsgAccountManagerCID, "Messenger Account Manager", "component://netscape/messenger/account-manager", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kMsgAccountCID, "Messenger User Account", "component://netscape/messenger/account", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kMsgIdentityCID, "Messenger User Identity", "component://netscape/messenger/identity", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kCMsgMailSessionCID, "Mail Session", "component://netscape/messenger/services/session", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; // register our RDF datasources: rv = compMgr->RegisterComponent(kMailNewsFolderDataSourceCID, "Mail/News Folder Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "mailnewsfolders", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; // register our RDF datasources: rv = compMgr->RegisterComponent(kMailNewsMessageDataSourceCID, "Mail/News Message Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "mailnewsmessages", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kCMessageViewDataSourceCID, "Mail/News Message View Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "mail-messageview", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kMsgAccountManagerDataSourceCID, "Mail/News Account Manager Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "msgaccountmanager", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kMsgAccountDataSourceCID, "Mail/News Account Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "msgaccounts", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kMsgIdentityDataSourceCID, "Mail/News Identity Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "msgidentities", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->RegisterComponent(kMsgServerDataSourceCID, "Mail/News Server Data Source", NS_RDF_DATASOURCE_PROGID_PREFIX "msgservers", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; #ifdef DEBUG_bienvenu printf("register filter service\n"); @@ -430,6 +443,7 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path) "Message Filter Service", "component://netscape/messenger/services/filters", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; #endif rv = compMgr->RegisterComponent(kMsgBiffManagerCID, @@ -437,46 +451,59 @@ NSRegisterSelf(nsISupports* aServMgr, const char* path) "component://netscape/messenger/biffManager", path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; #ifdef NS_DEBUG printf("mailnews registering from %s\n",path); #endif - return rv; + return finalResult; } extern "C" NS_EXPORT nsresult NSUnregisterSelf(nsISupports* aServMgr, const char* path) { - nsresult rv; - - nsCOMPtr servMgr(do_QueryInterface(aServMgr, &rv)); - if (NS_FAILED(rv)) return rv; + nsresult rv = NS_OK; + nsresult finalResult = NS_OK; NS_WITH_SERVICE(nsIComponentManager, compMgr, kComponentManagerCID, &rv); if (NS_FAILED(rv)) return rv; rv = compMgr->UnregisterComponent(kCUrlListenerManagerCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kCMessengerBootstrapCID, path); + if (NS_FAILED(rv)) finalResult = rv; + rv = compMgr->UnregisterComponent(kCMsgFolderEventCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kCMsgMailSessionCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kMailNewsFolderDataSourceCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kMailNewsMessageDataSourceCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kCMessageViewDataSourceCID, path); + if (NS_FAILED(rv)) finalResult = rv; // Account Manager RDF stuff rv = compMgr->UnregisterComponent(kMsgAccountManagerDataSourceCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kMsgAccountDataSourceCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kMsgIdentityDataSourceCID, path); + if (NS_FAILED(rv)) finalResult = rv; rv = compMgr->UnregisterComponent(kMsgServerDataSourceCID, path); + if (NS_FAILED(rv)) finalResult = rv; #ifdef DEBUG_bienvenu rv = compMgr->UnregisterComponent(kMsgFilterServiceCID, path); + if (NS_FAILED(rv)) finalResult = rv; #endif //Biff rv = compMgr->UnregisterComponent(kMsgBiffManagerCID, path); - return rv; + if (NS_FAILED(rv)) finalResult = rv; + return finalResult; } ////////////////////////////////////////////////////////////////////////////////