/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM 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 nsIEventQueue; /* forward declaration */

class nsIImapProtocol; /* forward declaration */

class nsISupportsArray; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

typedef PRInt32 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_DEFINE_STATIC_IID_ACCESSOR(NS_MSGIMAPDELETEMODELS_IID)

  enum { IMAPDelete = 0 };

  enum { MoveToTrash = 1 };

  enum { DeleteNoTrash = 2 };

};

/* 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 "a54c32c7-17ae-4733-b551-1725f15044f6"

#define NS_IIMAPINCOMINGSERVER_IID \
  {0xa54c32c7, 0x17ae, 0x4733, \
    { 0xb5, 0x51, 0x17, 0x25, 0xf1, 0x50, 0x44, 0xf6 }}

class NS_NO_VTABLE nsIImapIncomingServer : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IIMAPINCOMINGSERVER_IID)

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

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

  /* attribute string adminUrl; */
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl) = 0;
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl) = 0;

  /* attribute string serverDirectory; */
  NS_IMETHOD GetServerDirectory(char * *aServerDirectory) = 0;
  NS_IMETHOD SetServerDirectory(const char * aServerDirectory) = 0;

  /* attribute long capabilityPref; */
  NS_IMETHOD GetCapabilityPref(PRInt32 *aCapabilityPref) = 0;
  NS_IMETHOD SetCapabilityPref(PRInt32 aCapabilityPref) = 0;

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

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

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

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

  /* attribute string personalNamespace; */
  NS_IMETHOD GetPersonalNamespace(char * *aPersonalNamespace) = 0;
  NS_IMETHOD SetPersonalNamespace(const char * aPersonalNamespace) = 0;

  /* attribute string publicNamespace; */
  NS_IMETHOD GetPublicNamespace(char * *aPublicNamespace) = 0;
  NS_IMETHOD SetPublicNamespace(const char * aPublicNamespace) = 0;

  /* attribute string otherUsersNamespace; */
  NS_IMETHOD GetOtherUsersNamespace(char * *aOtherUsersNamespace) = 0;
  NS_IMETHOD SetOtherUsersNamespace(const char * aOtherUsersNamespace) = 0;

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

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

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

  /* attribute string manageMailAccountUrl; */
  NS_IMETHOD GetManageMailAccountUrl(char * *aManageMailAccountUrl) = 0;
  NS_IMETHOD SetManageMailAccountUrl(const char * aManageMailAccountUrl) = 0;

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

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

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

  /* attribute boolean aOLMailboxView; */
  NS_IMETHOD GetAOLMailboxView(PRBool *aAOLMailboxView) = 0;
  NS_IMETHOD SetAOLMailboxView(PRBool aAOLMailboxView) = 0;

  /* attribute boolean storeReadMailInPFC; */
  NS_IMETHOD GetStoreReadMailInPFC(PRBool *aStoreReadMailInPFC) = 0;
  NS_IMETHOD SetStoreReadMailInPFC(PRBool aStoreReadMailInPFC) = 0;

  /* attribute boolean storeSentMailInPFC; */
  NS_IMETHOD GetStoreSentMailInPFC(PRBool *aStoreSentMailInPFC) = 0;
  NS_IMETHOD SetStoreSentMailInPFC(PRBool aStoreSentMailInPFC) = 0;

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

  /* attribute wstring trashFolderName; */
  NS_IMETHOD GetTrashFolderName(PRUnichar * *aTrashFolderName) = 0;
  NS_IMETHOD SetTrashFolderName(const PRUnichar * aTrashFolderName) = 0;

  /* boolean getIsPFC (in string folderName); */
  NS_IMETHOD GetIsPFC(const char *folderName, PRBool *_retval) = 0;

  /* nsIMsgFolder getPFC (in boolean createIfMissing); */
  NS_IMETHOD GetPFC(PRBool createIfMissing, nsIMsgFolder **_retval) = 0;

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

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

  /* void GetImapConnectionAndLoadUrl (in nsIEventQueue aClientEventQueue, in nsIImapUrl aImapUrl, in nsISupports aConsumer); */
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIEventQueue *aClientEventQueue, 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, PRBool *interrupted) = 0;

  /* void ResetConnection (in string folderName); */
  NS_IMETHOD ResetConnection(const char *folderName) = 0;

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

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

  /* nsIURI subscribeToFolder (in wstring name, in boolean subscribe); */
  NS_IMETHOD SubscribeToFolder(const PRUnichar *name, PRBool subscribe, nsIURI **_retval) = 0;

  /* nsIMsgFolder GetReadMailPFC (in boolean createIfMissing); */
  NS_IMETHOD GetReadMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval) = 0;

  /* nsIMsgFolder GetSentMailPFC (in boolean createIfMissing); */
  NS_IMETHOD GetSentMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval) = 0;

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

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

  /* void allowFolderConversion (out boolean allowConversion); */
  NS_IMETHOD AllowFolderConversion(PRBool *allowConversion) = 0;

  /* void convertFolderName (in string originalName, out wstring convertedName); */
  NS_IMETHOD ConvertFolderName(const char *originalName, PRUnichar **convertedName) = 0;

  /* void hideFolderName (in string originalName, out boolean hideFolder); */
  NS_IMETHOD HideFolderName(const char *originalName, PRBool *hideFolder) = 0;

  /* string getTrashFolderByRedirectorType (); */
  NS_IMETHOD GetTrashFolderByRedirectorType(char **_retval) = 0;

  /* attribute string redirectorType; */
  NS_IMETHOD GetRedirectorType(char * *aRedirectorType) = 0;
  NS_IMETHOD SetRedirectorType(const char * aRedirectorType) = 0;

  /* string getUriWithNamespacePrefixIfNecessary (in long namespaceType, in string originalUri); */
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(PRInt32 namespaceType, const char *originalUri, char **_retval) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPINCOMINGSERVER \
  NS_IMETHOD GetMaximumConnectionsNumber(PRInt32 *aMaximumConnectionsNumber); \
  NS_IMETHOD SetMaximumConnectionsNumber(PRInt32 aMaximumConnectionsNumber); \
  NS_IMETHOD GetTimeOutLimits(PRInt32 *aTimeOutLimits); \
  NS_IMETHOD SetTimeOutLimits(PRInt32 aTimeOutLimits); \
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl); \
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl); \
  NS_IMETHOD GetServerDirectory(char * *aServerDirectory); \
  NS_IMETHOD SetServerDirectory(const char * aServerDirectory); \
  NS_IMETHOD GetCapabilityPref(PRInt32 *aCapabilityPref); \
  NS_IMETHOD SetCapabilityPref(PRInt32 aCapabilityPref); \
  NS_IMETHOD GetCleanupInboxOnExit(PRBool *aCleanupInboxOnExit); \
  NS_IMETHOD SetCleanupInboxOnExit(PRBool aCleanupInboxOnExit); \
  NS_IMETHOD GetDeleteModel(nsMsgImapDeleteModel *aDeleteModel); \
  NS_IMETHOD SetDeleteModel(nsMsgImapDeleteModel aDeleteModel); \
  NS_IMETHOD GetDualUseFolders(PRBool *aDualUseFolders); \
  NS_IMETHOD SetDualUseFolders(PRBool aDualUseFolders); \
  NS_IMETHOD GetEmptyTrashThreshhold(PRInt32 *aEmptyTrashThreshhold); \
  NS_IMETHOD SetEmptyTrashThreshhold(PRInt32 aEmptyTrashThreshhold); \
  NS_IMETHOD GetPersonalNamespace(char * *aPersonalNamespace); \
  NS_IMETHOD SetPersonalNamespace(const char * aPersonalNamespace); \
  NS_IMETHOD GetPublicNamespace(char * *aPublicNamespace); \
  NS_IMETHOD SetPublicNamespace(const char * aPublicNamespace); \
  NS_IMETHOD GetOtherUsersNamespace(char * *aOtherUsersNamespace); \
  NS_IMETHOD SetOtherUsersNamespace(const char * aOtherUsersNamespace); \
  NS_IMETHOD GetOfflineDownload(PRBool *aOfflineDownload); \
  NS_IMETHOD SetOfflineDownload(PRBool aOfflineDownload); \
  NS_IMETHOD GetOverrideNamespaces(PRBool *aOverrideNamespaces); \
  NS_IMETHOD SetOverrideNamespaces(PRBool aOverrideNamespaces); \
  NS_IMETHOD GetUsingSubscription(PRBool *aUsingSubscription); \
  NS_IMETHOD SetUsingSubscription(PRBool aUsingSubscription); \
  NS_IMETHOD GetManageMailAccountUrl(char * *aManageMailAccountUrl); \
  NS_IMETHOD SetManageMailAccountUrl(const char * aManageMailAccountUrl); \
  NS_IMETHOD GetFetchByChunks(PRBool *aFetchByChunks); \
  NS_IMETHOD SetFetchByChunks(PRBool aFetchByChunks); \
  NS_IMETHOD GetMimePartsOnDemand(PRBool *aMimePartsOnDemand); \
  NS_IMETHOD SetMimePartsOnDemand(PRBool aMimePartsOnDemand); \
  NS_IMETHOD GetIsAOLServer(PRBool *aIsAOLServer); \
  NS_IMETHOD SetIsAOLServer(PRBool aIsAOLServer); \
  NS_IMETHOD GetAOLMailboxView(PRBool *aAOLMailboxView); \
  NS_IMETHOD SetAOLMailboxView(PRBool aAOLMailboxView); \
  NS_IMETHOD GetStoreReadMailInPFC(PRBool *aStoreReadMailInPFC); \
  NS_IMETHOD SetStoreReadMailInPFC(PRBool aStoreReadMailInPFC); \
  NS_IMETHOD GetStoreSentMailInPFC(PRBool *aStoreSentMailInPFC); \
  NS_IMETHOD SetStoreSentMailInPFC(PRBool aStoreSentMailInPFC); \
  NS_IMETHOD GetUseIdle(PRBool *aUseIdle); \
  NS_IMETHOD SetUseIdle(PRBool aUseIdle); \
  NS_IMETHOD GetTrashFolderName(PRUnichar * *aTrashFolderName); \
  NS_IMETHOD SetTrashFolderName(const PRUnichar * aTrashFolderName); \
  NS_IMETHOD GetIsPFC(const char *folderName, PRBool *_retval); \
  NS_IMETHOD GetPFC(PRBool createIfMissing, nsIMsgFolder **_retval); \
  NS_IMETHOD GetDownloadBodiesOnGetNewMail(PRBool *aDownloadBodiesOnGetNewMail); \
  NS_IMETHOD SetDownloadBodiesOnGetNewMail(PRBool aDownloadBodiesOnGetNewMail); \
  NS_IMETHOD GetAutoSyncOfflineStores(PRBool *aAutoSyncOfflineStores); \
  NS_IMETHOD SetAutoSyncOfflineStores(PRBool aAutoSyncOfflineStores); \
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIEventQueue *aClientEventQueue, nsIImapUrl *aImapUrl, nsISupports *aConsumer); \
  NS_IMETHOD RemoveConnection(nsIImapProtocol *aImapConnection); \
  NS_IMETHOD ResetNamespaceReferences(void); \
  NS_IMETHOD PseudoInterruptMsgLoad(nsIMsgFolder *aImapFolder, nsIMsgWindow *aMsgWindow, PRBool *interrupted); \
  NS_IMETHOD ResetConnection(const char *folderName); \
  NS_IMETHOD CloseConnectionForFolder(nsIMsgFolder *aMsgFolder); \
  NS_IMETHOD ReDiscoverAllFolders(void); \
  NS_IMETHOD SubscribeToFolder(const PRUnichar *name, PRBool subscribe, nsIURI **_retval); \
  NS_IMETHOD GetReadMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval); \
  NS_IMETHOD GetSentMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval); \
  NS_IMETHOD GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, PRBool forceAllFolders, PRBool performingBiff); \
  NS_IMETHOD GetDoingLsub(PRBool *aDoingLsub); \
  NS_IMETHOD SetDoingLsub(PRBool aDoingLsub); \
  NS_IMETHOD AllowFolderConversion(PRBool *allowConversion); \
  NS_IMETHOD ConvertFolderName(const char *originalName, PRUnichar **convertedName); \
  NS_IMETHOD HideFolderName(const char *originalName, PRBool *hideFolder); \
  NS_IMETHOD GetTrashFolderByRedirectorType(char **_retval); \
  NS_IMETHOD GetRedirectorType(char * *aRedirectorType); \
  NS_IMETHOD SetRedirectorType(const char * aRedirectorType); \
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(PRInt32 namespaceType, const char *originalUri, char **_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPINCOMINGSERVER(_to) \
  NS_IMETHOD GetMaximumConnectionsNumber(PRInt32 *aMaximumConnectionsNumber) { return _to GetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD SetMaximumConnectionsNumber(PRInt32 aMaximumConnectionsNumber) { return _to SetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD GetTimeOutLimits(PRInt32 *aTimeOutLimits) { return _to GetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD SetTimeOutLimits(PRInt32 aTimeOutLimits) { return _to SetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl) { return _to GetAdminUrl(aAdminUrl); } \
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl) { return _to SetAdminUrl(aAdminUrl); } \
  NS_IMETHOD GetServerDirectory(char * *aServerDirectory) { return _to GetServerDirectory(aServerDirectory); } \
  NS_IMETHOD SetServerDirectory(const char * aServerDirectory) { return _to SetServerDirectory(aServerDirectory); } \
  NS_IMETHOD GetCapabilityPref(PRInt32 *aCapabilityPref) { return _to GetCapabilityPref(aCapabilityPref); } \
  NS_IMETHOD SetCapabilityPref(PRInt32 aCapabilityPref) { return _to SetCapabilityPref(aCapabilityPref); } \
  NS_IMETHOD GetCleanupInboxOnExit(PRBool *aCleanupInboxOnExit) { return _to GetCleanupInboxOnExit(aCleanupInboxOnExit); } \
  NS_IMETHOD SetCleanupInboxOnExit(PRBool 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(PRBool *aDualUseFolders) { return _to GetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD SetDualUseFolders(PRBool aDualUseFolders) { return _to SetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD GetEmptyTrashThreshhold(PRInt32 *aEmptyTrashThreshhold) { return _to GetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD SetEmptyTrashThreshhold(PRInt32 aEmptyTrashThreshhold) { return _to SetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD GetPersonalNamespace(char * *aPersonalNamespace) { return _to GetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD SetPersonalNamespace(const char * aPersonalNamespace) { return _to SetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD GetPublicNamespace(char * *aPublicNamespace) { return _to GetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD SetPublicNamespace(const char * aPublicNamespace) { return _to SetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD GetOtherUsersNamespace(char * *aOtherUsersNamespace) { return _to GetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD SetOtherUsersNamespace(const char * aOtherUsersNamespace) { return _to SetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD GetOfflineDownload(PRBool *aOfflineDownload) { return _to GetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD SetOfflineDownload(PRBool aOfflineDownload) { return _to SetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD GetOverrideNamespaces(PRBool *aOverrideNamespaces) { return _to GetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD SetOverrideNamespaces(PRBool aOverrideNamespaces) { return _to SetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD GetUsingSubscription(PRBool *aUsingSubscription) { return _to GetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD SetUsingSubscription(PRBool aUsingSubscription) { return _to SetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD GetManageMailAccountUrl(char * *aManageMailAccountUrl) { return _to GetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD SetManageMailAccountUrl(const char * aManageMailAccountUrl) { return _to SetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD GetFetchByChunks(PRBool *aFetchByChunks) { return _to GetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD SetFetchByChunks(PRBool aFetchByChunks) { return _to SetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD GetMimePartsOnDemand(PRBool *aMimePartsOnDemand) { return _to GetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD SetMimePartsOnDemand(PRBool aMimePartsOnDemand) { return _to SetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD GetIsAOLServer(PRBool *aIsAOLServer) { return _to GetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD SetIsAOLServer(PRBool aIsAOLServer) { return _to SetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD GetAOLMailboxView(PRBool *aAOLMailboxView) { return _to GetAOLMailboxView(aAOLMailboxView); } \
  NS_IMETHOD SetAOLMailboxView(PRBool aAOLMailboxView) { return _to SetAOLMailboxView(aAOLMailboxView); } \
  NS_IMETHOD GetStoreReadMailInPFC(PRBool *aStoreReadMailInPFC) { return _to GetStoreReadMailInPFC(aStoreReadMailInPFC); } \
  NS_IMETHOD SetStoreReadMailInPFC(PRBool aStoreReadMailInPFC) { return _to SetStoreReadMailInPFC(aStoreReadMailInPFC); } \
  NS_IMETHOD GetStoreSentMailInPFC(PRBool *aStoreSentMailInPFC) { return _to GetStoreSentMailInPFC(aStoreSentMailInPFC); } \
  NS_IMETHOD SetStoreSentMailInPFC(PRBool aStoreSentMailInPFC) { return _to SetStoreSentMailInPFC(aStoreSentMailInPFC); } \
  NS_IMETHOD GetUseIdle(PRBool *aUseIdle) { return _to GetUseIdle(aUseIdle); } \
  NS_IMETHOD SetUseIdle(PRBool aUseIdle) { return _to SetUseIdle(aUseIdle); } \
  NS_IMETHOD GetTrashFolderName(PRUnichar * *aTrashFolderName) { return _to GetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD SetTrashFolderName(const PRUnichar * aTrashFolderName) { return _to SetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD GetIsPFC(const char *folderName, PRBool *_retval) { return _to GetIsPFC(folderName, _retval); } \
  NS_IMETHOD GetPFC(PRBool createIfMissing, nsIMsgFolder **_retval) { return _to GetPFC(createIfMissing, _retval); } \
  NS_IMETHOD GetDownloadBodiesOnGetNewMail(PRBool *aDownloadBodiesOnGetNewMail) { return _to GetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD SetDownloadBodiesOnGetNewMail(PRBool aDownloadBodiesOnGetNewMail) { return _to SetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD GetAutoSyncOfflineStores(PRBool *aAutoSyncOfflineStores) { return _to GetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD SetAutoSyncOfflineStores(PRBool aAutoSyncOfflineStores) { return _to SetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIEventQueue *aClientEventQueue, nsIImapUrl *aImapUrl, nsISupports *aConsumer) { return _to GetImapConnectionAndLoadUrl(aClientEventQueue, 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, PRBool *interrupted) { return _to PseudoInterruptMsgLoad(aImapFolder, aMsgWindow, interrupted); } \
  NS_IMETHOD ResetConnection(const char *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 PRUnichar *name, PRBool subscribe, nsIURI **_retval) { return _to SubscribeToFolder(name, subscribe, _retval); } \
  NS_IMETHOD GetReadMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval) { return _to GetReadMailPFC(createIfMissing, _retval); } \
  NS_IMETHOD GetSentMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval) { return _to GetSentMailPFC(createIfMissing, _retval); } \
  NS_IMETHOD GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, PRBool forceAllFolders, PRBool performingBiff) { return _to GetNewMessagesForNonInboxFolders(aRootFolder, aWindow, forceAllFolders, performingBiff); } \
  NS_IMETHOD GetDoingLsub(PRBool *aDoingLsub) { return _to GetDoingLsub(aDoingLsub); } \
  NS_IMETHOD SetDoingLsub(PRBool aDoingLsub) { return _to SetDoingLsub(aDoingLsub); } \
  NS_IMETHOD AllowFolderConversion(PRBool *allowConversion) { return _to AllowFolderConversion(allowConversion); } \
  NS_IMETHOD ConvertFolderName(const char *originalName, PRUnichar **convertedName) { return _to ConvertFolderName(originalName, convertedName); } \
  NS_IMETHOD HideFolderName(const char *originalName, PRBool *hideFolder) { return _to HideFolderName(originalName, hideFolder); } \
  NS_IMETHOD GetTrashFolderByRedirectorType(char **_retval) { return _to GetTrashFolderByRedirectorType(_retval); } \
  NS_IMETHOD GetRedirectorType(char * *aRedirectorType) { return _to GetRedirectorType(aRedirectorType); } \
  NS_IMETHOD SetRedirectorType(const char * aRedirectorType) { return _to SetRedirectorType(aRedirectorType); } \
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(PRInt32 namespaceType, const char *originalUri, char **_retval) { return _to GetUriWithNamespacePrefixIfNecessary(namespaceType, originalUri, _retval); } 

/* 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(PRInt32 *aMaximumConnectionsNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD SetMaximumConnectionsNumber(PRInt32 aMaximumConnectionsNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaximumConnectionsNumber(aMaximumConnectionsNumber); } \
  NS_IMETHOD GetTimeOutLimits(PRInt32 *aTimeOutLimits) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD SetTimeOutLimits(PRInt32 aTimeOutLimits) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTimeOutLimits(aTimeOutLimits); } \
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdminUrl(aAdminUrl); } \
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAdminUrl(aAdminUrl); } \
  NS_IMETHOD GetServerDirectory(char * *aServerDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerDirectory(aServerDirectory); } \
  NS_IMETHOD SetServerDirectory(const char * aServerDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerDirectory(aServerDirectory); } \
  NS_IMETHOD GetCapabilityPref(PRInt32 *aCapabilityPref) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCapabilityPref(aCapabilityPref); } \
  NS_IMETHOD SetCapabilityPref(PRInt32 aCapabilityPref) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCapabilityPref(aCapabilityPref); } \
  NS_IMETHOD GetCleanupInboxOnExit(PRBool *aCleanupInboxOnExit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCleanupInboxOnExit(aCleanupInboxOnExit); } \
  NS_IMETHOD SetCleanupInboxOnExit(PRBool 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(PRBool *aDualUseFolders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD SetDualUseFolders(PRBool aDualUseFolders) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDualUseFolders(aDualUseFolders); } \
  NS_IMETHOD GetEmptyTrashThreshhold(PRInt32 *aEmptyTrashThreshhold) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD SetEmptyTrashThreshhold(PRInt32 aEmptyTrashThreshhold) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEmptyTrashThreshhold(aEmptyTrashThreshhold); } \
  NS_IMETHOD GetPersonalNamespace(char * *aPersonalNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD SetPersonalNamespace(const char * aPersonalNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPersonalNamespace(aPersonalNamespace); } \
  NS_IMETHOD GetPublicNamespace(char * *aPublicNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD SetPublicNamespace(const char * aPublicNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPublicNamespace(aPublicNamespace); } \
  NS_IMETHOD GetOtherUsersNamespace(char * *aOtherUsersNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD SetOtherUsersNamespace(const char * aOtherUsersNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOtherUsersNamespace(aOtherUsersNamespace); } \
  NS_IMETHOD GetOfflineDownload(PRBool *aOfflineDownload) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD SetOfflineDownload(PRBool aOfflineDownload) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOfflineDownload(aOfflineDownload); } \
  NS_IMETHOD GetOverrideNamespaces(PRBool *aOverrideNamespaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD SetOverrideNamespaces(PRBool aOverrideNamespaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOverrideNamespaces(aOverrideNamespaces); } \
  NS_IMETHOD GetUsingSubscription(PRBool *aUsingSubscription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD SetUsingSubscription(PRBool aUsingSubscription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUsingSubscription(aUsingSubscription); } \
  NS_IMETHOD GetManageMailAccountUrl(char * *aManageMailAccountUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD SetManageMailAccountUrl(const char * aManageMailAccountUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetManageMailAccountUrl(aManageMailAccountUrl); } \
  NS_IMETHOD GetFetchByChunks(PRBool *aFetchByChunks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD SetFetchByChunks(PRBool aFetchByChunks) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFetchByChunks(aFetchByChunks); } \
  NS_IMETHOD GetMimePartsOnDemand(PRBool *aMimePartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD SetMimePartsOnDemand(PRBool aMimePartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimePartsOnDemand(aMimePartsOnDemand); } \
  NS_IMETHOD GetIsAOLServer(PRBool *aIsAOLServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD SetIsAOLServer(PRBool aIsAOLServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsAOLServer(aIsAOLServer); } \
  NS_IMETHOD GetAOLMailboxView(PRBool *aAOLMailboxView) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAOLMailboxView(aAOLMailboxView); } \
  NS_IMETHOD SetAOLMailboxView(PRBool aAOLMailboxView) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAOLMailboxView(aAOLMailboxView); } \
  NS_IMETHOD GetStoreReadMailInPFC(PRBool *aStoreReadMailInPFC) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStoreReadMailInPFC(aStoreReadMailInPFC); } \
  NS_IMETHOD SetStoreReadMailInPFC(PRBool aStoreReadMailInPFC) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStoreReadMailInPFC(aStoreReadMailInPFC); } \
  NS_IMETHOD GetStoreSentMailInPFC(PRBool *aStoreSentMailInPFC) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStoreSentMailInPFC(aStoreSentMailInPFC); } \
  NS_IMETHOD SetStoreSentMailInPFC(PRBool aStoreSentMailInPFC) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStoreSentMailInPFC(aStoreSentMailInPFC); } \
  NS_IMETHOD GetUseIdle(PRBool *aUseIdle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseIdle(aUseIdle); } \
  NS_IMETHOD SetUseIdle(PRBool aUseIdle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseIdle(aUseIdle); } \
  NS_IMETHOD GetTrashFolderName(PRUnichar * *aTrashFolderName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD SetTrashFolderName(const PRUnichar * aTrashFolderName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTrashFolderName(aTrashFolderName); } \
  NS_IMETHOD GetIsPFC(const char *folderName, PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsPFC(folderName, _retval); } \
  NS_IMETHOD GetPFC(PRBool createIfMissing, nsIMsgFolder **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPFC(createIfMissing, _retval); } \
  NS_IMETHOD GetDownloadBodiesOnGetNewMail(PRBool *aDownloadBodiesOnGetNewMail) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD SetDownloadBodiesOnGetNewMail(PRBool aDownloadBodiesOnGetNewMail) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDownloadBodiesOnGetNewMail(aDownloadBodiesOnGetNewMail); } \
  NS_IMETHOD GetAutoSyncOfflineStores(PRBool *aAutoSyncOfflineStores) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD SetAutoSyncOfflineStores(PRBool aAutoSyncOfflineStores) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoSyncOfflineStores(aAutoSyncOfflineStores); } \
  NS_IMETHOD GetImapConnectionAndLoadUrl(nsIEventQueue *aClientEventQueue, nsIImapUrl *aImapUrl, nsISupports *aConsumer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapConnectionAndLoadUrl(aClientEventQueue, 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, PRBool *interrupted) { return !_to ? NS_ERROR_NULL_POINTER : _to->PseudoInterruptMsgLoad(aImapFolder, aMsgWindow, interrupted); } \
  NS_IMETHOD ResetConnection(const char *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 PRUnichar *name, PRBool subscribe, nsIURI **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->SubscribeToFolder(name, subscribe, _retval); } \
  NS_IMETHOD GetReadMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReadMailPFC(createIfMissing, _retval); } \
  NS_IMETHOD GetSentMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSentMailPFC(createIfMissing, _retval); } \
  NS_IMETHOD GetNewMessagesForNonInboxFolders(nsIMsgFolder *aRootFolder, nsIMsgWindow *aWindow, PRBool forceAllFolders, PRBool performingBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewMessagesForNonInboxFolders(aRootFolder, aWindow, forceAllFolders, performingBiff); } \
  NS_IMETHOD GetDoingLsub(PRBool *aDoingLsub) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDoingLsub(aDoingLsub); } \
  NS_IMETHOD SetDoingLsub(PRBool aDoingLsub) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDoingLsub(aDoingLsub); } \
  NS_IMETHOD AllowFolderConversion(PRBool *allowConversion) { return !_to ? NS_ERROR_NULL_POINTER : _to->AllowFolderConversion(allowConversion); } \
  NS_IMETHOD ConvertFolderName(const char *originalName, PRUnichar **convertedName) { return !_to ? NS_ERROR_NULL_POINTER : _to->ConvertFolderName(originalName, convertedName); } \
  NS_IMETHOD HideFolderName(const char *originalName, PRBool *hideFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->HideFolderName(originalName, hideFolder); } \
  NS_IMETHOD GetTrashFolderByRedirectorType(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTrashFolderByRedirectorType(_retval); } \
  NS_IMETHOD GetRedirectorType(char * *aRedirectorType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRedirectorType(aRedirectorType); } \
  NS_IMETHOD SetRedirectorType(const char * aRedirectorType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRedirectorType(aRedirectorType); } \
  NS_IMETHOD GetUriWithNamespacePrefixIfNecessary(PRInt32 namespaceType, const char *originalUri, char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUriWithNamespacePrefixIfNecessary(namespaceType, originalUri, _retval); } 

#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(PRInt32 *aMaximumConnectionsNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetMaximumConnectionsNumber(PRInt32 aMaximumConnectionsNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute string adminUrl; */
NS_IMETHODIMP nsImapIncomingServer::GetAdminUrl(char * *aAdminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetAdminUrl(const char * aAdminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string serverDirectory; */
NS_IMETHODIMP nsImapIncomingServer::GetServerDirectory(char * *aServerDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetServerDirectory(const char * aServerDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long capabilityPref; */
NS_IMETHODIMP nsImapIncomingServer::GetCapabilityPref(PRInt32 *aCapabilityPref)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetCapabilityPref(PRInt32 aCapabilityPref)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean cleanupInboxOnExit; */
NS_IMETHODIMP nsImapIncomingServer::GetCleanupInboxOnExit(PRBool *aCleanupInboxOnExit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetCleanupInboxOnExit(PRBool 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(PRBool *aDualUseFolders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetDualUseFolders(PRBool aDualUseFolders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute string personalNamespace; */
NS_IMETHODIMP nsImapIncomingServer::GetPersonalNamespace(char * *aPersonalNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetPersonalNamespace(const char * aPersonalNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string publicNamespace; */
NS_IMETHODIMP nsImapIncomingServer::GetPublicNamespace(char * *aPublicNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetPublicNamespace(const char * aPublicNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string otherUsersNamespace; */
NS_IMETHODIMP nsImapIncomingServer::GetOtherUsersNamespace(char * *aOtherUsersNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetOtherUsersNamespace(const char * aOtherUsersNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

/* attribute string manageMailAccountUrl; */
NS_IMETHODIMP nsImapIncomingServer::GetManageMailAccountUrl(char * *aManageMailAccountUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetManageMailAccountUrl(const char * aManageMailAccountUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

/* attribute boolean aOLMailboxView; */
NS_IMETHODIMP nsImapIncomingServer::GetAOLMailboxView(PRBool *aAOLMailboxView)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetAOLMailboxView(PRBool aAOLMailboxView)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean storeReadMailInPFC; */
NS_IMETHODIMP nsImapIncomingServer::GetStoreReadMailInPFC(PRBool *aStoreReadMailInPFC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetStoreReadMailInPFC(PRBool aStoreReadMailInPFC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean storeSentMailInPFC; */
NS_IMETHODIMP nsImapIncomingServer::GetStoreSentMailInPFC(PRBool *aStoreSentMailInPFC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetStoreSentMailInPFC(PRBool aStoreSentMailInPFC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute wstring trashFolderName; */
NS_IMETHODIMP nsImapIncomingServer::GetTrashFolderName(PRUnichar * *aTrashFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetTrashFolderName(const PRUnichar * aTrashFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getIsPFC (in string folderName); */
NS_IMETHODIMP nsImapIncomingServer::GetIsPFC(const char *folderName, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFolder getPFC (in boolean createIfMissing); */
NS_IMETHODIMP nsImapIncomingServer::GetPFC(PRBool createIfMissing, nsIMsgFolder **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* void GetImapConnectionAndLoadUrl (in nsIEventQueue aClientEventQueue, in nsIImapUrl aImapUrl, in nsISupports aConsumer); */
NS_IMETHODIMP nsImapIncomingServer::GetImapConnectionAndLoadUrl(nsIEventQueue *aClientEventQueue, 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, PRBool *interrupted)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ResetConnection (in string folderName); */
NS_IMETHODIMP nsImapIncomingServer::ResetConnection(const char *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 wstring name, in boolean subscribe); */
NS_IMETHODIMP nsImapIncomingServer::SubscribeToFolder(const PRUnichar *name, PRBool subscribe, nsIURI **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFolder GetReadMailPFC (in boolean createIfMissing); */
NS_IMETHODIMP nsImapIncomingServer::GetReadMailPFC(PRBool createIfMissing, nsIMsgFolder **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFolder GetSentMailPFC (in boolean createIfMissing); */
NS_IMETHODIMP nsImapIncomingServer::GetSentMailPFC(PRBool createIfMissing, nsIMsgFolder **_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, PRBool forceAllFolders, PRBool performingBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void allowFolderConversion (out boolean allowConversion); */
NS_IMETHODIMP nsImapIncomingServer::AllowFolderConversion(PRBool *allowConversion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void convertFolderName (in string originalName, out wstring convertedName); */
NS_IMETHODIMP nsImapIncomingServer::ConvertFolderName(const char *originalName, PRUnichar **convertedName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void hideFolderName (in string originalName, out boolean hideFolder); */
NS_IMETHODIMP nsImapIncomingServer::HideFolderName(const char *originalName, PRBool *hideFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string getTrashFolderByRedirectorType (); */
NS_IMETHODIMP nsImapIncomingServer::GetTrashFolderByRedirectorType(char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string redirectorType; */
NS_IMETHODIMP nsImapIncomingServer::GetRedirectorType(char * *aRedirectorType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapIncomingServer::SetRedirectorType(const char * aRedirectorType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string getUriWithNamespacePrefixIfNecessary (in long namespaceType, in string originalUri); */
NS_IMETHODIMP nsImapIncomingServer::GetUriWithNamespacePrefixIfNecessary(PRInt32 namespaceType, const char *originalUri, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIImapIncomingServer_h__ */
