/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/imap/public/nsIImapIncomingServer.idl
 */

#ifndef __gen_nsIImapIncomingServer_h__
#define __gen_nsIImapIncomingServer_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIUrlListener; /* forward declaration */

class nsIURI; /* forward declaration */

class nsIImapUrl; /* forward declaration */

class nsIImapProtocol; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

typedef int32_t  nsMsgImapDeleteModel;


/* starting interface:    nsMsgImapDeleteModels */
#define NS_MSGIMAPDELETEMODELS_IID_STR "bbfc33de-fe89-11d3-a564-0060b0fc04b7"

#define NS_MSGIMAPDELETEMODELS_IID \
  {0xbbfc33de, 0xfe89, 0x11d3, \
    { 0xa5, 0x64, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xb7 }}

class NS_NO_VTABLE nsMsgImapDeleteModels {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_MSGIMAPDELETEMODELS_IID)

  enum {
    IMAPDelete = 0,
    MoveToTrash = 1,
    DeleteNoTrash = 2
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsMsgImapDeleteModels, NS_MSGIMAPDELETEMODELS_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSMSGIMAPDELETEMODELS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSMSGIMAPDELETEMODELS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSMSGIMAPDELETEMODELS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public nsMsgImapDeleteModels
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSMSGIMAPDELETEMODELS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, nsMsgImapDeleteModels)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIImapIncomingServer */
#define NS_IIMAPINCOMINGSERVER_IID_STR "ea6a0765-07b8-40df-924c-9004ed707251"

#define NS_IIMAPINCOMINGSERVER_IID \
  {0xea6a0765, 0x07b8, 0x40df, \
    { 0x92, 0x4c, 0x90, 0x04, 0xed, 0x70, 0x72, 0x51 }}

