Back to index

lightning-sunbird  0.9+nobinonly
nsMailModule.cpp
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is mozilla.org code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 1998
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *   Seth Spitzer <sspitzer@netscape.com>
00024  *   Scott MacGregor <mscott@netscape.com>
00025  *
00026  * Alternatively, the contents of this file may be used under the terms of
00027  * either of the GNU General Public License Version 2 or later (the "GPL"),
00028  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00029  * in which case the provisions of the GPL or the LGPL are applicable instead
00030  * of those above. If you wish to allow use of your version of this file only
00031  * under the terms of either the GPL or the LGPL, and not to allow others to
00032  * use your version of this file under the terms of the MPL, indicate your
00033  * decision by deleting the provisions above and replace them with the notice
00034  * and other provisions required by the GPL or the LGPL. If you do not delete
00035  * the provisions above, a recipient may use your version of this file under
00036  * the terms of any one of the MPL, the GPL or the LGPL.
00037  *
00038  * ***** END LICENSE BLOCK ***** */
00039 
00041 // Core Module Include Files
00043 
00044 #include "nsIFactory.h"
00045 #include "nsISupports.h"
00046 #include "nsIModule.h"
00047 #include "nsIGenericFactory.h"
00048 #include "pratom.h"
00049 #include "nsICategoryManager.h"
00050 #include "nsIComponentManager.h"
00051 #include "nsIServiceManager.h"
00052 #include "nsCRT.h"
00053 #include "nsCOMPtr.h"
00054 #include "msgCore.h"
00055 // #include "nsIRegistry.h"
00056 
00058 // mailnews base includes
00060 #include "nsMsgBaseCID.h"
00061 #include "rdf.h"
00062 #include "nsMessengerBootstrap.h"
00063 #include "nsMessenger.h"
00064 #include "nsMsgGroupRecord.h"
00065 #include "nsIContentViewer.h"
00066 #include "nsIUrlListenerManager.h"
00067 #include "nsUrlListenerManager.h"
00068 #include "nsMsgMailSession.h"
00069 #include "nsMsgAccount.h"
00070 #include "nsMsgAccountManager.h"
00071 #include "nsMessengerMigrator.h"
00072 #include "nsMsgIdentity.h"
00073 #include "nsMsgIncomingServer.h"
00074 #include "nsMsgFolderDataSource.h"
00075 #include "nsMsgAccountManagerDS.h"
00076 #include "nsMsgBiffManager.h"
00077 #include "nsMsgPurgeService.h"
00078 #include "nsStatusBarBiffManager.h"
00079 #include "nsCopyMessageStreamListener.h"
00080 #include "nsMsgCopyService.h"
00081 #include "nsMsgFolderCache.h"
00082 #include "nsMsgStatusFeedback.h"
00083 #include "nsMsgFilterService.h"
00084 #include "nsMsgFilterDataSource.h"
00085 #include "nsMsgFilterDelegateFactory.h"
00086 #include "nsMsgWindow.h"
00087 #include "nsMsgServiceProvider.h"
00088 #include "nsSubscribeDataSource.h"
00089 #include "nsSubscribableServer.h"
00090 #include "nsMsgPrintEngine.h"
00091 #include "nsMsgSearchSession.h"
00092 #include "nsMsgSearchTerm.h"
00093 #include "nsMsgSearchAdapter.h"
00094 #include "nsMsgFolderCompactor.h"
00095 #include "nsMsgThreadedDBView.h"
00096 #include "nsMsgSpecialViews.h"
00097 #include "nsMsgXFVirtualFolderDBView.h"
00098 #include "nsMsgQuickSearchDBView.h"
00099 #include "nsMsgGroupView.h"  
00100 #include "nsMsgOfflineManager.h"
00101 #include "nsMsgProgress.h"
00102 #include "nsSpamSettings.h"
00103 #include "nsMsgContentPolicy.h"
00104 #include "nsCidProtocolHandler.h"
00105 #include "nsRssIncomingServer.h"
00106 #include "nsRssService.h"
00107 #include "nsMsgTagService.h"
00108 #include "nsMsgFolderNotificationService.h"
00109 #include "nsMailDirProvider.h"
00110 
00111 #ifdef XP_WIN
00112 #include "nsMessengerWinIntegration.h"
00113 #endif
00114 #ifdef XP_OS2
00115 #include "nsMessengerOS2Integration.h"
00116 #endif
00117 #ifdef XP_MACOSX
00118 #include "nsMessengerOSXIntegration.h"
00119 #endif
00120 #if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2)
00121 #include "nsMessengerUnixIntegration.h"
00122 #endif
00123 #include "nsCURILoader.h"
00124 #include "nsMessengerContentHandler.h"
00125 
00127 // addrbook includes
00129 #include "nsAbBaseCID.h"
00130 #include "nsDirectoryDataSource.h"
00131 #include "nsAbBSDirectory.h"
00132 #include "nsAbMDBDirectory.h"
00133 #include "nsAbMDBCard.h"
00134 #include "nsAbDirFactoryService.h"
00135 #include "nsAbMDBDirFactory.h"
00136 #include "nsAddrDatabase.h"
00137 #include "nsAddressBook.h"
00138 #include "nsAddrBookSession.h"
00139 #include "nsAbDirProperty.h"
00140 #include "nsAbAutoCompleteSession.h"
00141 #include "nsAbAddressCollecter.h"
00142 #include "nsAddbookProtocolHandler.h"
00143 #include "nsAddbookUrl.h"
00144 
00145 #if defined(XP_WIN) && !defined(__MINGW32__)
00146 #include "nsAbOutlookDirectory.h"
00147 #include "nsAbOutlookCard.h"
00148 #include "nsAbOutlookDirFactory.h"
00149 #endif
00150 
00151 #include "nsAbDirectoryQuery.h"
00152 #include "nsAbBooleanExpression.h"
00153 #include "nsAbDirectoryQueryProxy.h"
00154 #include "nsAbView.h"
00155 #include "nsMsgVCardService.h"
00156 #include "nsAbLDIFService.h"
00157 
00158 #if defined(MOZ_LDAP_XPCOM)
00159 #include "nsAbLDAPDirectory.h"
00160 #include "nsAbLDAPCard.h"
00161 #include "nsAbLDAPDirFactory.h"
00162 #include "nsAbLDAPAutoCompFormatter.h"
00163 #include "nsAbLDAPReplicationService.h"
00164 #include "nsAbLDAPReplicationQuery.h"
00165 #include "nsAbLDAPReplicationData.h"
00166 #include "nsAbLDAPChangeLogQuery.h"
00167 #include "nsAbLDAPChangeLogData.h"
00168 #endif
00169 
00170 #ifdef XP_MACOSX
00171 #include "nsAbOSXDirectory.h"
00172 #include "nsAbOSXCard.h"
00173 #include "nsAbOSXDirFactory.h"
00174 #endif
00175 
00177 // bayesian spam filter includes
00179 #include "nsBayesianFilterCID.h"
00180 #include "nsBayesianFilter.h"
00181 
00183 // compose includes
00185 #include "nsMsgCompCID.h"
00186 
00187 #include "nsMsgSendLater.h"
00188 #include "nsSmtpUrl.h"
00189 #include "nsISmtpService.h"
00190 #include "nsSmtpService.h"
00191 #include "nsMsgComposeService.h"
00192 #include "nsMsgComposeContentHandler.h"
00193 #include "nsMsgCompose.h"
00194 #include "nsMsgComposeParams.h"
00195 #include "nsMsgComposeProgressParams.h"
00196 #include "nsMsgAttachment.h"
00197 #include "nsMsgSend.h"
00198 #include "nsMsgQuote.h"
00199 #include "nsURLFetcher.h"
00200 #include "nsSmtpServer.h"
00201 #include "nsSmtpDataSource.h"
00202 #include "nsSmtpDelegateFactory.h"
00203 #include "nsMsgRecipientArray.h"
00204 #include "nsMsgComposeStringBundle.h"
00205 #include "nsMsgCompUtils.h"
00206 
00208 // imap includes
00210 #include "nsMsgImapCID.h"
00211 #include "nsIMAPHostSessionList.h"
00212 #include "nsImapIncomingServer.h"
00213 #include "nsImapService.h"
00214 #include "nsImapMailFolder.h"
00215 #include "nsImapUrl.h"
00216 #include "nsImapProtocol.h"
00217 
00219 // local includes
00221 #include "nsMsgLocalCID.h"
00222 
00223 #include "nsMailboxUrl.h"
00224 #include "nsPop3URL.h"
00225 #include "nsMailboxService.h"
00226 #include "nsLocalMailFolder.h"
00227 #include "nsParseMailbox.h"
00228 #include "nsPop3Service.h"
00229 
00230 #ifdef HAVE_MOVEMAIL
00231 #include "nsMovemailService.h"
00232 #include "nsMovemailIncomingServer.h"
00233 #endif /* HAVE_MOVEMAIL */
00234 
00235 #include "nsNoneService.h"
00236 #include "nsPop3IncomingServer.h"
00237 #include "nsNoIncomingServer.h"
00238 #include "nsLocalStringBundle.h"
00239 
00241 // msgdb includes
00243 #include "nsMsgDBCID.h"
00244 #include "nsMailDatabase.h"
00245 #include "nsNewsDatabase.h"
00246 #include "nsImapMailDatabase.h"
00247 
00249 // mime includes
00251 #include "nsMsgMimeCID.h"
00252 #include "nsStreamConverter.h"
00253 #include "nsMimeObjectClassAccess.h"
00254 #include "nsMimeConverter.h"
00255 #include "nsMsgHeaderParser.h"
00256 #include "nsMimeHeaders.h"
00257 
00259 // mime emitter includes
00261 #include "nsMimeEmitterCID.h"
00262 #include "nsIMimeEmitter.h"
00263 #include "nsMimeHtmlEmitter.h"
00264 #include "nsMimeRawEmitter.h"
00265 #include "nsMimeXmlEmitter.h"
00266 #include "nsMimePlainEmitter.h"
00267 
00269 // news includes
00271 #include "nsMsgNewsCID.h"
00272 #include "nsNntpUrl.h"
00273 #include "nsNntpService.h"
00274 #include "nsNntpIncomingServer.h"
00275 #include "nsNNTPNewsgroupPost.h"
00276 #include "nsNNTPNewsgroupList.h"
00277 #include "nsNNTPArticleList.h"
00278 #include "nsNewsDownloadDialogArgs.h"
00279 #include "nsNewsFolder.h"
00280 
00282 // mail views includes
00284 #include "nsMsgMailViewsCID.h"
00285 #include "nsMsgMailViewList.h"
00286 
00288 // mdn includes
00290 #include "nsMsgMdnCID.h"
00291 #include "nsMsgMdnGenerator.h"
00292 
00294 // vcard includes
00296 #include "nsMimeContentTypeHandler.h"
00297 
00299 // mailnews base factories
00301 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMessengerBootstrap)
00302 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUrlListenerManager)
00303 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgMailSession, Init)
00304 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMessenger)
00305 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgAccountManager, Init)
00306 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMessengerMigrator, Init)
00307 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgAccount)
00308 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgIdentity)
00309 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgFolderDataSource, Init)
00310 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgUnreadFoldersDataSource, Init)
00311 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgFavoriteFoldersDataSource, Init)
00312 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgRecentFoldersDataSource, Init)
00313 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgAccountManagerDataSource, Init)
00314 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgSearchSession)
00315 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgSearchTerm)
00316 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgSearchValidityManager)
00317 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgFilterService)
00318 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgFilterDataSource)
00319 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgFilterDelegateFactory)
00320 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgBiffManager, Init)
00321 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgPurgeService)
00322 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStatusBarBiffManager, Init)
00323 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCopyMessageStreamListener)
00324 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgCopyService)
00325 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgFolderCache)
00326 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgStatusFeedback)
00327 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgWindow,Init)
00328 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgServiceProviderService, Init)
00329 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSubscribeDataSource, Init)
00330 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSubscribableServer, Init)
00331 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgPrintEngine)
00332 NS_GENERIC_FACTORY_CONSTRUCTOR(nsFolderCompactState)
00333 NS_GENERIC_FACTORY_CONSTRUCTOR(nsOfflineStoreCompactState)
00334 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgThreadedDBView)
00335 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgThreadsWithUnreadDBView)
00336 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgWatchedThreadsWithUnreadDBView)
00337 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgSearchDBView)
00338 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgXFVirtualFolderDBView)
00339 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgQuickSearchDBView)
00340 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgGroupView)
00341 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgOfflineManager)
00342 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgProgress)
00343 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSpamSettings)
00344 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgTagService)
00345 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgFolderNotificationService)
00346 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCidProtocolHandler)
00347 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMailDirProvider)
00348 #ifdef XP_WIN
00349 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMessengerWinIntegration, Init)
00350 #endif
00351 #ifdef XP_OS2
00352 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMessengerOS2Integration, Init)
00353 #endif
00354 #ifdef XP_MACOSX
00355 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMessengerOSXIntegration, Init)
00356 #endif
00357 #if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2)
00358 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMessengerUnixIntegration, Init)
00359 #endif
00360 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMessengerContentHandler)
00361 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgContentPolicy, Init)
00362 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgCookiePolicy)
00363 
00365 // addrbook factories
00367 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAddressBook)
00368 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAbDirectoryDataSource,Init)
00369 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbDirProperty)
00370 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbDirectoryProperties)
00371 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbCardProperty)
00372 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbBSDirectory)
00373 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbMDBDirectory)
00374 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbMDBCard)
00375 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAddrDatabase)
00376 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAddrBookSession)
00377 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbAutoCompleteSession)
00378 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAbAddressCollecter,Init)
00379 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAddbookUrl)
00380 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbDirFactoryService)
00381 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbMDBDirFactory)
00382 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAddbookProtocolHandler)
00383 
00384 #if defined(XP_WIN) && !defined(__MINGW32__)
00385 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbOutlookDirectory)
00386 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbOutlookCard)
00387 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbOutlookDirFactory)
00388 #endif
00389 
00390 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbDirectoryQueryArguments)
00391 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbBooleanConditionString)
00392 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbBooleanExpression)
00393 
00394 #if defined(MOZ_LDAP_XPCOM)
00395 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPDirectory)
00396 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPCard)
00397 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPDirFactory)
00398 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPAutoCompFormatter)
00399 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPReplicationService)
00400 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPReplicationQuery)
00401 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPProcessReplicationData)
00402 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPChangeLogQuery)
00403 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDAPProcessChangeLogData)
00404 #endif
00405 
00406 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbDirectoryQueryProxy)
00407 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbView)
00408 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgVCardService) 
00409 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbLDIFService)
00410 #if 0
00411 #ifdef XP_MACOSX
00412 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbOSXDirectory)
00413 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbOSXCard)
00414 NS_GENERIC_FACTORY_CONSTRUCTOR(nsAbOSXDirFactory)
00415 #endif
00416 #endif
00417 
00418 // bayesian spam filter factories
00420 NS_GENERIC_FACTORY_CONSTRUCTOR(nsBayesianFilter)
00421 
00422 
00423 // compose factories
00425 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSmtpService)
00426 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSmtpServer)
00427 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgCompose)
00428 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgComposeParams)
00429 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgComposeSendListener)
00430 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgComposeProgressParams)
00431 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgCompFields)
00432 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgAttachment)
00433 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgComposeAndSend)
00434 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgSendLater)
00435 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgComposeService, Init)
00436 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgComposeContentHandler)
00437 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgQuote)
00438 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgQuoteListener)
00439 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSmtpUrl)
00440 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMailtoUrl)
00441 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgRecipientArray)
00442 NS_GENERIC_FACTORY_CONSTRUCTOR(nsComposeStringService)
00443 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSmtpDataSource)
00444 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSmtpDelegateFactory)
00445 NS_GENERIC_FACTORY_CONSTRUCTOR(nsURLFetcher)
00446 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgCompUtils)
00447 
00449 // imap factories
00451 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsImapUrl, Initialize)
00452 NS_GENERIC_FACTORY_CONSTRUCTOR(nsImapProtocol)
00453 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsIMAPHostSessionList, Init)
00454 NS_GENERIC_FACTORY_CONSTRUCTOR(nsImapIncomingServer)
00455 NS_GENERIC_FACTORY_CONSTRUCTOR(nsImapService)
00456 NS_GENERIC_FACTORY_CONSTRUCTOR(nsImapMailFolder)
00457 NS_GENERIC_FACTORY_CONSTRUCTOR(nsImapMockChannel)
00458 
00460 // local factories
00462 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMailboxUrl)
00463 NS_GENERIC_FACTORY_CONSTRUCTOR(nsPop3URL)
00464 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgMailboxParser)
00465 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMailboxService)
00466 NS_GENERIC_FACTORY_CONSTRUCTOR(nsPop3Service)
00467 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoneService)
00468 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgLocalMailFolder)
00469 NS_GENERIC_FACTORY_CONSTRUCTOR(nsParseMailMessageState)
00470 NS_GENERIC_FACTORY_CONSTRUCTOR(nsPop3IncomingServer)
00471 NS_GENERIC_FACTORY_CONSTRUCTOR(nsRssIncomingServer)
00472 NS_GENERIC_FACTORY_CONSTRUCTOR(nsRssService)
00473 #ifdef HAVE_MOVEMAIL
00474 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMovemailIncomingServer)
00475 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMovemailService)
00476 #endif /* HAVE_MOVEMAIL */
00477 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNoIncomingServer)
00478 NS_GENERIC_FACTORY_CONSTRUCTOR(nsLocalStringService)
00479 
00481 // msgdb factories
00483 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgDBService)
00484 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMailDatabase)
00485 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNewsDatabase)
00486 NS_GENERIC_FACTORY_CONSTRUCTOR(nsImapMailDatabase)
00487 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgRetentionSettings)
00488 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgDownloadSettings)
00489 
00491 // mime factories
00493 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMimeObjectClassAccess)
00494 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMimeConverter)
00495 NS_GENERIC_FACTORY_CONSTRUCTOR(nsStreamConverter)
00496 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgHeaderParser)
00497 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMimeHeaders)
00498 
00500 // mime emitter factories
00502 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMimeRawEmitter)
00503 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMimeXmlEmitter)
00504 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMimePlainEmitter)
00505 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMimeHtmlDisplayEmitter, Init)
00506 
00507 static NS_METHOD RegisterMimeEmitter(nsIComponentManager *aCompMgr, nsIFile *aPath, const char *registryLocation, 
00508                                      const char *componentType, const nsModuleComponentInfo *info)
00509 {
00510   nsresult rv;
00511   nsCOMPtr<nsICategoryManager> catman = do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
00512   if (NS_FAILED(rv)) return rv;
00513   nsXPIDLCString previous;
00514   
00515   return catman->AddCategoryEntry("mime-emitter", info->mContractID, info->mContractID,
00516                                   PR_TRUE, PR_TRUE, getter_Copies(previous));
00517 }
00518 
00520 // news factories
00522 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNntpUrl)
00523 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNntpService)
00524 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNntpIncomingServer)
00525 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNNTPArticleList)
00526 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNNTPNewsgroupPost)
00527 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNNTPNewsgroupList)
00528 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgNewsFolder)
00529 NS_GENERIC_FACTORY_CONSTRUCTOR(nsNewsDownloadDialogArgs)
00530 
00532 // mail view factories
00534 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgMailViewList)
00535 
00537 // mdn factories
00539 NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgMdnGenerator)
00540 
00542 // vcard factories 
00544 
00545 // XXX this vcard stuff needs cleaned up to use a generic factory constructor
00546 extern "C" MimeObjectClass *
00547 MIME_VCardCreateContentTypeHandlerClass(const char *content_type, 
00548                                         contentTypeHandlerInitStruct *initStruct);
00549 
00550 static NS_IMETHODIMP nsVCardMimeContentTypeHandlerConstructor(nsISupports *aOuter,
00551                                          REFNSIID aIID,
00552                                          void **aResult)
00553 {
00554   nsresult rv;
00555   nsMimeContentTypeHandler *inst = nsnull;
00556 
00557   if (NULL == aResult) 
00558   {
00559     rv = NS_ERROR_NULL_POINTER;
00560     return rv;
00561   }
00562   *aResult = NULL;
00563   if (NULL != aOuter) 
00564   {
00565     rv = NS_ERROR_NO_AGGREGATION;
00566     return rv;
00567   }
00568   inst = new nsMimeContentTypeHandler("text/x-vcard", &MIME_VCardCreateContentTypeHandlerClass);
00569   if (inst == NULL)
00570     return NS_ERROR_OUT_OF_MEMORY;
00571 
00572   NS_ADDREF(inst);
00573   rv = inst->QueryInterface(aIID,aResult);
00574   NS_RELEASE(inst);
00575 
00576   return rv;
00577 }
00578 
00579 static NS_METHOD RegisterContentPolicy(nsIComponentManager *aCompMgr, nsIFile *aPath,
00580                                        const char *registryLocation, const char *componentType,
00581                                        const nsModuleComponentInfo *info)
00582 {
00583   nsresult rv;
00584   nsCOMPtr<nsICategoryManager> catman = do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
00585   if (NS_FAILED(rv)) return rv;
00586   nsXPIDLCString previous;
00587   return catman->AddCategoryEntry("content-policy",
00588                                   NS_MSGCONTENTPOLICY_CONTRACTID,
00589                                   NS_MSGCONTENTPOLICY_CONTRACTID,
00590                                   PR_TRUE, PR_TRUE, getter_Copies(previous));
00591 }
00592 
00593 static NS_METHOD UnregisterContentPolicy(nsIComponentManager *aCompMgr, nsIFile *aPath,
00594                                          const char *registryLocation,
00595                                          const nsModuleComponentInfo *info)
00596 {
00597   nsresult rv;
00598   nsCOMPtr<nsICategoryManager> catman = do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv);
00599   if (NS_FAILED(rv)) return rv;
00600 
00601   return catman->DeleteCategoryEntry("content-policy", NS_MSGCONTENTPOLICY_CONTRACTID, PR_TRUE);
00602 }
00603 
00604 static NS_METHOD
00605 RegisterCommandLineHandlers(nsIComponentManager* compMgr, nsIFile* path,
00606                             const char *location, const char *type,
00607                             const nsModuleComponentInfo *info)
00608 {
00609   nsresult rv;
00610   nsCOMPtr<nsICategoryManager> catMan (do_GetService(NS_CATEGORYMANAGER_CONTRACTID));
00611   NS_ENSURE_TRUE(catMan, NS_ERROR_FAILURE);
00612 
00613   rv  = catMan->AddCategoryEntry("command-line-handler", "m-mail",
00614                                  NS_MESSENGERBOOTSTRAP_CONTRACTID,
00615                                  PR_TRUE, PR_TRUE, nsnull);
00616   rv |= catMan->AddCategoryEntry("command-line-handler", "m-addressbook",
00617                                  NS_ADDRESSBOOK_CONTRACTID,
00618                                  PR_TRUE, PR_TRUE, nsnull);
00619   rv |= catMan->AddCategoryEntry("command-line-handler", "m-compose",
00620                                  NS_MSGCOMPOSESERVICE_CONTRACTID,
00621                                  PR_TRUE, PR_TRUE, nsnull);
00622   rv |= catMan->AddCategoryEntry("command-line-handler", "m-news",
00623                                  NS_NNTPSERVICE_CONTRACTID,
00624                                  PR_TRUE, PR_TRUE, nsnull);
00625   if (NS_FAILED(rv))
00626     return NS_ERROR_FAILURE;
00627 
00628   return NS_OK;
00629 }
00630 
00631 static NS_METHOD
00632 UnregisterCommandLineHandlers(nsIComponentManager* compMgr, nsIFile* path,
00633                               const char *location,
00634                               const nsModuleComponentInfo *info)
00635 {
00636   nsCOMPtr<nsICategoryManager> catMan (do_GetService(NS_CATEGORYMANAGER_CONTRACTID));
00637   NS_ENSURE_TRUE(catMan, NS_ERROR_FAILURE);
00638 
00639   catMan->DeleteCategoryEntry("command-line-handler", "m-mail",
00640                               PR_TRUE);
00641   catMan->DeleteCategoryEntry("command-line-handler", "m-addressbook",
00642                               PR_TRUE);
00643   catMan->DeleteCategoryEntry("command-line-handler", "m-compose",
00644                               PR_TRUE);
00645   catMan->DeleteCategoryEntry("command-line-handler", "m-news",
00646                               PR_TRUE);
00647 
00648   return NS_OK;
00649 }
00650                             
00651 
00652 // The list of components we register
00653 static const nsModuleComponentInfo gComponents[] = {
00655     // mailnews base components
00657     { "Netscape Messenger Bootstrapper", NS_MESSENGERBOOTSTRAP_CID,
00658       NS_MESSENGERBOOTSTRAP_CONTRACTID,
00659       nsMessengerBootstrapConstructor,
00660       RegisterCommandLineHandlers,
00661       UnregisterCommandLineHandlers
00662     },
00663     { "Netscape Messenger Window Service", NS_MESSENGERWINDOWSERVICE_CID,
00664       NS_MESSENGERWINDOWSERVICE_CONTRACTID,
00665       nsMessengerBootstrapConstructor,
00666     },
00667     { "UrlListenerManager", NS_URLLISTENERMANAGER_CID,
00668       NS_URLLISTENERMANAGER_CONTRACTID,
00669       nsUrlListenerManagerConstructor,
00670     },
00671     { "Mail Session", NS_MSGMAILSESSION_CID,
00672       NS_MSGMAILSESSION_CONTRACTID,
00673       nsMsgMailSessionConstructor,
00674     },
00675     { "Messenger DOM interaction object", NS_MESSENGER_CID,
00676       NS_MESSENGER_CONTRACTID,
00677       nsMessengerConstructor,
00678     },
00679     { "Messenger Account Manager", NS_MSGACCOUNTMANAGER_CID,
00680       NS_MSGACCOUNTMANAGER_CONTRACTID,
00681       nsMsgAccountManagerConstructor,
00682     },
00683     { "Messenger Migrator", NS_MESSENGERMIGRATOR_CID,
00684       NS_MESSENGERMIGRATOR_CONTRACTID,
00685       nsMessengerMigratorConstructor,
00686     },
00687     { "Messenger User Account", NS_MSGACCOUNT_CID,
00688       NS_MSGACCOUNT_CONTRACTID,
00689       nsMsgAccountConstructor,
00690     },
00691     { "Messenger User Identity", NS_MSGIDENTITY_CID,
00692       NS_MSGIDENTITY_CONTRACTID,
00693       nsMsgIdentityConstructor,
00694     },
00695     { "Mail/News Folder Data Source", NS_MAILNEWSFOLDERDATASOURCE_CID,
00696       NS_MAILNEWSFOLDERDATASOURCE_CONTRACTID,
00697       nsMsgFolderDataSourceConstructor,
00698     },
00699     { "Mail/News Unread Folder Data Source", NS_MAILNEWSUNREADFOLDERDATASOURCE_CID,
00700       NS_MAILNEWSUNREADFOLDERDATASOURCE_CONTRACTID,
00701       nsMsgUnreadFoldersDataSourceConstructor,
00702     },
00703     { "Mail/News Favorite Folder Data Source", NS_MAILNEWSFAVORITEFOLDERDATASOURCE_CID,
00704       NS_MAILNEWSFAVORITEFOLDERDATASOURCE_CONTRACTID,
00705       nsMsgFavoriteFoldersDataSourceConstructor,
00706     },
00707     { "Mail/News Recent Folder Data Source", NS_MAILNEWSRECENTFOLDERDATASOURCE_CID,
00708       NS_MAILNEWSRECENTFOLDERDATASOURCE_CONTRACTID,
00709       nsMsgRecentFoldersDataSourceConstructor,
00710     },
00711     { "Mail/News Account Manager Data Source", NS_MSGACCOUNTMANAGERDATASOURCE_CID,
00712       NS_RDF_DATASOURCE_CONTRACTID_PREFIX "msgaccountmanager",
00713       nsMsgAccountManagerDataSourceConstructor,
00714     },
00715     { "Message Filter Service", NS_MSGFILTERSERVICE_CID,
00716       NS_MSGFILTERSERVICE_CONTRACTID,
00717       nsMsgFilterServiceConstructor,
00718     },
00719     { "Message Search Session", NS_MSGSEARCHSESSION_CID,
00720       NS_MSGSEARCHSESSION_CONTRACTID,
00721       nsMsgSearchSessionConstructor
00722     },
00723     { "Message Search Term", NS_MSGSEARCHTERM_CID,
00724       NS_MSGSEARCHTERM_CONTRACTID,
00725       nsMsgSearchTermConstructor
00726     },
00727     { "Message Search Validity Manager", NS_MSGSEARCHVALIDITYMANAGER_CID,
00728         NS_MSGSEARCHVALIDITYMANAGER_CONTRACTID,
00729         nsMsgSearchValidityManagerConstructor,
00730     },
00731     { "Message Filter Service", NS_MSGFILTERSERVICE_CID,
00732       NS_MSGFILTERSERVICE_CONTRACTID,
00733       nsMsgFilterServiceConstructor,
00734     },
00735     { "Message Filter Datasource", NS_MSGFILTERDATASOURCE_CID,
00736       NS_MSGFILTERDATASOURCE_CONTRACTID,
00737       nsMsgFilterDataSourceConstructor,
00738     },
00739     // XXX temporarily do all the protocols here
00740     { "Message Filter Delegate Factory", NS_MSGFILTERDELEGATEFACTORY_CID,
00741       NS_MSGFILTERDELEGATEFACTORY_IMAP_CONTRACTID,
00742       nsMsgFilterDelegateFactoryConstructor,
00743     },
00744     { "Message Filter Delegate Factory", NS_MSGFILTERDELEGATEFACTORY_CID,
00745       NS_MSGFILTERDELEGATEFACTORY_MAILBOX_CONTRACTID,
00746       nsMsgFilterDelegateFactoryConstructor,
00747     },
00748     { "Message Filter Delegate Factory", NS_MSGFILTERDELEGATEFACTORY_CID,
00749       NS_MSGFILTERDELEGATEFACTORY_NEWS_CONTRACTID,
00750       nsMsgFilterDelegateFactoryConstructor,
00751     },
00752     // XXX done temporary registration
00753     
00754     { "Messenger Biff Manager", NS_MSGBIFFMANAGER_CID,
00755       NS_MSGBIFFMANAGER_CONTRACTID,
00756       nsMsgBiffManagerConstructor,
00757     },
00758     { "Messenger Purge Service", NS_MSGPURGESERVICE_CID,
00759       NS_MSGPURGESERVICE_CONTRACTID,
00760       nsMsgPurgeServiceConstructor,
00761     },
00762     { "Status Bar Biff Manager", NS_STATUSBARBIFFMANAGER_CID,
00763       NS_STATUSBARBIFFMANAGER_CONTRACTID,
00764       nsStatusBarBiffManagerConstructor,
00765     },
00766     { "Mail/News CopyMessage Stream Listener", NS_COPYMESSAGESTREAMLISTENER_CID,
00767       NS_COPYMESSAGESTREAMLISTENER_CONTRACTID,
00768       nsCopyMessageStreamListenerConstructor,
00769     },
00770     { "Mail/News Message Copy Service", NS_MSGCOPYSERVICE_CID,
00771       NS_MSGCOPYSERVICE_CONTRACTID,
00772       nsMsgCopyServiceConstructor,
00773     },
00774     { "Mail/News Folder Cache", NS_MSGFOLDERCACHE_CID,
00775       NS_MSGFOLDERCACHE_CONTRACTID,
00776       nsMsgFolderCacheConstructor,
00777     },
00778     { "Mail/News Status Feedback", NS_MSGSTATUSFEEDBACK_CID,
00779       NS_MSGSTATUSFEEDBACK_CONTRACTID,
00780       nsMsgStatusFeedbackConstructor,
00781     },
00782     { "Mail/News MsgWindow", NS_MSGWINDOW_CID,
00783       NS_MSGWINDOW_CONTRACTID,
00784       nsMsgWindowConstructor,
00785     },
00786     { "Mail/News Print Engine", NS_MSG_PRINTENGINE_CID,
00787       NS_MSGPRINTENGINE_CONTRACTID,
00788       nsMsgPrintEngineConstructor,
00789     },
00790     { "Mail/News Service Provider Service", NS_MSGSERVICEPROVIDERSERVICE_CID,
00791       NS_MSGSERVICEPROVIDERSERVICE_CONTRACTID,
00792       nsMsgServiceProviderServiceConstructor,
00793     },
00794     { "Mail/News Subscribe Data Source", NS_SUBSCRIBEDATASOURCE_CID,
00795       NS_SUBSCRIBEDATASOURCE_CONTRACTID,
00796       nsSubscribeDataSourceConstructor,
00797     },
00798     { "Mail/News Subscribable Server", NS_SUBSCRIBABLESERVER_CID,
00799       NS_SUBSCRIBABLESERVER_CONTRACTID,
00800       nsSubscribableServerConstructor,
00801     },
00802     { "Local folder compactor", NS_MSGLOCALFOLDERCOMPACTOR_CID,
00803       NS_MSGLOCALFOLDERCOMPACTOR_CONTRACTID,
00804       nsFolderCompactStateConstructor,
00805     },
00806     { "offline store compactor", NS_MSG_OFFLINESTORECOMPACTOR_CID,
00807       NS_MSGOFFLINESTORECOMPACTOR_CONTRACTID,
00808       nsOfflineStoreCompactStateConstructor,
00809     },
00810     { "threaded db view", NS_MSGTHREADEDDBVIEW_CID,
00811       NS_MSGTHREADEDDBVIEW_CONTRACTID,
00812       nsMsgThreadedDBViewConstructor,
00813     },
00814     { "threads with unread db view", NS_MSGTHREADSWITHUNREADDBVIEW_CID,
00815       NS_MSGTHREADSWITHUNREADDBVIEW_CONTRACTID,
00816       nsMsgThreadsWithUnreadDBViewConstructor,
00817     },
00818     { "watched threads with unread db view", NS_MSGWATCHEDTHREADSWITHUNREADDBVIEW_CID,
00819       NS_MSGWATCHEDTHREADSWITHUNREADDBVIEW_CONTRACTID,
00820       nsMsgWatchedThreadsWithUnreadDBViewConstructor,
00821     },
00822     { "search db view", NS_MSGSEARCHDBVIEW_CID,
00823       NS_MSGSEARCHDBVIEW_CONTRACTID,
00824       nsMsgSearchDBViewConstructor,
00825     },
00826     { "quick search db view", NS_MSGQUICKSEARCHDBVIEW_CID,
00827       NS_MSGQUICKSEARCHDBVIEW_CONTRACTID,
00828       nsMsgQuickSearchDBViewConstructor,
00829     },
00830     { "cross folder virtual folder db view", NS_MSG_XFVFDBVIEW_CID,
00831        NS_MSGXFVFDBVIEW_CONTRACTID,
00832        nsMsgXFVirtualFolderDBViewConstructor,
00833     },
00834     { "grouped view", NS_MSG_GROUPDBVIEW_CID,
00835       NS_MSGGROUPDBVIEW_CONTRACTID,
00836       nsMsgGroupViewConstructor,
00837     },
00838     { "Messenger Offline Manager", NS_MSGOFFLINEMANAGER_CID,
00839       NS_MSGOFFLINEMANAGER_CONTRACTID,
00840       nsMsgOfflineManagerConstructor,
00841     },
00842     { "Messenger Progress Manager", NS_MSGPROGRESS_CID,
00843       NS_MSGPROGRESS_CONTRACTID,
00844       nsMsgProgressConstructor,
00845     },
00846     { "Spam Settings", NS_SPAMSETTINGS_CID,
00847       NS_SPAMSETTINGS_CONTRACTID,
00848       nsSpamSettingsConstructor,
00849     },
00850     { "Tag Service", NS_MSGTAGSERVICE_CID,
00851       NS_MSGTAGSERVICE_CONTRACTID,
00852       nsMsgTagServiceConstructor,
00853     },
00854     { "Msg Notification Service", NS_MSGNOTIFICATIONSERVICE_CID,
00855       NS_MSGNOTIFICATIONSERVICE_CONTRACTID,
00856       nsMsgFolderNotificationServiceConstructor,
00857     },
00858   
00859     { "cid protocol", NS_CIDPROTOCOL_CID,
00860       NS_CIDPROTOCOLHANDLER_CONTRACTID,
00861       nsCidProtocolHandlerConstructor,
00862     },
00863     {
00864       "mail director provider",
00865       MAILDIRPROVIDER_CID,
00866       NS_MAILDIRPROVIDER_CONTRACTID,
00867       nsMailDirProviderConstructor,
00868       nsMailDirProvider::Register,
00869       nsMailDirProvider::Unregister
00870     },
00871 #ifdef XP_WIN
00872     { "Windows OS Integration", NS_MESSENGERWININTEGRATION_CID,
00873       NS_MESSENGEROSINTEGRATION_CONTRACTID,
00874       nsMessengerWinIntegrationConstructor,
00875     },
00876 #endif
00877 #ifdef XP_OS2
00878     { "OS/2 OS Integration", NS_MESSENGEROS2INTEGRATION_CID,
00879       NS_MESSENGEROSINTEGRATION_CONTRACTID,
00880       nsMessengerOS2IntegrationConstructor,
00881     },
00882 #endif
00883 #ifdef XP_MACOSX
00884     { "OSX OS Integration", NS_MESSENGEROSXINTEGRATION_CID,
00885       NS_MESSENGEROSINTEGRATION_CONTRACTID,
00886       nsMessengerOSXIntegrationConstructor,
00887     },
00888 #endif
00889 #if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2)
00890     { "Unix OS Integration", NS_MESSENGERUNIXINTEGRATION_CID,
00891       NS_MESSENGEROSINTEGRATION_CONTRACTID,
00892       nsMessengerUnixIntegrationConstructor,
00893     },
00894 #endif
00895     { "application/x-message-display content handler",
00896        NS_MESSENGERCONTENTHANDLER_CID,
00897        NS_MESSENGERCONTENTHANDLER_CONTRACTID,
00898        nsMessengerContentHandlerConstructor
00899     },
00900     { "mail content policy enforcer", 
00901        NS_MSGCONTENTPOLICY_CID,
00902        NS_MSGCONTENTPOLICY_CONTRACTID,
00903        nsMsgContentPolicyConstructor,
00904        RegisterContentPolicy, UnregisterContentPolicy },
00905     { "mail cookie policy enforcer",
00906       NS_MSGCOOKIEPOLICY_CID,
00907       NS_COOKIEPERMISSION_CONTRACTID,
00908       nsMsgCookiePolicyConstructor
00909     },
00910     
00912     // addrbook components
00914     { "Address Book", NS_ADDRESSBOOK_CID,
00915       NS_ADDRESSBOOK_CONTRACTID, nsAddressBookConstructor },
00916     { "Address Book Directory Datasource", NS_ABDIRECTORYDATASOURCE_CID,
00917       NS_ABDIRECTORYDATASOURCE_CONTRACTID, nsAbDirectoryDataSourceConstructor },
00918     { "Address Boot Strap Directory", NS_ABDIRECTORY_CID,
00919       NS_ABDIRECTORY_CONTRACTID, nsAbBSDirectoryConstructor },
00920     { "Address MDB Book Directory", NS_ABMDBDIRECTORY_CID,
00921       NS_ABMDBDIRECTORY_CONTRACTID, nsAbMDBDirectoryConstructor },
00922     { "Address MDB Book Card", NS_ABMDBCARD_CID,
00923        NS_ABMDBCARD_CONTRACTID, nsAbMDBCardConstructor },
00924     { "Address Database", NS_ADDRDATABASE_CID,
00925       NS_ADDRDATABASE_CONTRACTID, nsAddrDatabaseConstructor },
00926     { "Address Book Card Property", NS_ABCARDPROPERTY_CID,
00927       NS_ABCARDPROPERTY_CONTRACTID, nsAbCardPropertyConstructor },
00928     { "Address Book Directory Property", NS_ABDIRPROPERTY_CID,
00929       NS_ABDIRPROPERTY_CONTRACTID, nsAbDirPropertyConstructor },
00930     { "AB Directory Properties", NS_ABDIRECTORYPROPERTIES_CID,
00931       NS_ABDIRECTORYPROPERTIES_CONTRACTID, nsAbDirectoryPropertiesConstructor },
00932     { "Address Book Session", NS_ADDRBOOKSESSION_CID,
00933       NS_ADDRBOOKSESSION_CONTRACTID, nsAddrBookSessionConstructor },
00934     { "Address Book Auto Complete Session", NS_ABAUTOCOMPLETESESSION_CID,
00935       NS_ABAUTOCOMPLETESESSION_CONTRACTID, nsAbAutoCompleteSessionConstructor },
00936     { "Address Book Address Collector", NS_ABADDRESSCOLLECTER_CID,
00937       NS_ABADDRESSCOLLECTER_CONTRACTID, nsAbAddressCollecterConstructor },
00938     { "The addbook URL Interface", NS_ADDBOOKURL_CID,
00939       NS_ADDBOOKURL_CONTRACTID, nsAddbookUrlConstructor },   
00940     { "The addbook Protocol Handler", NS_ADDBOOK_HANDLER_CID,
00941       NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "addbook", nsAddbookProtocolHandlerConstructor },
00942     { "add vCard content handler", NS_ADDRESSBOOK_CID, NS_CONTENT_HANDLER_CONTRACTID_PREFIX"application/x-addvcard", nsAddressBookConstructor },
00943     { "add vCard content handler", NS_ADDRESSBOOK_CID, NS_CONTENT_HANDLER_CONTRACTID_PREFIX"text/x-vcard", nsAddressBookConstructor },
00944 
00945     { "The directory factory service interface", NS_ABDIRFACTORYSERVICE_CID,
00946       NS_ABDIRFACTORYSERVICE_CONTRACTID, nsAbDirFactoryServiceConstructor },
00947     { "The MDB directory factory interface", NS_ABMDBDIRFACTORY_CID,
00948       NS_ABMDBDIRFACTORY_CONTRACTID, nsAbMDBDirFactoryConstructor },
00949 #if defined(XP_WIN) && !defined(__MINGW32__)
00950     { "Address OUTLOOK Book Directory", NS_ABOUTLOOKDIRECTORY_CID,
00951       NS_ABOUTLOOKDIRECTORY_CONTRACTID, nsAbOutlookDirectoryConstructor },
00952     { "Address OUTLOOK Book Card", NS_ABOUTLOOKCARD_CID,
00953       NS_ABOUTLOOKCARD_CONTRACTID, nsAbOutlookCardConstructor },
00954     { "The outlook factory Interface", NS_ABOUTLOOKDIRFACTORY_CID,
00955       NS_ABOUTLOOKDIRFACTORY_CONTRACTID, nsAbOutlookDirFactoryConstructor },
00956 #endif
00957     { "The addbook query arguments", NS_ABDIRECTORYQUERYARGUMENTS_CID,
00958       NS_ABDIRECTORYQUERYARGUMENTS_CONTRACTID, nsAbDirectoryQueryArgumentsConstructor },   
00959     { "The query boolean condition string", NS_BOOLEANCONDITIONSTRING_CID,
00960       NS_BOOLEANCONDITIONSTRING_CONTRACTID, nsAbBooleanConditionStringConstructor },   
00961     { "The query n-peer expression", NS_BOOLEANEXPRESSION_CID,
00962       NS_BOOLEANEXPRESSION_CONTRACTID, nsAbBooleanExpressionConstructor },
00963 #if defined(MOZ_LDAP_XPCOM)
00964     { "Address LDAP Book Directory", NS_ABLDAPDIRECTORY_CID,
00965       NS_ABLDAPDIRECTORY_CONTRACTID, nsAbLDAPDirectoryConstructor },
00966     { "Address LDAP Book Card", NS_ABLDAPCARD_CID,
00967       NS_ABLDAPCARD_CONTRACTID, nsAbLDAPCardConstructor },
00968     { "Address LDAP factory Interface", NS_ABLDAPDIRFACTORY_CID,
00969       NS_ABLDAPDIRFACTORY_CONTRACTID, nsAbLDAPDirFactoryConstructor },
00970     { "Address LDAP Replication Service Interface", NS_ABLDAP_REPLICATIONSERVICE_CID,
00971       NS_ABLDAP_REPLICATIONSERVICE_CONTRACTID, nsAbLDAPReplicationServiceConstructor },
00972     { "Address LDAP Replication Query Interface", NS_ABLDAP_REPLICATIONQUERY_CID, 
00973       NS_ABLDAP_REPLICATIONQUERY_CONTRACTID, nsAbLDAPReplicationQueryConstructor },
00974     { "Address LDAP Replication Processor Interface", NS_ABLDAP_PROCESSREPLICATIONDATA_CID,
00975       NS_ABLDAP_PROCESSREPLICATIONDATA_CONTRACTID, nsAbLDAPProcessReplicationDataConstructor},
00976     { "Address LDAP ChangeLog Query Interface", NS_ABLDAP_CHANGELOGQUERY_CID,
00977       NS_ABLDAP_CHANGELOGQUERY_CONTRACTID, nsAbLDAPChangeLogQueryConstructor },
00978     { "Address LDAP ChangeLog Processor Interface", NS_ABLDAP_PROCESSCHANGELOGDATA_CID,
00979       NS_ABLDAP_PROCESSCHANGELOGDATA_CONTRACTID, nsAbLDAPProcessChangeLogDataConstructor },
00980     { "Address LDAP autocomplete factory Interface", NS_ABLDAPDIRFACTORY_CID,
00981       NS_ABLDAPACDIRFACTORY_CONTRACTID, nsAbLDAPDirFactoryConstructor },
00982     { "Address LDAP over SSL autocomplete factory Interface", NS_ABLDAPDIRFACTORY_CID,
00983       NS_ABLDAPSACDIRFACTORY_CONTRACTID, nsAbLDAPDirFactoryConstructor },
00984     { "Address book LDAP autocomplete formatter", NS_ABLDAPAUTOCOMPFORMATTER_CID,
00985       NS_ABLDAPAUTOCOMPFORMATTER_CONTRACTID,nsAbLDAPAutoCompFormatterConstructor },
00986 #endif
00987     { "The directory query proxy interface", NS_ABDIRECTORYQUERYPROXY_CID,
00988       NS_ABDIRECTORYQUERYPROXY_CONTRACTID, nsAbDirectoryQueryProxyConstructor},
00989     { "addressbook view", NS_ABVIEW_CID, NS_ABVIEW_CONTRACTID, nsAbViewConstructor},
00990     { "vcard helper service", NS_MSGVCARDSERVICE_CID, NS_MSGVCARDSERVICE_CONTRACTID, nsMsgVCardServiceConstructor },
00991     { "ldif handler service", NS_ABLDIFSERVICE_CID, NS_ABLDIFSERVICE_CONTRACTID, nsAbLDIFServiceConstructor },
00992 #if 0
00993 #ifdef XP_MACOSX
00994     { "OS X Address Book Directory", NS_ABOSXDIRECTORY_CID,
00995       NS_ABOSXDIRECTORY_CONTRACTID, nsAbOSXDirectoryConstructor },
00996     { "OS X Address Book Card", NS_ABOSXCARD_CID, NS_ABOSXCARD_CONTRACTID,
00997       nsAbOSXCardConstructor },
00998     { "The OS X factory Interface", NS_ABOSXDIRFACTORY_CID,
00999       NS_ABOSXDIRFACTORY_CONTRACTID, nsAbOSXDirFactoryConstructor },
01000 #endif
01001 #endif
01002 
01004     // bayesian spam filter components
01006     { "Bayesian Filter", NS_BAYESIANFILTER_CID,
01007       NS_BAYESIANFILTER_CONTRACTID, nsBayesianFilterConstructor},
01008 
01010     // compose components
01012     { "Msg Compose", NS_MSGCOMPOSE_CID, 
01013       NS_MSGCOMPOSE_CONTRACTID,  nsMsgComposeConstructor },
01014     { "Msg Compose Service", NS_MSGCOMPOSESERVICE_CID, 
01015       NS_MSGCOMPOSESERVICE_CONTRACTID, nsMsgComposeServiceConstructor },
01016     { "mailto content handler", NS_MSGCOMPOSECONTENTHANDLER_CID,
01017       NS_MSGCOMPOSECONTENTHANDLER_CONTRACTID, nsMsgComposeContentHandlerConstructor },
01018     { "Msg Compose Parameters", NS_MSGCOMPOSEPARAMS_CID,
01019       NS_MSGCOMPOSEPARAMS_CONTRACTID, nsMsgComposeParamsConstructor },
01020     { "Msg Compose Send Listener", NS_MSGCOMPOSESENDLISTENER_CID,
01021       NS_MSGCOMPOSESENDLISTENER_CONTRACTID, nsMsgComposeSendListenerConstructor },
01022     { "Msg Compose Progress Parameters", NS_MSGCOMPOSEPROGRESSPARAMS_CID,
01023       NS_MSGCOMPOSEPROGRESSPARAMS_CONTRACTID, nsMsgComposeProgressParamsConstructor },
01024     { "Msg Compose Fields", NS_MSGCOMPFIELDS_CID, 
01025       NS_MSGCOMPFIELDS_CONTRACTID, nsMsgCompFieldsConstructor },
01026     { "Msg Compose Attachment", NS_MSGATTACHMENT_CID, 
01027       NS_MSGATTACHMENT_CONTRACTID, nsMsgAttachmentConstructor },
01028     { "Msg Send", NS_MSGSEND_CID,
01029       NS_MSGSEND_CONTRACTID, nsMsgComposeAndSendConstructor },
01030     { "Msg Send Later", NS_MSGSENDLATER_CID,
01031       NS_MSGSENDLATER_CONTRACTID, nsMsgSendLaterConstructor },
01032     { "SMTP Service", NS_SMTPSERVICE_CID,
01033       NS_SMTPSERVICE_CONTRACTID, nsSmtpServiceConstructor },
01034     { "SMTP Service", NS_SMTPSERVICE_CID, 
01035       NS_MAILTOHANDLER_CONTRACTID, nsSmtpServiceConstructor },
01036     { "SMTP Server", NS_SMTPSERVER_CID,
01037       NS_SMTPSERVER_CONTRACTID, nsSmtpServerConstructor },
01038     { "SMTP URL", NS_SMTPURL_CID,
01039       NS_SMTPURL_CONTRACTID, nsSmtpUrlConstructor },
01040     { "MAILTO URL", NS_MAILTOURL_CID,
01041       NS_MAILTOURL_CONTRACTID, nsMailtoUrlConstructor },
01042     { "Msg Quote", NS_MSGQUOTE_CID,
01043       NS_MSGQUOTE_CONTRACTID, nsMsgQuoteConstructor },
01044     { "Msg Quote Listener", NS_MSGQUOTELISTENER_CID,
01045       NS_MSGQUOTELISTENER_CONTRACTID, nsMsgQuoteListenerConstructor },
01046     { "Msg Recipient Array", NS_MSGRECIPIENTARRAY_CID,
01047       NS_MSGRECIPIENTARRAY_CONTRACTID, nsMsgRecipientArrayConstructor },
01048     { "Compose string bundle", NS_MSG_COMPOSESTRINGSERVICE_CID,
01049       NS_MSG_COMPOSESTRINGSERVICE_CONTRACTID, nsComposeStringServiceConstructor },
01050     { "SMTP string bundle", NS_MSG_COMPOSESTRINGSERVICE_CID,
01051       NS_MSG_SMTPSTRINGSERVICE_CONTRACTID, nsComposeStringServiceConstructor },
01052     { "SMTP Datasource", NS_SMTPDATASOURCE_CID,
01053       NS_SMTPDATASOURCE_CONTRACTID, nsSmtpDataSourceConstructor },
01054     { "SMTP Delegate Factory", NS_SMTPDELEGATEFACTORY_CID,
01055       NS_SMTPDELEGATEFACTORY_CONTRACTID, nsSmtpDelegateFactoryConstructor },
01056     { "URL Fetcher", NS_URLFETCHER_CID,
01057       NS_URLFETCHER_CONTRACTID, nsURLFetcherConstructor },
01058     { "Msg Compose Utils", NS_MSGCOMPUTILS_CID,
01059       NS_MSGCOMPUTILS_CONTRACTID, nsMsgCompUtilsConstructor },
01060     
01062     // imap components
01064     { "IMAP URL", NS_IMAPURL_CID,
01065       nsnull, nsImapUrlConstructor },
01066     { "IMAP Protocol Channel", NS_IMAPPROTOCOL_CID,
01067       nsnull, nsImapProtocolConstructor },    
01068     { "IMAP Mock Channel", NS_IMAPMOCKCHANNEL_CID,
01069       nsnull, nsImapMockChannelConstructor },
01070     { "IMAP Host Session List", NS_IIMAPHOSTSESSIONLIST_CID,
01071       nsnull, nsIMAPHostSessionListConstructor },
01072     { "IMAP Incoming Server", NS_IMAPINCOMINGSERVER_CID,
01073       NS_IMAPINCOMINGSERVER_CONTRACTID, nsImapIncomingServerConstructor },
01074     { "Mail/News IMAP Resource Factory", NS_IMAPRESOURCE_CID,
01075       NS_RDF_RESOURCE_FACTORY_CONTRACTID_PREFIX "imap", 
01076       nsImapMailFolderConstructor },
01077     { "IMAP Service", NS_IMAPSERVICE_CID,
01078       "@mozilla.org/messenger/messageservice;1?type=imap-message",
01079       nsImapServiceConstructor },
01080     { "IMAP Service", NS_IMAPSERVICE_CID,
01081       "@mozilla.org/messenger/messageservice;1?type=imap",
01082       nsImapServiceConstructor },
01083     { "IMAP Service", NS_IMAPSERVICE_CID,
01084       NS_IMAPSERVICE_CONTRACTID,
01085       nsImapServiceConstructor },
01086     { "IMAP Protocol Handler", NS_IMAPSERVICE_CID,
01087       NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "imap", nsImapServiceConstructor},
01088     { "IMAP Protocol Handler", NS_IMAPSERVICE_CID,
01089       NS_IMAPPROTOCOLINFO_CONTRACTID, nsImapServiceConstructor },
01090     { "imap folder content handler", NS_IMAPSERVICE_CID,
01091       NS_CONTENT_HANDLER_CONTRACTID_PREFIX"x-application-imapfolder", nsImapServiceConstructor},
01092 
01094     // local components
01096     { "Mailbox URL", NS_MAILBOXURL_CID,
01097       NS_MAILBOXURL_CONTRACTID, nsMailboxUrlConstructor },
01098 
01099     { "Mailbox Service", NS_MAILBOXSERVICE_CID,
01100       NS_MAILBOXSERVICE_CONTRACTID1, nsMailboxServiceConstructor },
01101 
01102     { "Mailbox Service", NS_MAILBOXSERVICE_CID,
01103       NS_MAILBOXSERVICE_CONTRACTID2, nsMailboxServiceConstructor },
01104 
01105     { "Mailbox Service", NS_MAILBOXSERVICE_CID,
01106       NS_MAILBOXSERVICE_CONTRACTID3, nsMailboxServiceConstructor },
01107 
01108     { "Mailbox Protocol Handler", NS_MAILBOXSERVICE_CID,
01109       NS_MAILBOXSERVICE_CONTRACTID4, nsMailboxServiceConstructor },
01110 
01111     { "Mailbox Parser", NS_MAILBOXPARSER_CID,
01112       NS_MAILBOXPARSER_CONTRACTID, nsMsgMailboxParserConstructor },
01113 
01114     { "Pop3 URL", NS_POP3URL_CID,
01115       NS_POP3URL_CONTRACTID, nsPop3URLConstructor },
01116 
01117     { "Pop3 Service", NS_POP3SERVICE_CID,
01118       NS_POP3SERVICE_CONTRACTID1, nsPop3ServiceConstructor },
01119 
01120     { "POP Protocol Handler", NS_POP3SERVICE_CID,
01121       NS_POP3SERVICE_CONTRACTID2, nsPop3ServiceConstructor },
01122 
01123     { "None Service", NS_NONESERVICE_CID,
01124       NS_NONESERVICE_CONTRACTID, nsNoneServiceConstructor },
01125     { "pop3 Protocol Information", NS_POP3SERVICE_CID,
01126       NS_POP3PROTOCOLINFO_CONTRACTID, nsPop3ServiceConstructor },
01127 
01128     { "none Protocol Information", NS_NONESERVICE_CID,
01129       NS_NONEPROTOCOLINFO_CONTRACTID, nsNoneServiceConstructor },
01130     { "Local Mail Folder Resource Factory", NS_LOCALMAILFOLDERRESOURCE_CID,
01131       NS_LOCALMAILFOLDERRESOURCE_CONTRACTID, nsMsgLocalMailFolderConstructor },
01132 
01133     { "Pop3 Incoming Server", NS_POP3INCOMINGSERVER_CID,
01134       NS_POP3INCOMINGSERVER_CONTRACTID, nsPop3IncomingServerConstructor },
01135 
01136 #ifdef HAVE_MOVEMAIL 
01137     { "Movemail Service", NS_MOVEMAILSERVICE_CID,
01138       NS_MOVEMAILSERVICE_CONTRACTID, nsMovemailServiceConstructor },
01139     { "movemail Protocol Information", NS_MOVEMAILSERVICE_CID,
01140       NS_MOVEMAILPROTOCOLINFO_CONTRACTID, nsMovemailServiceConstructor },
01141     { "Movemail Incoming Server", NS_MOVEMAILINCOMINGSERVER_CID,
01142       NS_MOVEMAILINCOMINGSERVER_CONTRACTID, nsMovemailIncomingServerConstructor },
01143 #endif /* HAVE_MOVEMAIL */
01144 
01145     { "No Incoming Server", NS_NOINCOMINGSERVER_CID,
01146       NS_NOINCOMINGSERVER_CONTRACTID, nsNoIncomingServerConstructor },
01147 
01148     { "Parse MailMessage State", NS_PARSEMAILMSGSTATE_CID,
01149       NS_PARSEMAILMSGSTATE_CONTRACTID, nsParseMailMessageStateConstructor },
01150 
01151     { "Mailbox String Bundle Service", NS_MSG_LOCALSTRINGSERVICE_CID,
01152       NS_MSG_MAILBOXSTRINGSERVICE_CONTRACTID, nsLocalStringServiceConstructor },
01153 
01154     { "Pop String Bundle Service", NS_MSG_LOCALSTRINGSERVICE_CID,
01155       NS_MSG_POPSTRINGSERVICE_CONTRACTID, nsLocalStringServiceConstructor },
01156     
01157     { "RSS Service", NS_RSSSERVICE_CID,
01158       NS_RSSSERVICE_CONTRACTID, nsRssServiceConstructor },
01159     
01160     { "RSS Protocol Information", NS_RSSSERVICE_CID,
01161       NS_RSSPROTOCOLINFO_CONTRACTID, nsRssServiceConstructor },
01162         
01163     { "RSS Incoming Server", NS_RSSINCOMINGSERVER_CID,
01164       NS_RSSINCOMINGSERVER_CONTRACTID, nsRssIncomingServerConstructor },
01166     // msgdb components
01168     { "Msg DB Service", NS_MSGDB_SERVICE_CID, NS_MSGDB_SERVICE_CONTRACTID, nsMsgDBServiceConstructor },
01169     { "Mail DB", NS_MAILDB_CID, NS_MAILBOXDB_CONTRACTID, nsMailDatabaseConstructor },
01170     { "News DB", NS_NEWSDB_CID, NS_NEWSDB_CONTRACTID, nsNewsDatabaseConstructor },
01171     { "Imap DB", NS_IMAPDB_CID, NS_IMAPDB_CONTRACTID, nsImapMailDatabaseConstructor },
01172     { "Msg Retention Settings", NS_MSG_RETENTIONSETTINGS_CID,
01173       NS_MSG_RETENTIONSETTINGS_CONTRACTID, nsMsgRetentionSettingsConstructor },
01174     { "Msg Download Settings", NS_MSG_DOWNLOADSETTINGS_CID,
01175       NS_MSG_DOWNLOADSETTINGS_CONTRACTID, nsMsgDownloadSettingsConstructor },
01176     
01178     // mime components
01180     { "MimeObjectClassAccess", NS_MIME_OBJECT_CLASS_ACCESS_CID,
01181       nsnull, nsMimeObjectClassAccessConstructor },
01182     { "Mime Converter", NS_MIME_CONVERTER_CID,
01183       NS_MIME_CONVERTER_CONTRACTID, nsMimeConverterConstructor },
01184     { "Msg Header Parser", NS_MSGHEADERPARSER_CID, 
01185       NS_MAILNEWS_MIME_HEADER_PARSER_CONTRACTID, nsMsgHeaderParserConstructor },
01186     { "Mailnews Mime Stream Converter", NS_MAILNEWS_MIME_STREAM_CONVERTER_CID,
01187       NS_MAILNEWS_MIME_STREAM_CONVERTER_CONTRACTID, nsStreamConverterConstructor },
01188     { "Mailnews Mime Stream Converter", NS_MAILNEWS_MIME_STREAM_CONVERTER_CID,
01189       NS_MAILNEWS_MIME_STREAM_CONVERTER_CONTRACTID1, nsStreamConverterConstructor},
01190     { "Mailnews Mime Stream Converter", NS_MAILNEWS_MIME_STREAM_CONVERTER_CID,
01191       NS_MAILNEWS_MIME_STREAM_CONVERTER_CONTRACTID2, nsStreamConverterConstructor },
01192     { "Mime Headers", NS_IMIMEHEADERS_CID,
01193       NS_IMIMEHEADERS_CONTRACTID, nsMimeHeadersConstructor },
01194 
01196     // mime emitter components
01198     { "HTML MIME Emitter", NS_HTML_MIME_EMITTER_CID,
01199       NS_HTML_MIME_EMITTER_CONTRACTID, nsMimeHtmlDisplayEmitterConstructor, RegisterMimeEmitter },
01200     { "XML MIME Emitter", NS_XML_MIME_EMITTER_CID,
01201       NS_XML_MIME_EMITTER_CONTRACTID, nsMimeXmlEmitterConstructor, RegisterMimeEmitter },
01202     { "PLAIN MIME Emitter", NS_PLAIN_MIME_EMITTER_CID,
01203       NS_PLAIN_MIME_EMITTER_CONTRACTID, nsMimePlainEmitterConstructor, RegisterMimeEmitter },
01204     { "RAW MIME Emitter", NS_RAW_MIME_EMITTER_CID,
01205       NS_RAW_MIME_EMITTER_CONTRACTID, nsMimeRawEmitterConstructor, RegisterMimeEmitter },
01206 
01208     // news components
01210     { "NNTP URL", NS_NNTPURL_CID,
01211       NS_NNTPURL_CONTRACTID, nsNntpUrlConstructor },
01212     { "NNTP Service", NS_NNTPSERVICE_CID,
01213       NS_NNTPSERVICE_CONTRACTID, nsNntpServiceConstructor },
01214     { "NNTP Protocol Info", NS_NNTPSERVICE_CID,
01215       NS_NNTPPROTOCOLINFO_CONTRACTID, nsNntpServiceConstructor },
01216     { "NNTP Message Service",NS_NNTPSERVICE_CID,
01217       NS_NNTPMESSAGESERVICE_CONTRACTID, nsNntpServiceConstructor },
01218     { "News Message Service", NS_NNTPSERVICE_CID,
01219       NS_NEWSMESSAGESERVICE_CONTRACTID, nsNntpServiceConstructor },
01220     { "News Protocol Handler", NS_NNTPSERVICE_CID,
01221       NS_NEWSPROTOCOLHANDLER_CONTRACTID, nsNntpServiceConstructor },
01222     { "Secure News Protocol Handler", NS_NNTPSERVICE_CID,
01223       NS_SNEWSPROTOCOLHANDLER_CONTRACTID, nsNntpServiceConstructor },
01224     { "NNTP Protocol Handler", NS_NNTPSERVICE_CID,
01225       NS_NNTPPROTOCOLHANDLER_CONTRACTID, nsNntpServiceConstructor },
01226     { "newsgroup content handler",NS_NNTPSERVICE_CID,
01227       NS_CONTENT_HANDLER_CONTRACTID_PREFIX"x-application-newsgroup", nsNntpServiceConstructor },
01228     { "newsgroup listids content handler", NS_NNTPSERVICE_CID,
01229       NS_CONTENT_HANDLER_CONTRACTID_PREFIX"x-application-newsgroup-listids", nsNntpServiceConstructor },
01230     { "News Folder Resource", NS_NEWSFOLDERRESOURCE_CID,
01231       NS_NEWSFOLDERRESOURCE_CONTRACTID, nsMsgNewsFolderConstructor },
01232     { "NNTP Incoming Servier", NS_NNTPINCOMINGSERVER_CID,
01233       NS_NNTPINCOMINGSERVER_CONTRACTID, nsNntpIncomingServerConstructor },
01234     { "NNTP Newsgroup Post", NS_NNTPNEWSGROUPPOST_CID,
01235       NS_NNTPNEWSGROUPPOST_CONTRACTID, nsNNTPNewsgroupPostConstructor },
01236     { "NNTP Newsgroup List", NS_NNTPNEWSGROUPLIST_CID,
01237       NS_NNTPNEWSGROUPLIST_CONTRACTID, nsNNTPNewsgroupListConstructor },
01238     { "NNTP Article List", NS_NNTPARTICLELIST_CID,
01239       NS_NNTPARTICLELIST_CONTRACTID, nsNNTPArticleListConstructor },
01240     { "News download dialog args", NS_NEWSDOWNLOADDIALOGARGS_CID,
01241       NS_NEWSDOWNLOADDIALOGARGS_CONTRACTID, nsNewsDownloadDialogArgsConstructor },
01242     
01244     // mail view components
01246     { "Default Mail List View", NS_MSGMAILVIEWLIST_CID,
01247        NS_MSGMAILVIEWLIST_CONTRACTID, nsMsgMailViewListConstructor },
01248     
01250     // mdn  components
01252     { "Msg Mdn Generator", NS_MSGMDNGENERATOR_CID,
01253       NS_MSGMDNGENERATOR_CONTRACTID, nsMsgMdnGeneratorConstructor },
01254     
01256     // mdn  components
01258     { "MIME VCard Handler", NS_VCARD_CONTENT_TYPE_HANDLER_CID, "@mozilla.org/mimecth;1?type=text/x-vcard",
01259        nsVCardMimeContentTypeHandlerConstructor, }
01260 };
01261 
01262 PR_STATIC_CALLBACK(void) nsMailModuleDtor(nsIModule* self)
01263 {
01264     nsAddrDatabase::CleanupCache();
01265     nsMsgDatabase::CleanupCache();
01266 }
01267 
01268 NS_IMPL_NSGETMODULE_WITH_DTOR(nsMailModule, gComponents, nsMailModuleDtor)