class NS_NO_VTABLE nsIImapIncomingServer : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIMAPINCOMINGSERVER_IID)

  /* attribute long maximumConnectionsNumber; */
  NS_IMETHOD GetMaximumConnectionsNumber(int32_t *aMaximumConnectionsNumber) = 0;
  NS_IMETHOD SetMaximumConnectionsNumber(int32_t aMaximumConnectionsNumber) = 0;

  /* attribute long timeOutLimits; */
  NS_IMETHOD GetTimeOutLimits(int32_t *aTimeOutLimits) = 0;
  NS_IMETHOD SetTimeOutLimits(int32_t aTimeOutLimits) = 0;

  /* attribute ACString adminUrl; */
  NS_IMETHOD GetAdminUrl(nsACString & aAdminUrl) = 0;
  NS_IMETHOD SetAdminUrl(const nsACString & aAdminUrl) = 0;

  /* attribute ACString serverDirectory; */
  NS_IMETHOD GetServerDirectory(nsACString & aServerDirectory) = 0;
  NS_IMETHOD SetServerDirectory(const nsACString & aServerDirectory) = 0;

  /* attribute ACString serverIDPref; */
  NS_IMETHOD GetServerIDPref(nsACString & aServerIDPref) = 0;
  NS_IMETHOD SetServerIDPref(const nsACString & aServerIDPref) = 0;

  /* attribute boolean cleanupInboxOnExit; */
  NS_IMETHOD GetCleanupInboxOnExit(bool *aCleanupInboxOnExit) = 0;
  NS_IMETHOD SetCleanupInboxOnExit(bool aCleanupInboxOnExit) = 0;

  /* attribute nsMsgImapDeleteModel deleteModel; */
  NS_IMETHOD GetDeleteModel(nsMsgImapDeleteModel *aDeleteModel) = 0;
  NS_IMETHOD SetDeleteModel(nsMsgImapDeleteModel aDeleteModel) = 0;

  /* attribute boolean dualUseFolders; */
  NS_IMETHOD GetDualUseFolders(bool *aDualUseFolders) = 0;
  NS_IMETHOD SetDualUseFolders(bool aDualUseFolders) = 0;

  /* attribute long emptyTrashThreshhold; */
  NS_IMETHOD GetEmptyTrashThreshhold(int32_t *aEmptyTrashThreshhold) = 0;
  NS_IMETHOD SetEmptyTrashThreshhold(int32_t aEmptyTrashThreshhold) = 0;

  /* attribute ACString personalNamespace; */
  NS_IMETHOD GetPersonalNamespace(nsACString & aPersonalNamespace) = 0;
  NS_IMETHOD SetPersonalNamespace(const nsACString & aPersonalNamespace) = 0;

  /* attribute ACString publicNamespace; */
  NS_IMETHOD GetPublicNamespace(nsACString & aPublicNamespace) = 0;
  NS_IMETHOD SetPublicNamespace(const nsACString & aPublicNamespace) = 0;

  /* attribute ACString otherUsersNamespace; */
  NS_IMETHOD GetOtherUsersNamespace(nsACString & aOtherUsersNamespace) = 0;
  NS_IMETHOD SetOtherUsersNamespace(const nsACString & aOtherUsersNamespace) = 0;

  /* attribute boolean offlineDownload; */
  NS_IMETHOD GetOfflineDownload(bool *aOfflineDownload) = 0;
  NS_IMETHOD SetOfflineDownload(bool aOfflineDownload) = 0;

  /* attribute boolean overrideNamespaces; */
  NS_IMETHOD GetOverrideNamespaces(bool *aOverrideNamespaces) = 0;
  NS_IMETHOD SetOverrideNamespaces(bool aOverrideNamespaces) = 0;

  /* attribute boolean usingSubscription; */
  NS_IMETHOD GetUsingSubscription(bool *aUsingSubscription) = 0;
  NS_IMETHOD SetUsingSubscription(bool aUsingSubscription) = 0;

  /* attribute ACString manageMailAccountUrl; */
  NS_IMETHOD GetManageMailAccountUrl(nsACString & aManageMailAccountUrl) = 0;
  NS_IMETHOD SetManageMailAccountUrl(const nsACString & aManageMailAccountUrl) = 0;

  /* attribute boolean fetchByChunks; */
  NS_IMETHOD GetFetchByChunks(bool *aFetchByChunks) = 0;
  NS_IMETHOD SetFetchByChunks(bool aFetchByChunks) = 0;

  /* attribute boolean mimePartsOnDemand; */
  NS_IMETHOD GetMimePartsOnDemand(bool *aMimePartsOnDemand) = 0;
  NS_IMETHOD SetMimePartsOnDemand(bool aMimePartsOnDemand) = 0;

  /* attribute boolean sendID; */
  NS_IMETHOD GetSendID(bool *aSendID) = 0;
  NS_IMETHOD SetSendID(bool aSendID) = 0;

  /* attribute boolean isAOLServer; */
  NS_IMETHOD GetIsAOLServer(bool *aIsAOLServer) = 0;
  NS_IMETHOD SetIsAOLServer(bool aIsAOLServer) = 0;

  /* attribute boolean capabilityACL; */
  NS_IMETHOD GetCapabilityACL(bool *aCapabilityACL) = 0;
  NS_IMETHOD SetCapabilityACL(bool aCapabilityACL) = 0;

  /* attribute boolean capabilityQuota; */
  NS_IMETHOD GetCapabilityQuota(bool *aCapabilityQuota) = 0;
  NS_IMETHOD SetCapabilityQuota(bool aCapabilityQuota) = 0;

  /* attribute boolean useIdle; */
  NS_IMETHOD GetUseIdle(bool *aUseIdle) = 0;
  NS_IMETHOD SetUseIdle(bool aUseIdle) = 0;

  /* attribute boolean checkAllFoldersForNew; */
  NS_IMETHOD GetCheckAllFoldersForNew(bool *aCheckAllFoldersForNew) = 0;
  NS_IMETHOD SetCheckAllFoldersForNew(bool aCheckAllFoldersForNew) = 0;

  /* attribute boolean isGMailServer; */
  NS_IMETHOD GetIsGMailServer(bool *aIsGMailServer) = 0;
  NS_IMETHOD SetIsGMailServer(bool aIsGMailServer) = 0;

  /* attribute boolean useCondStore; */
  NS_IMETHOD GetUseCondStore(bool *aUseCondStore) = 0;
  NS_IMETHOD SetUseCondStore(bool aUseCondStore) = 0;

  /* attribute boolean useCompressDeflate; */
  NS_IMETHOD GetUseCompressDeflate(bool *aUseCompressDeflate) = 0;
  NS_IMETHOD SetUseCompressDeflate(bool aUseCompressDeflate) = 0;

  /* attribute AString trashFolderName; */
  NS_IMETHOD GetTrashFolderName(nsAString & aTrashFolderName) = 0;
  NS_IMETHOD SetTrashFolderName(const nsAString & aTrashFolderName) = 0;

  /* attribute boolean downloadBodiesOnGetNewMail; */
  NS_IMETHOD GetDownloadBodiesOnGetNewMail(bool *aDownloadBodiesOnGetNewMail) = 0;
  NS_IMETHOD SetDownloadBodiesOnGetNewMail(bool aDownloadBodiesOnGetNewMail) = 0;

  /* attribute boolean autoSyncOfflineStores; */
  NS_IMETHOD GetAutoSyncOfflineStores(bool *aAutoSyncOfflineStores) = 0;
  NS_IMETHOD SetAutoSyncOfflineStores(bool aAutoSyncOfflineStores) = 0;

  /* attribute long autoSyncMaxAgeDays; */
  NS_IMETHOD GetAutoSyncMaxAgeDays(int32_t *aAutoSyncMaxAgeDays) = 0;
  NS_IMETHOD SetAutoSyncMaxAgeDays(int32_t aAutoSyncMaxAgeDays) = 0;

  /* void GetImapConnectionAndLoadUrl (in nsIImapUrl aImapUrl, in nsISupports aConsumer); */
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIImapUrl *aImapUrl, nsISupports *aConsumer) = 0;

  /* void RemoveConnection (in nsIImapProtocol aImapConnection); */
  NS_IMETHOD RemoveConnection(nsIImapProtocol *aImapConnection) = 0;

  /* void ResetNamespaceReferences (); */
  NS_IMETHOD ResetNamespaceReferences(void) = 0;

  /* void pseudoInterruptMsgLoad (in nsIMsgFolder aImapFolder, in nsIMsgWindow aMsgWindow, out boolean interrupted); */
  NS_IMETHOD PseudoInterruptMsgLoad(nsIMsgFolder *aImapFolder, nsIMsgWindow *aMsgWindow, bool *interrupted) = 0;

  /* void ResetConnection (in ACString folderName); */
  NS_IMETHOD ResetConnection(const nsACString & folderName) = 0;

  /* void CloseConnectionForFolder (in nsIMsgFolder aMsgFolder); */
  NS_IMETHOD CloseConnectionForFolder(nsIMsgFolder *aMsgFolder) = 0;

  /* void reDiscoverAllFolders (); */
  NS_IMETHOD ReDiscoverAllFolders(void) = 0;

  /* nsIURI subscribeToFolder (in AString name, in boolean subscribe); */
  NS_IMETHOD SubscribeToFolder(const nsAString & name, bool subscribe, nsIURI * *_retval) = 0;

  /* void GetNewMessagesForNonInboxFolders (in nsIMsgFolder aRootFolder, in nsIMsgWindow aWindow, in boolean forceAllFolders, in boolean performingBiff); */
  NS_IMETHOD GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, bool forceAllFolders, bool performingBiff) = 0;

  /* ACString PromptPassword (in nsIMsgWindow aWindow); */
  NS_IMETHOD PromptPassword(nsIMsgWindow *aWindow, nsACString & _retval) = 0;

  /* attribute boolean doingLsub; */
  NS_IMETHOD GetDoingLsub(bool *aDoingLsub) = 0;
  NS_IMETHOD SetDoingLsub(bool aDoingLsub) = 0;

  /* ACString getUriWithNamespacePrefixIfNecessary (in long namespaceType, in ACString originalUri); */
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(int32_t namespaceType, const nsACString & originalUri, nsACString & _retval) = 0;

  /* attribute boolean shuttingDown; */
  NS_IMETHOD GetShuttingDown(bool *aShuttingDown) = 0;
  NS_IMETHOD SetShuttingDown(bool aShuttingDown) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIImapIncomingServer, NS_IIMAPINCOMINGSERVER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPINCOMINGSERVER \
  NS_IMETHOD GetMaximumConnectionsNumber(int32_t *aMaximumConnectionsNumber); \
  NS_IMETHOD SetMaximumConnectionsNumber(int32_t aMaximumConnectionsNumber); \
  NS_IMETHOD GetTimeOutLimits(int32_t *aTimeOutLimits); \
  NS_IMETHOD SetTimeOutLimits(int32_t aTimeOutLimits); \
  NS_IMETHOD GetAdminUrl(nsACString & aAdminUrl); \
  NS_IMETHOD SetAdminUrl(const nsACString & aAdminUrl); \
  NS_IMETHOD GetServerDirectory(nsACString & aServerDirectory); \
  NS_IMETHOD SetServerDirectory(const nsACString & aServerDirectory); \
  NS_IMETHOD GetServerIDPref(nsACString & aServerIDPref); \
  NS_IMETHOD SetServerIDPref(const nsACString & aServerIDPref); \
  NS_IMETHOD GetCleanupInboxOnExit(bool *aCleanupInboxOnExit); \
  NS_IMETHOD SetCleanupInboxOnExit(bool aCleanupInboxOnExit); \
  NS_IMETHOD GetDeleteModel(nsMsgImapDeleteModel *aDeleteModel); \
  NS_IMETHOD SetDeleteModel(nsMsgImapDeleteModel aDeleteModel); \
  NS_IMETHOD GetDualUseFolders(bool *aDualUseFolders); \
  NS_IMETHOD SetDualUseFolders(bool aDualUseFolders); \
  NS_IMETHOD GetEmptyTrashThreshhold(int32_t *aEmptyTrashThreshhold); \
  NS_IMETHOD SetEmptyTrashThreshhold(int32_t aEmptyTrashThreshhold); \
  NS_IMETHOD GetPersonalNamespace(nsACString & aPersonalNamespace); \
  NS_IMETHOD SetPersonalNamespace(const nsACString & aPersonalNamespace); \
  NS_IMETHOD GetPublicNamespace(nsACString & aPublicNamespace); \
  NS_IMETHOD SetPublicNamespace(const nsACString & aPublicNamespace); \
  NS_IMETHOD GetOtherUsersNamespace(nsACString & aOtherUsersNamespace); \
  NS_IMETHOD SetOtherUsersNamespace(const nsACString & aOtherUsersNamespace); \
  NS_IMETHOD GetOfflineDownload(bool *aOfflineDownload); \
  NS_IMETHOD SetOfflineDownload(bool aOfflineDownload); \
  NS_IMETHOD GetOverrideNamespaces(bool *aOverrideNamespaces); \
  NS_IMETHOD SetOverrideNamespaces(bool aOverrideNamespaces); \
  NS_IMETHOD GetUsingSubscription(bool *aUsingSubscription); \
  NS_IMETHOD SetUsingSubscription(bool aUsingSubscription); \
  NS_IMETHOD GetManageMailAccountUrl(nsACString & aManageMailAccountUrl); \
  NS_IMETHOD SetManageMailAccountUrl(const nsACString & aManageMailAccountUrl); \
  NS_IMETHOD GetFetchByChunks(bool *aFetchByChunks); \
  NS_IMETHOD SetFetchByChunks(bool aFetchByChunks); \
  NS_IMETHOD GetMimePartsOnDemand(bool *aMimePartsOnDemand); \
  NS_IMETHOD SetMimePartsOnDemand(bool aMimePartsOnDemand); \
  NS_IMETHOD GetSendID(bool *aSendID); \
  NS_IMETHOD SetSendID(bool aSendID); \
  NS_IMETHOD GetIsAOLServer(bool *aIsAOLServer); \
  NS_IMETHOD SetIsAOLServer(bool aIsAOLServer); \
  NS_IMETHOD GetCapabilityACL(bool *aCapabilityACL); \
  NS_IMETHOD SetCapabilityACL(bool aCapabilityACL); \
  NS_IMETHOD GetCapabilityQuota(bool *aCapabilityQuota); \
  NS_IMETHOD SetCapabilityQuota(bool aCapabilityQuota); \
  NS_IMETHOD GetUseIdle(bool *aUseIdle); \
  NS_IMETHOD SetUseIdle(bool aUseIdle); \
  NS_IMETHOD GetCheckAllFoldersForNew(bool *aCheckAllFoldersForNew); \
  NS_IMETHOD SetCheckAllFoldersForNew(bool aCheckAllFoldersForNew); \
  NS_IMETHOD GetIsGMailServer(bool *aIsGMailServer); \
  NS_IMETHOD SetIsGMailServer(bool aIsGMailServer); \
  NS_IMETHOD GetUseCondStore(bool *aUseCondStore); \
  NS_IMETHOD SetUseCondStore(bool aUseCondStore); \
  NS_IMETHOD GetUseCompressDeflate(bool *aUseCompressDeflate); \
  NS_IMETHOD SetUseCompressDeflate(bool aUseCompressDeflate); \
  NS_IMETHOD GetTrashFolderName(nsAString & aTrashFolderName); \
  NS_IMETHOD SetTrashFolderName(const nsAString & aTrashFolderName); \
  NS_IMETHOD GetDownloadBodiesOnGetNewMail(bool *aDownloadBodiesOnGetNewMail); \
  NS_IMETHOD SetDownloadBodiesOnGetNewMail(bool aDownloadBodiesOnGetNewMail); \
  NS_IMETHOD GetAutoSyncOfflineStores(bool *aAutoSyncOfflineStores); \
  NS_IMETHOD SetAutoSyncOfflineStores(bool aAutoSyncOfflineStores); \
  NS_IMETHOD GetAutoSyncMaxAgeDays(int32_t *aAutoSyncMaxAgeDays); \
  NS_IMETHOD SetAutoSyncMaxAgeDays(int32_t aAutoSyncMaxAgeDays); \
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIImapUrl *aImapUrl, nsISupports *aConsumer); \
  NS_IMETHOD RemoveConnection(nsIImapProtocol *aImapConnection); \
  NS_IMETHOD ResetNamespaceReferences(void); \
  NS_IMETHOD PseudoInterruptMsgLoad(nsIMsgFolder *aImapFolder, nsIMsgWindow *aMsgWindow, bool *interrupted); \
  NS_IMETHOD ResetConnection(const nsACString & folderName); \
  NS_IMETHOD CloseConnectionForFolder(nsIMsgFolder *aMsgFolder); \
  NS_IMETHOD ReDiscoverAllFolders(void); \
  NS_IMETHOD SubscribeToFolder(const nsAString & name, bool subscribe, nsIURI * *_retval); \
  NS_IMETHOD GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, bool forceAllFolders, bool performingBiff); \
  NS_IMETHOD PromptPassword(nsIMsgWindow *aWindow, nsACString & _retval); \
  NS_IMETHOD GetDoingLsub(bool *aDoingLsub); \
  NS_IMETHOD SetDoingLsub(bool aDoingLsub); \
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(int32_t namespaceType, const nsACString & originalUri, nsACString & _retval); \
  NS_IMETHOD GetShuttingDown(bool *aShuttingDown); \
  NS_IMETHOD SetShuttingDown(bool aShuttingDown); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPINCOMINGSERVER(_to) \
  NS_IMETHOD GetMaximumConnectionsNumber(int32_t *aMaximumConnectionsNumber) { return _to GetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD SetMaximumConnectionsNumber(int32_t aMaximumConnectionsNumber) { return _to SetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD GetTimeOutLimits(int32_t *aTimeOutLimits) { return _to GetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD SetTimeOutLimits(int32_t aTimeOutLimits) { return _to SetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD GetAdminUrl(nsACString & aAdminUrl) { return _to GetAdminUrl(aAdminUrl); } \
  NS_IMETHOD SetAdminUrl(const nsACString & aAdminUrl) { return _to SetAdminUrl(aAdminUrl); } \
  NS_IMETHOD GetServerDirectory(nsACString & aServerDirectory) { return _to GetServerDirectory(aServerDirectory); } \
  NS_IMETHOD SetServerDirectory(const nsACString & aServerDirectory) { return _to SetServerDirectory(aServerDirectory); } \
  NS_IMETHOD GetServerIDPref(nsACString & aServerIDPref) { return _to GetServerIDPref(aServerIDPref); } \
  NS_IMETHOD SetServerIDPref(const nsACString & aServerIDPref) { return _to SetServerIDPref(aServerIDPref); } \
  NS_IMETHOD GetCleanupInboxOnExit(bool *aCleanupInboxOnExit) { return _to GetCleanupInboxOnExit(aCleanupInboxOnExit); } \
  NS_IMETHOD SetCleanupInboxOnExit(bool aCleanupInboxOnExit) { return _to SetCleanupInboxOnExit(aCleanupInboxOnExit); } \
  NS_IMETHOD GetDeleteModel(nsMsgImapDeleteModel *aDeleteModel) { return _to GetDeleteModel(aDeleteModel); } \
  NS_IMETHOD SetDeleteModel(nsMsgImapDeleteModel aDeleteModel) { return _to SetDeleteModel(aDeleteModel); } \
  NS_IMETHOD GetDualUseFolders(bool *aDualUseFolders) { return _to GetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD SetDualUseFolders(bool aDualUseFolders) { return _to SetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD GetEmptyTrashThreshhold(int32_t *aEmptyTrashThreshhold) { return _to GetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD SetEmptyTrashThreshhold(int32_t aEmptyTrashThreshhold) { return _to SetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD GetPersonalNamespace(nsACString & aPersonalNamespace) { return _to GetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD SetPersonalNamespace(const nsACString & aPersonalNamespace) { return _to SetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD GetPublicNamespace(nsACString & aPublicNamespace) { return _to GetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD SetPublicNamespace(const nsACString & aPublicNamespace) { return _to SetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD GetOtherUsersNamespace(nsACString & aOtherUsersNamespace) { return _to GetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD SetOtherUsersNamespace(const nsACString & aOtherUsersNamespace) { return _to SetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD GetOfflineDownload(bool *aOfflineDownload) { return _to GetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD SetOfflineDownload(bool aOfflineDownload) { return _to SetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD GetOverrideNamespaces(bool *aOverrideNamespaces) { return _to GetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD SetOverrideNamespaces(bool aOverrideNamespaces) { return _to SetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD GetUsingSubscription(bool *aUsingSubscription) { return _to GetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD SetUsingSubscription(bool aUsingSubscription) { return _to SetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD GetManageMailAccountUrl(nsACString & aManageMailAccountUrl) { return _to GetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD SetManageMailAccountUrl(const nsACString & aManageMailAccountUrl) { return _to SetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD GetFetchByChunks(bool *aFetchByChunks) { return _to GetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD SetFetchByChunks(bool aFetchByChunks) { return _to SetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD GetMimePartsOnDemand(bool *aMimePartsOnDemand) { return _to GetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD SetMimePartsOnDemand(bool aMimePartsOnDemand) { return _to SetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD GetSendID(bool *aSendID) { return _to GetSendID(aSendID); } \
  NS_IMETHOD SetSendID(bool aSendID) { return _to SetSendID(aSendID); } \
  NS_IMETHOD GetIsAOLServer(bool *aIsAOLServer) { return _to GetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD SetIsAOLServer(bool aIsAOLServer) { return _to SetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD GetCapabilityACL(bool *aCapabilityACL) { return _to GetCapabilityACL(aCapabilityACL); } \
  NS_IMETHOD SetCapabilityACL(bool aCapabilityACL) { return _to SetCapabilityACL(aCapabilityACL); } \
  NS_IMETHOD GetCapabilityQuota(bool *aCapabilityQuota) { return _to GetCapabilityQuota(aCapabilityQuota); } \
  NS_IMETHOD SetCapabilityQuota(bool aCapabilityQuota) { return _to SetCapabilityQuota(aCapabilityQuota); } \
  NS_IMETHOD GetUseIdle(bool *aUseIdle) { return _to GetUseIdle(aUseIdle); } \
  NS_IMETHOD SetUseIdle(bool aUseIdle) { return _to SetUseIdle(aUseIdle); } \
  NS_IMETHOD GetCheckAllFoldersForNew(bool *aCheckAllFoldersForNew) { return _to GetCheckAllFoldersForNew(aCheckAllFoldersForNew); } \
  NS_IMETHOD SetCheckAllFoldersForNew(bool aCheckAllFoldersForNew) { return _to SetCheckAllFoldersForNew(aCheckAllFoldersForNew); } \
  NS_IMETHOD GetIsGMailServer(bool *aIsGMailServer) { return _to GetIsGMailServer(aIsGMailServer); } \
  NS_IMETHOD SetIsGMailServer(bool aIsGMailServer) { return _to SetIsGMailServer(aIsGMailServer); } \
  NS_IMETHOD GetUseCondStore(bool *aUseCondStore) { return _to GetUseCondStore(aUseCondStore); } \
  NS_IMETHOD SetUseCondStore(bool aUseCondStore) { return _to SetUseCondStore(aUseCondStore); } \
  NS_IMETHOD GetUseCompressDeflate(bool *aUseCompressDeflate) { return _to GetUseCompressDeflate(aUseCompressDeflate); } \
  NS_IMETHOD SetUseCompressDeflate(bool aUseCompressDeflate) { return _to SetUseCompressDeflate(aUseCompressDeflate); } \
  NS_IMETHOD GetTrashFolderName(nsAString & aTrashFolderName) { return _to GetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD SetTrashFolderName(const nsAString & aTrashFolderName) { return _to SetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD GetDownloadBodiesOnGetNewMail(bool *aDownloadBodiesOnGetNewMail) { return _to GetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD SetDownloadBodiesOnGetNewMail(bool aDownloadBodiesOnGetNewMail) { return _to SetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD GetAutoSyncOfflineStores(bool *aAutoSyncOfflineStores) { return _to GetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD SetAutoSyncOfflineStores(bool aAutoSyncOfflineStores) { return _to SetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD GetAutoSyncMaxAgeDays(int32_t *aAutoSyncMaxAgeDays) { return _to GetAutoSyncMaxAgeDays(aAutoSyncMaxAgeDays); } \
  NS_IMETHOD SetAutoSyncMaxAgeDays(int32_t aAutoSyncMaxAgeDays) { return _to SetAutoSyncMaxAgeDays(aAutoSyncMaxAgeDays); } \
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIImapUrl *aImapUrl, nsISupports *aConsumer) { return _to GetImapConnectionAndLoadUrl(aImapUrl, aConsumer); } \
  NS_IMETHOD RemoveConnection(nsIImapProtocol *aImapConnection) { return _to RemoveConnection(aImapConnection); } \
  NS_IMETHOD ResetNamespaceReferences(void) { return _to ResetNamespaceReferences(); } \
  NS_IMETHOD PseudoInterruptMsgLoad(nsIMsgFolder *aImapFolder, nsIMsgWindow *aMsgWindow, bool *interrupted) { return _to PseudoInterruptMsgLoad(aImapFolder, aMsgWindow, interrupted); } \
  NS_IMETHOD ResetConnection(const nsACString & folderName) { return _to ResetConnection(folderName); } \
  NS_IMETHOD CloseConnectionForFolder(nsIMsgFolder *aMsgFolder) { return _to CloseConnectionForFolder(aMsgFolder); } \
  NS_IMETHOD ReDiscoverAllFolders(void) { return _to ReDiscoverAllFolders(); } \
  NS_IMETHOD SubscribeToFolder(const nsAString & name, bool subscribe, nsIURI * *_retval) { return _to SubscribeToFolder(name, subscribe, _retval); } \
  NS_IMETHOD GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, bool forceAllFolders, bool performingBiff) { return _to GetNewMessagesForNonInboxFolders(aRootFolder, aWindow, forceAllFolders, performingBiff); } \
  NS_IMETHOD PromptPassword(nsIMsgWindow *aWindow, nsACString & _retval) { return _to PromptPassword(aWindow, _retval); } \
  NS_IMETHOD GetDoingLsub(bool *aDoingLsub) { return _to GetDoingLsub(aDoingLsub); } \
  NS_IMETHOD SetDoingLsub(bool aDoingLsub) { return _to SetDoingLsub(aDoingLsub); } \
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(int32_t namespaceType, const nsACString & originalUri, nsACString & _retval) { return _to GetUriWithNamespacePrefixIfNecessary(namespaceType, originalUri, _retval); } \
  NS_IMETHOD GetShuttingDown(bool *aShuttingDown) { return _to GetShuttingDown(aShuttingDown); } \
  NS_IMETHOD SetShuttingDown(bool aShuttingDown) { return _to SetShuttingDown(aShuttingDown); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIIMAPINCOMINGSERVER(_to) \
  NS_IMETHOD GetMaximumConnectionsNumber(int32_t *aMaximumConnectionsNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD SetMaximumConnectionsNumber(int32_t aMaximumConnectionsNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD GetTimeOutLimits(int32_t *aTimeOutLimits) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD SetTimeOutLimits(int32_t aTimeOutLimits) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD GetAdminUrl(nsACString & aAdminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdminUrl(aAdminUrl); } \
  NS_IMETHOD SetAdminUrl(const nsACString & aAdminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAdminUrl(aAdminUrl); } \
  NS_IMETHOD GetServerDirectory(nsACString & aServerDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerDirectory(aServerDirectory); } \
  NS_IMETHOD SetServerDirectory(const nsACString & aServerDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerDirectory(aServerDirectory); } \
  NS_IMETHOD GetServerIDPref(nsACString & aServerIDPref) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerIDPref(aServerIDPref); } \
  NS_IMETHOD SetServerIDPref(const nsACString & aServerIDPref) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerIDPref(aServerIDPref); } \
  NS_IMETHOD GetCleanupInboxOnExit(bool *aCleanupInboxOnExit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCleanupInboxOnExit(aCleanupInboxOnExit); } \
  NS_IMETHOD SetCleanupInboxOnExit(bool aCleanupInboxOnExit) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCleanupInboxOnExit(aCleanupInboxOnExit); } \
  NS_IMETHOD GetDeleteModel(nsMsgImapDeleteModel *aDeleteModel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeleteModel(aDeleteModel); } \
  NS_IMETHOD SetDeleteModel(nsMsgImapDeleteModel aDeleteModel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDeleteModel(aDeleteModel); } \
  NS_IMETHOD GetDualUseFolders(bool *aDualUseFolders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD SetDualUseFolders(bool aDualUseFolders) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD GetEmptyTrashThreshhold(int32_t *aEmptyTrashThreshhold) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD SetEmptyTrashThreshhold(int32_t aEmptyTrashThreshhold) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD GetPersonalNamespace(nsACString & aPersonalNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD SetPersonalNamespace(const nsACString & aPersonalNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD GetPublicNamespace(nsACString & aPublicNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD SetPublicNamespace(const nsACString & aPublicNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD GetOtherUsersNamespace(nsACString & aOtherUsersNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD SetOtherUsersNamespace(const nsACString & aOtherUsersNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD GetOfflineDownload(bool *aOfflineDownload) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD SetOfflineDownload(bool aOfflineDownload) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD GetOverrideNamespaces(bool *aOverrideNamespaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD SetOverrideNamespaces(bool aOverrideNamespaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD GetUsingSubscription(bool *aUsingSubscription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD SetUsingSubscription(bool aUsingSubscription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD GetManageMailAccountUrl(nsACString & aManageMailAccountUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD SetManageMailAccountUrl(const nsACString & aManageMailAccountUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD GetFetchByChunks(bool *aFetchByChunks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD SetFetchByChunks(bool aFetchByChunks) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD GetMimePartsOnDemand(bool *aMimePartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD SetMimePartsOnDemand(bool aMimePartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD GetSendID(bool *aSendID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSendID(aSendID); } \
  NS_IMETHOD SetSendID(bool aSendID) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSendID(aSendID); } \
  NS_IMETHOD GetIsAOLServer(bool *aIsAOLServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD SetIsAOLServer(bool aIsAOLServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD GetCapabilityACL(bool *aCapabilityACL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCapabilityACL(aCapabilityACL); } \
  NS_IMETHOD SetCapabilityACL(bool aCapabilityACL) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCapabilityACL(aCapabilityACL); } \
  NS_IMETHOD GetCapabilityQuota(bool *aCapabilityQuota) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCapabilityQuota(aCapabilityQuota); } \
  NS_IMETHOD SetCapabilityQuota(bool aCapabilityQuota) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCapabilityQuota(aCapabilityQuota); } \
  NS_IMETHOD GetUseIdle(bool *aUseIdle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseIdle(aUseIdle); } \
  NS_IMETHOD SetUseIdle(bool aUseIdle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseIdle(aUseIdle); } \
  NS_IMETHOD GetCheckAllFoldersForNew(bool *aCheckAllFoldersForNew) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCheckAllFoldersForNew(aCheckAllFoldersForNew); } \
  NS_IMETHOD SetCheckAllFoldersForNew(bool aCheckAllFoldersForNew) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCheckAllFoldersForNew(aCheckAllFoldersForNew); } \
  NS_IMETHOD GetIsGMailServer(bool *aIsGMailServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsGMailServer(aIsGMailServer); } \
  NS_IMETHOD SetIsGMailServer(bool aIsGMailServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsGMailServer(aIsGMailServer); } \
  NS_IMETHOD GetUseCondStore(bool *aUseCondStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseCondStore(aUseCondStore); } \
  NS_IMETHOD SetUseCondStore(bool aUseCondStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseCondStore(aUseCondStore); } \
  NS_IMETHOD GetUseCompressDeflate(bool *aUseCompressDeflate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseCompressDeflate(aUseCompressDeflate); } \
  NS_IMETHOD SetUseCompressDeflate(bool aUseCompressDeflate) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseCompressDeflate(aUseCompressDeflate); } \
  NS_IMETHOD GetTrashFolderName(nsAString & aTrashFolderName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD SetTrashFolderName(const nsAString & aTrashFolderName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD GetDownloadBodiesOnGetNewMail(bool *aDownloadBodiesOnGetNewMail) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD SetDownloadBodiesOnGetNewMail(bool aDownloadBodiesOnGetNewMail) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD GetAutoSyncOfflineStores(bool *aAutoSyncOfflineStores) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD SetAutoSyncOfflineStores(bool aAutoSyncOfflineStores) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD GetAutoSyncMaxAgeDays(int32_t *aAutoSyncMaxAgeDays) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoSyncMaxAgeDays(aAutoSyncMaxAgeDays); } \
  NS_IMETHOD SetAutoSyncMaxAgeDays(int32_t aAutoSyncMaxAgeDays) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoSyncMaxAgeDays(aAutoSyncMaxAgeDays); } \
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIImapUrl *aImapUrl, nsISupports *aConsumer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapConnectionAndLoadUrl(aImapUrl, aConsumer); } \
  NS_IMETHOD RemoveConnection(nsIImapProtocol *aImapConnection) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveConnection(aImapConnection); } \
  NS_IMETHOD ResetNamespaceReferences(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetNamespaceReferences(); } \
  NS_IMETHOD PseudoInterruptMsgLoad(nsIMsgFolder *aImapFolder, nsIMsgWindow *aMsgWindow, bool *interrupted) { return !_to ? NS_ERROR_NULL_POINTER : _to->PseudoInterruptMsgLoad(aImapFolder, aMsgWindow, interrupted); } \
  NS_IMETHOD ResetConnection(const nsACString & folderName) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetConnection(folderName); } \
  NS_IMETHOD CloseConnectionForFolder(nsIMsgFolder *aMsgFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseConnectionForFolder(aMsgFolder); } \
  NS_IMETHOD ReDiscoverAllFolders(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReDiscoverAllFolders(); } \
  NS_IMETHOD SubscribeToFolder(const nsAString & name, bool subscribe, nsIURI * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->SubscribeToFolder(name, subscribe, _retval); } \
  NS_IMETHOD GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, bool forceAllFolders, bool performingBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewMessagesForNonInboxFolders(aRootFolder, aWindow, forceAllFolders, performingBiff); } \
  NS_IMETHOD PromptPassword(nsIMsgWindow *aWindow, nsACString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->PromptPassword(aWindow, _retval); } \
  NS_IMETHOD GetDoingLsub(bool *aDoingLsub) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDoingLsub(aDoingLsub); } \
  NS_IMETHOD SetDoingLsub(bool aDoingLsub) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDoingLsub(aDoingLsub); } \
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(int32_t namespaceType, const nsACString & originalUri, nsACString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUriWithNamespacePrefixIfNecessary(namespaceType, originalUri, _retval); } \
  NS_IMETHOD GetShuttingDown(bool *aShuttingDown) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShuttingDown(aShuttingDown); } \
  NS_IMETHOD SetShuttingDown(bool aShuttingDown) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetShuttingDown(aShuttingDown); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsImapIncomingServer : public nsIImapIncomingServer
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIIMAPINCOMINGSERVER

  nsImapIncomingServer();

private:
  ~nsImapIncomingServer();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsImapIncomingServer, nsIImapIncomingServer)

nsImapIncomingServer::nsImapIncomingServer()
{
  /* member initializers and constructor code */
}

nsImapIncomingServer::~nsImapIncomingServer()
{
  /* destructor code */
}

/* attribute long maximumConnectionsNumber; */
NS_IMETHODIMP nsImapIncomingServer::GetMaximumConnectionsNumber(int32_t *aMaximumConnectionsNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetMaximumConnectionsNumber(int32_t aMaximumConnectionsNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long timeOutLimits; */
NS_IMETHODIMP nsImapIncomingServer::GetTimeOutLimits(int32_t *aTimeOutLimits)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetTimeOutLimits(int32_t aTimeOutLimits)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString adminUrl; */
NS_IMETHODIMP nsImapIncomingServer::GetAdminUrl(nsACString & aAdminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetAdminUrl(const nsACString & aAdminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString serverDirectory; */
NS_IMETHODIMP nsImapIncomingServer::GetServerDirectory(nsACString & aServerDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetServerDirectory(const nsACString & aServerDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString serverIDPref; */
NS_IMETHODIMP nsImapIncomingServer::GetServerIDPref(nsACString & aServerIDPref)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetServerIDPref(const nsACString & aServerIDPref)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean cleanupInboxOnExit; */
NS_IMETHODIMP nsImapIncomingServer::GetCleanupInboxOnExit(bool *aCleanupInboxOnExit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetCleanupInboxOnExit(bool aCleanupInboxOnExit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgImapDeleteModel deleteModel; */
NS_IMETHODIMP nsImapIncomingServer::GetDeleteModel(nsMsgImapDeleteModel *aDeleteModel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetDeleteModel(nsMsgImapDeleteModel aDeleteModel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean dualUseFolders; */
NS_IMETHODIMP nsImapIncomingServer::GetDualUseFolders(bool *aDualUseFolders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetDualUseFolders(bool aDualUseFolders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long emptyTrashThreshhold; */
NS_IMETHODIMP nsImapIncomingServer::GetEmptyTrashThreshhold(int32_t *aEmptyTrashThreshhold)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetEmptyTrashThreshhold(int32_t aEmptyTrashThreshhold)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString personalNamespace; */
NS_IMETHODIMP nsImapIncomingServer::GetPersonalNamespace(nsACString & aPersonalNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetPersonalNamespace(const nsACString & aPersonalNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString publicNamespace; */
NS_IMETHODIMP nsImapIncomingServer::GetPublicNamespace(nsACString & aPublicNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetPublicNamespace(const nsACString & aPublicNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString otherUsersNamespace; */
NS_IMETHODIMP nsImapIncomingServer::GetOtherUsersNamespace(nsACString & aOtherUsersNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetOtherUsersNamespace(const nsACString & aOtherUsersNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean offlineDownload; */
NS_IMETHODIMP nsImapIncomingServer::GetOfflineDownload(bool *aOfflineDownload)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetOfflineDownload(bool aOfflineDownload)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean overrideNamespaces; */
NS_IMETHODIMP nsImapIncomingServer::GetOverrideNamespaces(bool *aOverrideNamespaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetOverrideNamespaces(bool aOverrideNamespaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean usingSubscription; */
NS_IMETHODIMP nsImapIncomingServer::GetUsingSubscription(bool *aUsingSubscription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetUsingSubscription(bool aUsingSubscription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString manageMailAccountUrl; */
NS_IMETHODIMP nsImapIncomingServer::GetManageMailAccountUrl(nsACString & aManageMailAccountUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetManageMailAccountUrl(const nsACString & aManageMailAccountUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean fetchByChunks; */
NS_IMETHODIMP nsImapIncomingServer::GetFetchByChunks(bool *aFetchByChunks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetFetchByChunks(bool aFetchByChunks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean mimePartsOnDemand; */
NS_IMETHODIMP nsImapIncomingServer::GetMimePartsOnDemand(bool *aMimePartsOnDemand)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetMimePartsOnDemand(bool aMimePartsOnDemand)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean sendID; */
NS_IMETHODIMP nsImapIncomingServer::GetSendID(bool *aSendID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetSendID(bool aSendID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isAOLServer; */
NS_IMETHODIMP nsImapIncomingServer::GetIsAOLServer(bool *aIsAOLServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetIsAOLServer(bool aIsAOLServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean capabilityACL; */
NS_IMETHODIMP nsImapIncomingServer::GetCapabilityACL(bool *aCapabilityACL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetCapabilityACL(bool aCapabilityACL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean capabilityQuota; */
NS_IMETHODIMP nsImapIncomingServer::GetCapabilityQuota(bool *aCapabilityQuota)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetCapabilityQuota(bool aCapabilityQuota)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useIdle; */
NS_IMETHODIMP nsImapIncomingServer::GetUseIdle(bool *aUseIdle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetUseIdle(bool aUseIdle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean checkAllFoldersForNew; */
NS_IMETHODIMP nsImapIncomingServer::GetCheckAllFoldersForNew(bool *aCheckAllFoldersForNew)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetCheckAllFoldersForNew(bool aCheckAllFoldersForNew)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isGMailServer; */
NS_IMETHODIMP nsImapIncomingServer::GetIsGMailServer(bool *aIsGMailServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetIsGMailServer(bool aIsGMailServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useCondStore; */
NS_IMETHODIMP nsImapIncomingServer::GetUseCondStore(bool *aUseCondStore)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetUseCondStore(bool aUseCondStore)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useCompressDeflate; */
NS_IMETHODIMP nsImapIncomingServer::GetUseCompressDeflate(bool *aUseCompressDeflate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetUseCompressDeflate(bool aUseCompressDeflate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString trashFolderName; */
NS_IMETHODIMP nsImapIncomingServer::GetTrashFolderName(nsAString & aTrashFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetTrashFolderName(const nsAString & aTrashFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean downloadBodiesOnGetNewMail; */
NS_IMETHODIMP nsImapIncomingServer::GetDownloadBodiesOnGetNewMail(bool *aDownloadBodiesOnGetNewMail)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetDownloadBodiesOnGetNewMail(bool aDownloadBodiesOnGetNewMail)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean autoSyncOfflineStores; */
NS_IMETHODIMP nsImapIncomingServer::GetAutoSyncOfflineStores(bool *aAutoSyncOfflineStores)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetAutoSyncOfflineStores(bool aAutoSyncOfflineStores)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long autoSyncMaxAgeDays; */
NS_IMETHODIMP nsImapIncomingServer::GetAutoSyncMaxAgeDays(int32_t *aAutoSyncMaxAgeDays)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetAutoSyncMaxAgeDays(int32_t aAutoSyncMaxAgeDays)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetImapConnectionAndLoadUrl (in nsIImapUrl aImapUrl, in nsISupports aConsumer); */
NS_IMETHODIMP nsImapIncomingServer::GetImapConnectionAndLoadUrl(nsIImapUrl *aImapUrl, nsISupports *aConsumer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void RemoveConnection (in nsIImapProtocol aImapConnection); */
NS_IMETHODIMP nsImapIncomingServer::RemoveConnection(nsIImapProtocol *aImapConnection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ResetNamespaceReferences (); */
NS_IMETHODIMP nsImapIncomingServer::ResetNamespaceReferences()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void pseudoInterruptMsgLoad (in nsIMsgFolder aImapFolder, in nsIMsgWindow aMsgWindow, out boolean interrupted); */
NS_IMETHODIMP nsImapIncomingServer::PseudoInterruptMsgLoad(nsIMsgFolder *aImapFolder, nsIMsgWindow *aMsgWindow, bool *interrupted)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ResetConnection (in ACString folderName); */
NS_IMETHODIMP nsImapIncomingServer::ResetConnection(const nsACString & folderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void CloseConnectionForFolder (in nsIMsgFolder aMsgFolder); */
NS_IMETHODIMP nsImapIncomingServer::CloseConnectionForFolder(nsIMsgFolder *aMsgFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reDiscoverAllFolders (); */
NS_IMETHODIMP nsImapIncomingServer::ReDiscoverAllFolders()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIURI subscribeToFolder (in AString name, in boolean subscribe); */
NS_IMETHODIMP nsImapIncomingServer::SubscribeToFolder(const nsAString & name, bool subscribe, nsIURI * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetNewMessagesForNonInboxFolders (in nsIMsgFolder aRootFolder, in nsIMsgWindow aWindow, in boolean forceAllFolders, in boolean performingBiff); */
NS_IMETHODIMP nsImapIncomingServer::GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, bool forceAllFolders, bool performingBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString PromptPassword (in nsIMsgWindow aWindow); */
NS_IMETHODIMP nsImapIncomingServer::PromptPassword(nsIMsgWindow *aWindow, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean doingLsub; */
NS_IMETHODIMP nsImapIncomingServer::GetDoingLsub(bool *aDoingLsub)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetDoingLsub(bool aDoingLsub)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getUriWithNamespacePrefixIfNecessary (in long namespaceType, in ACString originalUri); */
NS_IMETHODIMP nsImapIncomingServer::GetUriWithNamespacePrefixIfNecessary(int32_t namespaceType, const nsACString & originalUri, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean shuttingDown; */
NS_IMETHODIMP nsImapIncomingServer::GetShuttingDown(bool *aShuttingDown)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetShuttingDown(bool aShuttingDown)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIImapIncomingServer_h__ */
