/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsIMsgIncomingServer.idl
 */

#ifndef __gen_nsIMsgIncomingServer_h__
#define __gen_nsIMsgIncomingServer_h__


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

#ifndef __gen_MailNewsTypes2_h__
#include "MailNewsTypes2.h"
#endif

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

class nsIMsgFolderCache; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

class nsIMsgFilterList; /* forward declaration */

class nsIMsgRetentionSettings; /* forward declaration */

class nsIMsgDownloadSettings; /* forward declaration */

class nsISpamSettings; /* forward declaration */

class nsIMsgFilterPlugin; /* forward declaration */

class nsIUrlListener; /* forward declaration */

class nsIMsgDBHdr; /* forward declaration */

class nsILocalFile; /* forward declaration */

class nsIURI; /* forward declaration */


/* starting interface:    nsIMsgIncomingServer */
#define NS_IMSGINCOMINGSERVER_IID_STR "eb921e6e-b93d-4492-89cf-79a19da684ce"

#define NS_IMSGINCOMINGSERVER_IID \
  {0xeb921e6e, 0xb93d, 0x4492, \
    { 0x89, 0xcf, 0x79, 0xa1, 0x9d, 0xa6, 0x84, 0xce }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMsgIncomingServer : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGINCOMINGSERVER_IID)

  /**
   * internal pref key - guaranteed to be unique across all servers
   */
  /* attribute ACString key; */
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsACString & aKey) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetKey(const nsACString & aKey) = 0;

  /**
   * pretty name - should be "userid on hostname"
   * if the pref is not set
   */
  /* attribute AString prettyName; */
  NS_SCRIPTABLE NS_IMETHOD GetPrettyName(nsAString & aPrettyName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPrettyName(const nsAString & aPrettyName) = 0;

  /**
  * helper function to construct the pretty name in a server type
  * specific way - e.g., mail for foo@test.com, news on news.mozilla.org
  */
  /* readonly attribute AString constructedPrettyName; */
  NS_SCRIPTABLE NS_IMETHOD GetConstructedPrettyName(nsAString & aConstructedPrettyName) = 0;

  /**
   * hostname of the server
   */
  /* attribute ACString hostName; */
  NS_SCRIPTABLE NS_IMETHOD GetHostName(nsACString & aHostName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetHostName(const nsACString & aHostName) = 0;

  /**
   * real hostname of the server (if server name is changed it's stored here)
   */
  /* attribute ACString realHostName; */
  NS_SCRIPTABLE NS_IMETHOD GetRealHostName(nsACString & aRealHostName) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRealHostName(const nsACString & aRealHostName) = 0;

  /* attribute long port; */
  NS_SCRIPTABLE NS_IMETHOD GetPort(PRInt32 *aPort) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPort(PRInt32 aPort) = 0;

  /**
   * userid to log into the server
   */
  /* attribute ACString username; */
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername) = 0;

  /**
   * real username of the server (if username is changed it's stored here)
   */
  /* attribute ACString realUsername; */
  NS_SCRIPTABLE NS_IMETHOD GetRealUsername(nsACString & aRealUsername) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRealUsername(const nsACString & aRealUsername) = 0;

  /**
   * protocol type, i.e. "pop3", "imap", "nntp", "none", etc
   * used to construct URLs
   */
  /* attribute ACString type; */
  NS_SCRIPTABLE NS_IMETHOD GetType(nsACString & aType) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetType(const nsACString & aType) = 0;

  /* readonly attribute AString accountManagerChrome; */
  NS_SCRIPTABLE NS_IMETHOD GetAccountManagerChrome(nsAString & aAccountManagerChrome) = 0;

  /**
   * the schema for the local mail store, such
   * as "mailbox", "imap", or "news"
   * used to construct URIs
   */
  /* readonly attribute ACString localStoreType; */
  NS_SCRIPTABLE NS_IMETHOD GetLocalStoreType(nsACString & aLocalStoreType) = 0;

  /* void onUserOrHostNameChanged (in ACString oldName, in ACString newName); */
  NS_SCRIPTABLE NS_IMETHOD OnUserOrHostNameChanged(const nsACString & oldName, const nsACString & newName) = 0;

  /* attribute ACString password; */
  NS_SCRIPTABLE NS_IMETHOD GetPassword(nsACString & aPassword) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPassword(const nsACString & aPassword) = 0;

  /**
   * Attempts to get the password first from the password manager, if that
   * fails it will attempt to get it from the user if aMsgWindow is supplied.
   *
   * @param aPromptString  The text of the prompt if the user is prompted for
   *                       password.
   * @param aPromptTitle   The title of the prompt if the user is prompted.
   * @param aMsgWindow     A message window to associate the prompt with.
   * @return               The obtained password. Could be an empty password.
   *
   * @exception NS_ERROR_FAILURE  The password could not be obtained.
   *
   * @note NS_MSG_PASSWORD_PROMPT_CANCELLED is a success code that is returned
   *       if the prompt was presented to the user but the user cancelled the
   *       prompt.
   */
  /* ACString getPasswordWithUI (in AString aPromptString, in AString aPromptTitle, in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD GetPasswordWithUI(const nsAString & aPromptString, const nsAString & aPromptTitle, nsIMsgWindow *aMsgWindow, nsACString & _retval NS_OUTPARAM) = 0;

  /* void forgetPassword (); */
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void) = 0;

  /* void forgetSessionPassword (); */
  NS_SCRIPTABLE NS_IMETHOD ForgetSessionPassword(void) = 0;

  /* attribute boolean downloadOnBiff; */
  NS_SCRIPTABLE NS_IMETHOD GetDownloadOnBiff(PRBool *aDownloadOnBiff) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDownloadOnBiff(PRBool aDownloadOnBiff) = 0;

  /* attribute boolean doBiff; */
  NS_SCRIPTABLE NS_IMETHOD GetDoBiff(PRBool *aDoBiff) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDoBiff(PRBool aDoBiff) = 0;

  /* attribute long biffMinutes; */
  NS_SCRIPTABLE NS_IMETHOD GetBiffMinutes(PRInt32 *aBiffMinutes) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetBiffMinutes(PRInt32 aBiffMinutes) = 0;

  /* attribute unsigned long biffState; */
  NS_SCRIPTABLE NS_IMETHOD GetBiffState(PRUint32 *aBiffState) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetBiffState(PRUint32 aBiffState) = 0;

  /* attribute boolean performingBiff; */
  NS_SCRIPTABLE NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff) = 0;

  /* attribute nsILocalFile localPath; */
  NS_SCRIPTABLE NS_IMETHOD GetLocalPath(nsILocalFile **aLocalPath) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLocalPath(nsILocalFile *aLocalPath) = 0;

  /* readonly attribute ACString serverURI; */
  NS_SCRIPTABLE NS_IMETHOD GetServerURI(nsACString & aServerURI) = 0;

  /* attribute nsIMsgFolder rootFolder; */
  NS_SCRIPTABLE NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRootFolder(nsIMsgFolder *aRootFolder) = 0;

  /* readonly attribute nsIMsgFolder rootMsgFolder; */
  NS_SCRIPTABLE NS_IMETHOD GetRootMsgFolder(nsIMsgFolder **aRootMsgFolder) = 0;

  /* attribute boolean serverBusy; */
  NS_SCRIPTABLE NS_IMETHOD GetServerBusy(PRBool *aServerBusy) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetServerBusy(PRBool aServerBusy) = 0;

  /**
   * Is the server using a secure channel (SSL or STARTTLS).
   */
  /* readonly attribute boolean isSecure; */
  NS_SCRIPTABLE NS_IMETHOD GetIsSecure(PRBool *aIsSecure) = 0;

  /**
   * Authentication mechanism.
   *
   * @see nsMsgAuthMethod (in MailNewsTypes2.idl)
   * Same as "mail.server...authMethod" pref
   */
  /* attribute nsMsgAuthMethodValue authMethod; */
  NS_SCRIPTABLE NS_IMETHOD GetAuthMethod(nsMsgAuthMethodValue *aAuthMethod) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetAuthMethod(nsMsgAuthMethodValue aAuthMethod) = 0;

  /**
   * Whether to SSL or STARTTLS or not
   *
   * @see nsMsgSocketType (in MailNewsTypes2.idl)
   * Same as "mail.server...socketType" pref
   */
  /* attribute nsMsgSocketTypeValue socketType; */
  NS_SCRIPTABLE NS_IMETHOD GetSocketType(nsMsgSocketTypeValue *aSocketType) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetSocketType(nsMsgSocketTypeValue aSocketType) = 0;

  /* readonly attribute boolean isSecureServer; */
  NS_SCRIPTABLE NS_IMETHOD GetIsSecureServer(PRBool *aIsSecureServer) = 0;

  /* attribute boolean emptyTrashOnExit; */
  NS_SCRIPTABLE NS_IMETHOD GetEmptyTrashOnExit(PRBool *aEmptyTrashOnExit) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetEmptyTrashOnExit(PRBool aEmptyTrashOnExit) = 0;

  /**
   * Get the server's list of filters.
   *
   * This SHOULD be the same filter list as the root folder's, if the server
   * supports per-folder filters. Furthermore, this list SHOULD be used for all
   * incoming messages.
   *
   * Since the returned nsIMsgFilterList is mutable, it is not necessary to call
   * setFilterList after the filters have been changed.
   *
   * @param aMsgWindow  @ref msgwindow "The standard message window"
   * @return            The list of filters.
   */
  /* nsIMsgFilterList getFilterList (in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD GetFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM) = 0;

  /**
   * Set the server's list of filters.
   *
   * Note that this does not persist the filter list. To change the contents
   * of the existing filters, use getFilterList and mutate the values as
   * appopriate.
   *
   * @param aFilterList The new list of filters.
   */
  /* void setFilterList (in nsIMsgFilterList aFilterList); */
  NS_SCRIPTABLE NS_IMETHOD SetFilterList(nsIMsgFilterList *aFilterList) = 0;

  /**
   * Get user editable filter list. This does not have to be the same as
   * the filterlist above, typically depending on the users preferences.
   * The filters in this list are not processed, but only to be edited by
   * the user.
   * @see getFilterList
   *
   * @param aMsgWindow  @ref msgwindow "The standard message window"
   * @return            The list of filters.
   */
  /* nsIMsgFilterList getEditableFilterList (in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM) = 0;

  /**
   * Set user editable filter list.
   * This does not persist the filterlist, @see setFilterList
   * @see getEditableFilterList
   * @see setFilterList
   *
   * @param aFilterList The new list of filters.
   */
  /* void setEditableFilterList (in nsIMsgFilterList aFilterList); */
  NS_SCRIPTABLE NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList) = 0;

  /* void setDefaultLocalPath (in nsILocalFile aDefaultLocalPath); */
  NS_SCRIPTABLE NS_IMETHOD SetDefaultLocalPath(nsILocalFile *aDefaultLocalPath) = 0;

  /**
   * Verify that we can logon
   * 
   * @param  aUrlListener - gets called back with success or failure.
   * @param aMsgWindow         nsIMsgWindow to use for notification callbacks.
   * @return - the url that we run.
   */
  /* nsIURI verifyLogon (in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **_retval NS_OUTPARAM) = 0;

  /* void performBiff (in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD PerformBiff(nsIMsgWindow *aMsgWindow) = 0;

  /* void getNewMessages (in nsIMsgFolder aFolder, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener); */
  NS_SCRIPTABLE NS_IMETHOD GetNewMessages(nsIMsgFolder *aFolder, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener) = 0;

  /* readonly attribute boolean serverRequiresPasswordForBiff; */
  NS_SCRIPTABLE NS_IMETHOD GetServerRequiresPasswordForBiff(PRBool *aServerRequiresPasswordForBiff) = 0;

  /* void performExpand (in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow) = 0;

  /* void writeToFolderCache (in nsIMsgFolderCache folderCache); */
  NS_SCRIPTABLE NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache) = 0;

  /* void closeCachedConnections (); */
  NS_SCRIPTABLE NS_IMETHOD CloseCachedConnections(void) = 0;

  /* void shutdown (); */
  NS_SCRIPTABLE NS_IMETHOD Shutdown(void) = 0;

  /**
   * Get or set the value as determined by the preference tree.
   *
   * These methods MUST NOT fail if the preference is not set, and therefore
   * they MUST have a default value. This default value is provided in practice
   * by use of a default preference tree. The standard format for the pref
   * branches are <tt>mail.server.<i>key</i>.</tt> for per-server preferences,
   * such that the preference is <tt>mail.server.<i>key</i>.<i>attr</i></tt>.
   *
   * The attributes are passed in as strings for ease of access by the C++
   * consumers of this method.
   *
   * @param attr  The value for which the preference should be accessed.
   * @param value The value of the preference to set.
   * @return      The value of the preference.
   * @{
   */
  /* boolean getBoolValue (in string attr); */
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char *attr, PRBool *_retval NS_OUTPARAM) = 0;

  /* void setBoolValue (in string attr, in boolean value); */
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char *attr, PRBool value) = 0;

  /* ACString getCharValue (in string attr); */
  NS_SCRIPTABLE NS_IMETHOD GetCharValue(const char *attr, nsACString & _retval NS_OUTPARAM) = 0;

  /* void setCharValue (in string attr, in ACString value); */
  NS_SCRIPTABLE NS_IMETHOD SetCharValue(const char *attr, const nsACString & value) = 0;

  /* AString getUnicharValue (in string attr); */
  NS_SCRIPTABLE NS_IMETHOD GetUnicharValue(const char *attr, nsAString & _retval NS_OUTPARAM) = 0;

  /* void setUnicharValue (in string attr, in AString value); */
  NS_SCRIPTABLE NS_IMETHOD SetUnicharValue(const char *attr, const nsAString & value) = 0;

  /* long getIntValue (in string attr); */
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char *attr, PRInt32 *_retval NS_OUTPARAM) = 0;

  /* void setIntValue (in string attr, in long value); */
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char *attr, PRInt32 value) = 0;

  /** @} */
/**
   * Get or set the value as determined by the preference tree.
   *
   * These methods MUST NOT fail if the preference is not set, and therefore
   * they MUST have a default value. This default value is provided in practice
   * by use of a default preference tree. The standard format for the pref
   * branches are <tt>mail.server.<i>key</i>.</tt> for per-server preferences,
   * such that the preference is <tt>mail.server.<i>key</i>.<i>attr</i></tt>.
   *
   * The attributes are passed in as strings for ease of access by the C++
   * consumers of this method.
   *
   * There are two preference names on here for legacy reasons, where the first
   * is the name which will be using a (preferred) relative preference and the
   * second a deprecated absolute preference. Implementations that do not have
   * to worry about supporting legacy preferences can safely ignore this second
   * parameter. Callers must still provide a valid value, though.
   *
   * @param relpref The name of the relative file preference.
   * @param absref  The name of the absolute file preference.
   * @param aValue  The value of the preference to set.
   * @return        The value of the preference.
   * @{
   */
  /* nsILocalFile getFileValue (in string relpref, in string abspref); */
  NS_SCRIPTABLE NS_IMETHOD GetFileValue(const char *relpref, const char *abspref, nsILocalFile **_retval NS_OUTPARAM) = 0;

  /* void setFileValue (in string relpref, in string abspref, in nsILocalFile aValue); */
  NS_SCRIPTABLE NS_IMETHOD SetFileValue(const char *relpref, const char *abspref, nsILocalFile *aValue) = 0;

  /** @} */
/**
   * this is really dangerous. this destroys all pref values
   * do not call this unless you know what you're doing!
   */
  /* void clearAllValues (); */
  NS_SCRIPTABLE NS_IMETHOD ClearAllValues(void) = 0;

  /** 
   * this is also very dangerous.  this will remove the files
   * associated with this server on disk.
   */
  /* void removeFiles (); */
  NS_SCRIPTABLE NS_IMETHOD RemoveFiles(void) = 0;

  /* attribute boolean valid; */
  NS_SCRIPTABLE NS_IMETHOD GetValid(PRBool *aValid) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetValid(PRBool aValid) = 0;

  /* AString toString (); */
  NS_SCRIPTABLE NS_IMETHOD ToString(nsAString & _retval NS_OUTPARAM) = 0;

  /* void displayOfflineMsg (in nsIMsgWindow aWindow); */
  NS_SCRIPTABLE NS_IMETHOD DisplayOfflineMsg(nsIMsgWindow *aWindow) = 0;

  /* boolean equals (in nsIMsgIncomingServer server); */
  NS_SCRIPTABLE NS_IMETHOD Equals(nsIMsgIncomingServer *server, PRBool *_retval NS_OUTPARAM) = 0;

  /* readonly attribute boolean downloadMessagesAtStartup; */
  NS_SCRIPTABLE NS_IMETHOD GetDownloadMessagesAtStartup(PRBool *aDownloadMessagesAtStartup) = 0;

  /* attribute boolean canHaveFilters; */
  NS_SCRIPTABLE NS_IMETHOD GetCanHaveFilters(PRBool *aCanHaveFilters) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCanHaveFilters(PRBool aCanHaveFilters) = 0;

  /**
   * can this server be removed from the account manager?  for
   * instance, local mail is not removable, but an imported folder is 
   */
  /* attribute boolean canDelete; */
  NS_SCRIPTABLE NS_IMETHOD GetCanDelete(PRBool *aCanDelete) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCanDelete(PRBool aCanDelete) = 0;

  /* attribute boolean loginAtStartUp; */
  NS_SCRIPTABLE NS_IMETHOD GetLoginAtStartUp(PRBool *aLoginAtStartUp) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLoginAtStartUp(PRBool aLoginAtStartUp) = 0;

  /* attribute boolean limitOfflineMessageSize; */
  NS_SCRIPTABLE NS_IMETHOD GetLimitOfflineMessageSize(PRBool *aLimitOfflineMessageSize) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLimitOfflineMessageSize(PRBool aLimitOfflineMessageSize) = 0;

  /* attribute long maxMessageSize; */
  NS_SCRIPTABLE NS_IMETHOD GetMaxMessageSize(PRInt32 *aMaxMessageSize) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMaxMessageSize(PRInt32 aMaxMessageSize) = 0;

  /* attribute nsIMsgRetentionSettings retentionSettings; */
  NS_SCRIPTABLE NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings) = 0;

  /* readonly attribute boolean canBeDefaultServer; */
  NS_SCRIPTABLE NS_IMETHOD GetCanBeDefaultServer(PRBool *aCanBeDefaultServer) = 0;

  /* readonly attribute boolean canSearchMessages; */
  NS_SCRIPTABLE NS_IMETHOD GetCanSearchMessages(PRBool *aCanSearchMessages) = 0;

  /* readonly attribute boolean canEmptyTrashOnExit; */
  NS_SCRIPTABLE NS_IMETHOD GetCanEmptyTrashOnExit(PRBool *aCanEmptyTrashOnExit) = 0;

  /* attribute boolean displayStartupPage; */
  NS_SCRIPTABLE NS_IMETHOD GetDisplayStartupPage(PRBool *aDisplayStartupPage) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDisplayStartupPage(PRBool aDisplayStartupPage) = 0;

  /* attribute nsIMsgDownloadSettings downloadSettings; */
  NS_SCRIPTABLE NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings) = 0;

  /* attribute long offlineSupportLevel; */
  NS_SCRIPTABLE NS_IMETHOD GetOfflineSupportLevel(PRInt32 *aOfflineSupportLevel) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetOfflineSupportLevel(PRInt32 aOfflineSupportLevel) = 0;

  /* AString generatePrettyNameForMigration (); */
  NS_SCRIPTABLE NS_IMETHOD GeneratePrettyNameForMigration(nsAString & _retval NS_OUTPARAM) = 0;

  /* readonly attribute boolean supportsDiskSpace; */
  NS_SCRIPTABLE NS_IMETHOD GetSupportsDiskSpace(PRBool *aSupportsDiskSpace) = 0;

  /**
   * Hide this server/account from the UI - used for smart mailboxes.
   * The server can be retrieved from the account manager by name using the
   * various Find methods, but nsIMsgAccountManager's GetAccounts and 
   * GetAllServers methods won't return the server/account.
   */
  /* attribute boolean hidden; */
  NS_SCRIPTABLE NS_IMETHOD GetHidden(PRBool *aHidden) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetHidden(PRBool aHidden) = 0;

  /**
   * If the server supports Fcc/Sent/etc, default prefs can point to 
   * the server. Otherwise, copies and folders prefs should point to
   * Local Folders.
   *
   * By default this value is set to true via global pref 'allows_specialfolders_usage'
   * (mailnews.js). For Nntp, the value is overridden to be false.
   * If ISPs want to modify this value, they should do that in their rdf file
   * by using this attribute. Please look at mozilla/mailnews/base/ispdata/aol.rdf for
   * usage example.
   */
  /* attribute boolean defaultCopiesAndFoldersPrefsToServer; */
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCopiesAndFoldersPrefsToServer(PRBool *aDefaultCopiesAndFoldersPrefsToServer) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetDefaultCopiesAndFoldersPrefsToServer(PRBool aDefaultCopiesAndFoldersPrefsToServer) = 0;

  /* attribute boolean canCreateFoldersOnServer; */
  NS_SCRIPTABLE NS_IMETHOD GetCanCreateFoldersOnServer(PRBool *aCanCreateFoldersOnServer) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCanCreateFoldersOnServer(PRBool aCanCreateFoldersOnServer) = 0;

  /* attribute boolean canFileMessagesOnServer; */
  NS_SCRIPTABLE NS_IMETHOD GetCanFileMessagesOnServer(PRBool *aCanFileMessagesOnServer) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCanFileMessagesOnServer(PRBool aCanFileMessagesOnServer) = 0;

  /* readonly attribute boolean canCompactFoldersOnServer; */
  NS_SCRIPTABLE NS_IMETHOD GetCanCompactFoldersOnServer(PRBool *aCanCompactFoldersOnServer) = 0;

  /* readonly attribute boolean canUndoDeleteOnServer; */
  NS_SCRIPTABLE NS_IMETHOD GetCanUndoDeleteOnServer(PRBool *aCanUndoDeleteOnServer) = 0;

  /* readonly attribute nsMsgSearchScopeValue filterScope; */
  NS_SCRIPTABLE NS_IMETHOD GetFilterScope(nsMsgSearchScopeValue *aFilterScope) = 0;

  /* readonly attribute nsMsgSearchScopeValue searchScope; */
  NS_SCRIPTABLE NS_IMETHOD GetSearchScope(nsMsgSearchScopeValue *aSearchScope) = 0;

  /** 
   * If the password for the server is available either via authentication 
   * in the current session or from password manager stored entries, return
   * false. Otherwise, return true. If password is obtained from password 
   * manager, set the password member variable.
   */
  /* readonly attribute boolean passwordPromptRequired; */
  NS_SCRIPTABLE NS_IMETHOD GetPasswordPromptRequired(PRBool *aPasswordPromptRequired) = 0;

  /**
   * for mail, this configures both the MDN filter, and the server-side
   * spam filter filters, if needed.
   *
   * If we have set up to filter return receipts into
   * our Sent folder, this utility method creates
   * a filter to do that, and adds it to our filterList
   * if it doesn't exist.  If it does, it will enable it.
   *
   * this is not used by news filters (yet).
   */
  /* void configureTemporaryFilters (in nsIMsgFilterList filterList); */
  NS_SCRIPTABLE NS_IMETHOD ConfigureTemporaryFilters(nsIMsgFilterList *filterList) = 0;

  /**
   * If Sent folder pref is changed we need to clear the temporary 
   * return receipt filter so that the new return receipt filter can
   * be recreated (by ConfigureTemporaryReturnReceiptsFilter()).
   */
  /* void clearTemporaryReturnReceiptsFilter (); */
  NS_SCRIPTABLE NS_IMETHOD ClearTemporaryReturnReceiptsFilter(void) = 0;

  /**
   * spam settings
   */
  /* readonly attribute nsISpamSettings spamSettings; */
  NS_SCRIPTABLE NS_IMETHOD GetSpamSettings(nsISpamSettings **aSpamSettings) = 0;

  /* readonly attribute nsIMsgFilterPlugin spamFilterPlugin; */
  NS_SCRIPTABLE NS_IMETHOD GetSpamFilterPlugin(nsIMsgFilterPlugin **aSpamFilterPlugin) = 0;

  /* nsIMsgFolder getMsgFolderFromURI (in nsIMsgFolder aFolderResource, in ACString aURI); */
  NS_SCRIPTABLE NS_IMETHOD GetMsgFolderFromURI(nsIMsgFolder *aFolderResource, const nsACString & aURI, nsIMsgFolder **_retval NS_OUTPARAM) = 0;

  /* readonly attribute boolean isDeferredTo; */
  NS_SCRIPTABLE NS_IMETHOD GetIsDeferredTo(PRBool *aIsDeferredTo) = 0;

  enum { keepDups = 0 };

  enum { deleteDups = 1 };

  enum { moveDupsToTrash = 2 };

  enum { markDupsRead = 3 };

  /* attribute long incomingDuplicateAction; */
  NS_SCRIPTABLE NS_IMETHOD GetIncomingDuplicateAction(PRInt32 *aIncomingDuplicateAction) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetIncomingDuplicateAction(PRInt32 aIncomingDuplicateAction) = 0;

  /* boolean isNewHdrDuplicate (in nsIMsgDBHdr aNewHdr); */
  NS_SCRIPTABLE NS_IMETHOD IsNewHdrDuplicate(nsIMsgDBHdr *aNewHdr, PRBool *_retval NS_OUTPARAM) = 0;

  /**
   * Set a boolean to force an inherited propertyName to return empty instead
   * of inheriting from a parent folder, server, or the global
   *
   * @param propertyName         The name of the property
   * @param aForcePropertyEmpty  true if an empty inherited property should be returned
   */
  /* void setForcePropertyEmpty (in string propertyName, in boolean aForcePropertyEmpty); */
  NS_SCRIPTABLE NS_IMETHOD SetForcePropertyEmpty(const char *propertyName, PRBool aForcePropertyEmpty) = 0;

  /**
   * Get a boolean to force an inherited propertyName to return empty instead
   * of inheriting from a parent folder, server, or the global
   *
   * @param propertyName      The name of the property
   *
   * @return                  true if an empty inherited property should be returned
   */
  /* boolean getForcePropertyEmpty (in string propertyName); */
  NS_SCRIPTABLE NS_IMETHOD GetForcePropertyEmpty(const char *propertyName, PRBool *_retval NS_OUTPARAM) = 0;

  /**
   * @{
   * This attribute and constants control the granularity of sub-folders of the
   * Archives folder - either messages go in the single archive folder, or a
   * yearly archive folder, or in a monthly archive folder with a yearly
   * parent folder. If the server doesn't support folders that both contain
   * messages and have sub-folders, we will ignore this setting.
   */
  enum { singleArchiveFolder = 0 };

  enum { perYearArchiveFolders = 1 };

  enum { perMonthArchiveFolders = 2 };

  /* attribute long archiveGranularity; */
  NS_SCRIPTABLE NS_IMETHOD GetArchiveGranularity(PRInt32 *aArchiveGranularity) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetArchiveGranularity(PRInt32 aArchiveGranularity) = 0;

  /* attribute boolean archiveKeepFolderStructure; */
  NS_SCRIPTABLE NS_IMETHOD GetArchiveKeepFolderStructure(PRBool *aArchiveKeepFolderStructure) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetArchiveKeepFolderStructure(PRBool aArchiveKeepFolderStructure) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgIncomingServer, NS_IMSGINCOMINGSERVER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGINCOMINGSERVER \
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsACString & aKey); \
  NS_SCRIPTABLE NS_IMETHOD SetKey(const nsACString & aKey); \
  NS_SCRIPTABLE NS_IMETHOD GetPrettyName(nsAString & aPrettyName); \
  NS_SCRIPTABLE NS_IMETHOD SetPrettyName(const nsAString & aPrettyName); \
  NS_SCRIPTABLE NS_IMETHOD GetConstructedPrettyName(nsAString & aConstructedPrettyName); \
  NS_SCRIPTABLE NS_IMETHOD GetHostName(nsACString & aHostName); \
  NS_SCRIPTABLE NS_IMETHOD SetHostName(const nsACString & aHostName); \
  NS_SCRIPTABLE NS_IMETHOD GetRealHostName(nsACString & aRealHostName); \
  NS_SCRIPTABLE NS_IMETHOD SetRealHostName(const nsACString & aRealHostName); \
  NS_SCRIPTABLE NS_IMETHOD GetPort(PRInt32 *aPort); \
  NS_SCRIPTABLE NS_IMETHOD SetPort(PRInt32 aPort); \
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername); \
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername); \
  NS_SCRIPTABLE NS_IMETHOD GetRealUsername(nsACString & aRealUsername); \
  NS_SCRIPTABLE NS_IMETHOD SetRealUsername(const nsACString & aRealUsername); \
  NS_SCRIPTABLE NS_IMETHOD GetType(nsACString & aType); \
  NS_SCRIPTABLE NS_IMETHOD SetType(const nsACString & aType); \
  NS_SCRIPTABLE NS_IMETHOD GetAccountManagerChrome(nsAString & aAccountManagerChrome); \
  NS_SCRIPTABLE NS_IMETHOD GetLocalStoreType(nsACString & aLocalStoreType); \
  NS_SCRIPTABLE NS_IMETHOD OnUserOrHostNameChanged(const nsACString & oldName, const nsACString & newName); \
  NS_SCRIPTABLE NS_IMETHOD GetPassword(nsACString & aPassword); \
  NS_SCRIPTABLE NS_IMETHOD SetPassword(const nsACString & aPassword); \
  NS_SCRIPTABLE NS_IMETHOD GetPasswordWithUI(const nsAString & aPromptString, const nsAString & aPromptTitle, nsIMsgWindow *aMsgWindow, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void); \
  NS_SCRIPTABLE NS_IMETHOD ForgetSessionPassword(void); \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadOnBiff(PRBool *aDownloadOnBiff); \
  NS_SCRIPTABLE NS_IMETHOD SetDownloadOnBiff(PRBool aDownloadOnBiff); \
  NS_SCRIPTABLE NS_IMETHOD GetDoBiff(PRBool *aDoBiff); \
  NS_SCRIPTABLE NS_IMETHOD SetDoBiff(PRBool aDoBiff); \
  NS_SCRIPTABLE NS_IMETHOD GetBiffMinutes(PRInt32 *aBiffMinutes); \
  NS_SCRIPTABLE NS_IMETHOD SetBiffMinutes(PRInt32 aBiffMinutes); \
  NS_SCRIPTABLE NS_IMETHOD GetBiffState(PRUint32 *aBiffState); \
  NS_SCRIPTABLE NS_IMETHOD SetBiffState(PRUint32 aBiffState); \
  NS_SCRIPTABLE NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff); \
  NS_SCRIPTABLE NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff); \
  NS_SCRIPTABLE NS_IMETHOD GetLocalPath(nsILocalFile **aLocalPath); \
  NS_SCRIPTABLE NS_IMETHOD SetLocalPath(nsILocalFile *aLocalPath); \
  NS_SCRIPTABLE NS_IMETHOD GetServerURI(nsACString & aServerURI); \
  NS_SCRIPTABLE NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder); \
  NS_SCRIPTABLE NS_IMETHOD SetRootFolder(nsIMsgFolder *aRootFolder); \
  NS_SCRIPTABLE NS_IMETHOD GetRootMsgFolder(nsIMsgFolder **aRootMsgFolder); \
  NS_SCRIPTABLE NS_IMETHOD GetServerBusy(PRBool *aServerBusy); \
  NS_SCRIPTABLE NS_IMETHOD SetServerBusy(PRBool aServerBusy); \
  NS_SCRIPTABLE NS_IMETHOD GetIsSecure(PRBool *aIsSecure); \
  NS_SCRIPTABLE NS_IMETHOD GetAuthMethod(nsMsgAuthMethodValue *aAuthMethod); \
  NS_SCRIPTABLE NS_IMETHOD SetAuthMethod(nsMsgAuthMethodValue aAuthMethod); \
  NS_SCRIPTABLE NS_IMETHOD GetSocketType(nsMsgSocketTypeValue *aSocketType); \
  NS_SCRIPTABLE NS_IMETHOD SetSocketType(nsMsgSocketTypeValue aSocketType); \
  NS_SCRIPTABLE NS_IMETHOD GetIsSecureServer(PRBool *aIsSecureServer); \
  NS_SCRIPTABLE NS_IMETHOD GetEmptyTrashOnExit(PRBool *aEmptyTrashOnExit); \
  NS_SCRIPTABLE NS_IMETHOD SetEmptyTrashOnExit(PRBool aEmptyTrashOnExit); \
  NS_SCRIPTABLE NS_IMETHOD GetFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetFilterList(nsIMsgFilterList *aFilterList); \
  NS_SCRIPTABLE NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList); \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultLocalPath(nsILocalFile *aDefaultLocalPath); \
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD PerformBiff(nsIMsgWindow *aMsgWindow); \
  NS_SCRIPTABLE NS_IMETHOD GetNewMessages(nsIMsgFolder *aFolder, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener); \
  NS_SCRIPTABLE NS_IMETHOD GetServerRequiresPasswordForBiff(PRBool *aServerRequiresPasswordForBiff); \
  NS_SCRIPTABLE NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow); \
  NS_SCRIPTABLE NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache); \
  NS_SCRIPTABLE NS_IMETHOD CloseCachedConnections(void); \
  NS_SCRIPTABLE NS_IMETHOD Shutdown(void); \
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char *attr, PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char *attr, PRBool value); \
  NS_SCRIPTABLE NS_IMETHOD GetCharValue(const char *attr, nsACString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetCharValue(const char *attr, const nsACString & value); \
  NS_SCRIPTABLE NS_IMETHOD GetUnicharValue(const char *attr, nsAString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetUnicharValue(const char *attr, const nsAString & value); \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char *attr, PRInt32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char *attr, PRInt32 value); \
  NS_SCRIPTABLE NS_IMETHOD GetFileValue(const char *relpref, const char *abspref, nsILocalFile **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetFileValue(const char *relpref, const char *abspref, nsILocalFile *aValue); \
  NS_SCRIPTABLE NS_IMETHOD ClearAllValues(void); \
  NS_SCRIPTABLE NS_IMETHOD RemoveFiles(void); \
  NS_SCRIPTABLE NS_IMETHOD GetValid(PRBool *aValid); \
  NS_SCRIPTABLE NS_IMETHOD SetValid(PRBool aValid); \
  NS_SCRIPTABLE NS_IMETHOD ToString(nsAString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD DisplayOfflineMsg(nsIMsgWindow *aWindow); \
  NS_SCRIPTABLE NS_IMETHOD Equals(nsIMsgIncomingServer *server, PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadMessagesAtStartup(PRBool *aDownloadMessagesAtStartup); \
  NS_SCRIPTABLE NS_IMETHOD GetCanHaveFilters(PRBool *aCanHaveFilters); \
  NS_SCRIPTABLE NS_IMETHOD SetCanHaveFilters(PRBool aCanHaveFilters); \
  NS_SCRIPTABLE NS_IMETHOD GetCanDelete(PRBool *aCanDelete); \
  NS_SCRIPTABLE NS_IMETHOD SetCanDelete(PRBool aCanDelete); \
  NS_SCRIPTABLE NS_IMETHOD GetLoginAtStartUp(PRBool *aLoginAtStartUp); \
  NS_SCRIPTABLE NS_IMETHOD SetLoginAtStartUp(PRBool aLoginAtStartUp); \
  NS_SCRIPTABLE NS_IMETHOD GetLimitOfflineMessageSize(PRBool *aLimitOfflineMessageSize); \
  NS_SCRIPTABLE NS_IMETHOD SetLimitOfflineMessageSize(PRBool aLimitOfflineMessageSize); \
  NS_SCRIPTABLE NS_IMETHOD GetMaxMessageSize(PRInt32 *aMaxMessageSize); \
  NS_SCRIPTABLE NS_IMETHOD SetMaxMessageSize(PRInt32 aMaxMessageSize); \
  NS_SCRIPTABLE NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings); \
  NS_SCRIPTABLE NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings); \
  NS_SCRIPTABLE NS_IMETHOD GetCanBeDefaultServer(PRBool *aCanBeDefaultServer); \
  NS_SCRIPTABLE NS_IMETHOD GetCanSearchMessages(PRBool *aCanSearchMessages); \
  NS_SCRIPTABLE NS_IMETHOD GetCanEmptyTrashOnExit(PRBool *aCanEmptyTrashOnExit); \
  NS_SCRIPTABLE NS_IMETHOD GetDisplayStartupPage(PRBool *aDisplayStartupPage); \
  NS_SCRIPTABLE NS_IMETHOD SetDisplayStartupPage(PRBool aDisplayStartupPage); \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings); \
  NS_SCRIPTABLE NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings); \
  NS_SCRIPTABLE NS_IMETHOD GetOfflineSupportLevel(PRInt32 *aOfflineSupportLevel); \
  NS_SCRIPTABLE NS_IMETHOD SetOfflineSupportLevel(PRInt32 aOfflineSupportLevel); \
  NS_SCRIPTABLE NS_IMETHOD GeneratePrettyNameForMigration(nsAString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetSupportsDiskSpace(PRBool *aSupportsDiskSpace); \
  NS_SCRIPTABLE NS_IMETHOD GetHidden(PRBool *aHidden); \
  NS_SCRIPTABLE NS_IMETHOD SetHidden(PRBool aHidden); \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCopiesAndFoldersPrefsToServer(PRBool *aDefaultCopiesAndFoldersPrefsToServer); \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultCopiesAndFoldersPrefsToServer(PRBool aDefaultCopiesAndFoldersPrefsToServer); \
  NS_SCRIPTABLE NS_IMETHOD GetCanCreateFoldersOnServer(PRBool *aCanCreateFoldersOnServer); \
  NS_SCRIPTABLE NS_IMETHOD SetCanCreateFoldersOnServer(PRBool aCanCreateFoldersOnServer); \
  NS_SCRIPTABLE NS_IMETHOD GetCanFileMessagesOnServer(PRBool *aCanFileMessagesOnServer); \
  NS_SCRIPTABLE NS_IMETHOD SetCanFileMessagesOnServer(PRBool aCanFileMessagesOnServer); \
  NS_SCRIPTABLE NS_IMETHOD GetCanCompactFoldersOnServer(PRBool *aCanCompactFoldersOnServer); \
  NS_SCRIPTABLE NS_IMETHOD GetCanUndoDeleteOnServer(PRBool *aCanUndoDeleteOnServer); \
  NS_SCRIPTABLE NS_IMETHOD GetFilterScope(nsMsgSearchScopeValue *aFilterScope); \
  NS_SCRIPTABLE NS_IMETHOD GetSearchScope(nsMsgSearchScopeValue *aSearchScope); \
  NS_SCRIPTABLE NS_IMETHOD GetPasswordPromptRequired(PRBool *aPasswordPromptRequired); \
  NS_SCRIPTABLE NS_IMETHOD ConfigureTemporaryFilters(nsIMsgFilterList *filterList); \
  NS_SCRIPTABLE NS_IMETHOD ClearTemporaryReturnReceiptsFilter(void); \
  NS_SCRIPTABLE NS_IMETHOD GetSpamSettings(nsISpamSettings **aSpamSettings); \
  NS_SCRIPTABLE NS_IMETHOD GetSpamFilterPlugin(nsIMsgFilterPlugin **aSpamFilterPlugin); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFolderFromURI(nsIMsgFolder *aFolderResource, const nsACString & aURI, nsIMsgFolder **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetIsDeferredTo(PRBool *aIsDeferredTo); \
  NS_SCRIPTABLE NS_IMETHOD GetIncomingDuplicateAction(PRInt32 *aIncomingDuplicateAction); \
  NS_SCRIPTABLE NS_IMETHOD SetIncomingDuplicateAction(PRInt32 aIncomingDuplicateAction); \
  NS_SCRIPTABLE NS_IMETHOD IsNewHdrDuplicate(nsIMsgDBHdr *aNewHdr, PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetForcePropertyEmpty(const char *propertyName, PRBool aForcePropertyEmpty); \
  NS_SCRIPTABLE NS_IMETHOD GetForcePropertyEmpty(const char *propertyName, PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetArchiveGranularity(PRInt32 *aArchiveGranularity); \
  NS_SCRIPTABLE NS_IMETHOD SetArchiveGranularity(PRInt32 aArchiveGranularity); \
  NS_SCRIPTABLE NS_IMETHOD GetArchiveKeepFolderStructure(PRBool *aArchiveKeepFolderStructure); \
  NS_SCRIPTABLE NS_IMETHOD SetArchiveKeepFolderStructure(PRBool aArchiveKeepFolderStructure); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGINCOMINGSERVER(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsACString & aKey) { return _to GetKey(aKey); } \
  NS_SCRIPTABLE NS_IMETHOD SetKey(const nsACString & aKey) { return _to SetKey(aKey); } \
  NS_SCRIPTABLE NS_IMETHOD GetPrettyName(nsAString & aPrettyName) { return _to GetPrettyName(aPrettyName); } \
  NS_SCRIPTABLE NS_IMETHOD SetPrettyName(const nsAString & aPrettyName) { return _to SetPrettyName(aPrettyName); } \
  NS_SCRIPTABLE NS_IMETHOD GetConstructedPrettyName(nsAString & aConstructedPrettyName) { return _to GetConstructedPrettyName(aConstructedPrettyName); } \
  NS_SCRIPTABLE NS_IMETHOD GetHostName(nsACString & aHostName) { return _to GetHostName(aHostName); } \
  NS_SCRIPTABLE NS_IMETHOD SetHostName(const nsACString & aHostName) { return _to SetHostName(aHostName); } \
  NS_SCRIPTABLE NS_IMETHOD GetRealHostName(nsACString & aRealHostName) { return _to GetRealHostName(aRealHostName); } \
  NS_SCRIPTABLE NS_IMETHOD SetRealHostName(const nsACString & aRealHostName) { return _to SetRealHostName(aRealHostName); } \
  NS_SCRIPTABLE NS_IMETHOD GetPort(PRInt32 *aPort) { return _to GetPort(aPort); } \
  NS_SCRIPTABLE NS_IMETHOD SetPort(PRInt32 aPort) { return _to SetPort(aPort); } \
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername) { return _to GetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername) { return _to SetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD GetRealUsername(nsACString & aRealUsername) { return _to GetRealUsername(aRealUsername); } \
  NS_SCRIPTABLE NS_IMETHOD SetRealUsername(const nsACString & aRealUsername) { return _to SetRealUsername(aRealUsername); } \
  NS_SCRIPTABLE NS_IMETHOD GetType(nsACString & aType) { return _to GetType(aType); } \
  NS_SCRIPTABLE NS_IMETHOD SetType(const nsACString & aType) { return _to SetType(aType); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccountManagerChrome(nsAString & aAccountManagerChrome) { return _to GetAccountManagerChrome(aAccountManagerChrome); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalStoreType(nsACString & aLocalStoreType) { return _to GetLocalStoreType(aLocalStoreType); } \
  NS_SCRIPTABLE NS_IMETHOD OnUserOrHostNameChanged(const nsACString & oldName, const nsACString & newName) { return _to OnUserOrHostNameChanged(oldName, newName); } \
  NS_SCRIPTABLE NS_IMETHOD GetPassword(nsACString & aPassword) { return _to GetPassword(aPassword); } \
  NS_SCRIPTABLE NS_IMETHOD SetPassword(const nsACString & aPassword) { return _to SetPassword(aPassword); } \
  NS_SCRIPTABLE NS_IMETHOD GetPasswordWithUI(const nsAString & aPromptString, const nsAString & aPromptTitle, nsIMsgWindow *aMsgWindow, nsACString & _retval NS_OUTPARAM) { return _to GetPasswordWithUI(aPromptString, aPromptTitle, aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void) { return _to ForgetPassword(); } \
  NS_SCRIPTABLE NS_IMETHOD ForgetSessionPassword(void) { return _to ForgetSessionPassword(); } \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadOnBiff(PRBool *aDownloadOnBiff) { return _to GetDownloadOnBiff(aDownloadOnBiff); } \
  NS_SCRIPTABLE NS_IMETHOD SetDownloadOnBiff(PRBool aDownloadOnBiff) { return _to SetDownloadOnBiff(aDownloadOnBiff); } \
  NS_SCRIPTABLE NS_IMETHOD GetDoBiff(PRBool *aDoBiff) { return _to GetDoBiff(aDoBiff); } \
  NS_SCRIPTABLE NS_IMETHOD SetDoBiff(PRBool aDoBiff) { return _to SetDoBiff(aDoBiff); } \
  NS_SCRIPTABLE NS_IMETHOD GetBiffMinutes(PRInt32 *aBiffMinutes) { return _to GetBiffMinutes(aBiffMinutes); } \
  NS_SCRIPTABLE NS_IMETHOD SetBiffMinutes(PRInt32 aBiffMinutes) { return _to SetBiffMinutes(aBiffMinutes); } \
  NS_SCRIPTABLE NS_IMETHOD GetBiffState(PRUint32 *aBiffState) { return _to GetBiffState(aBiffState); } \
  NS_SCRIPTABLE NS_IMETHOD SetBiffState(PRUint32 aBiffState) { return _to SetBiffState(aBiffState); } \
  NS_SCRIPTABLE NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff) { return _to GetPerformingBiff(aPerformingBiff); } \
  NS_SCRIPTABLE NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff) { return _to SetPerformingBiff(aPerformingBiff); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalPath(nsILocalFile **aLocalPath) { return _to GetLocalPath(aLocalPath); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalPath(nsILocalFile *aLocalPath) { return _to SetLocalPath(aLocalPath); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerURI(nsACString & aServerURI) { return _to GetServerURI(aServerURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder) { return _to GetRootFolder(aRootFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetRootFolder(nsIMsgFolder *aRootFolder) { return _to SetRootFolder(aRootFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetRootMsgFolder(nsIMsgFolder **aRootMsgFolder) { return _to GetRootMsgFolder(aRootMsgFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerBusy(PRBool *aServerBusy) { return _to GetServerBusy(aServerBusy); } \
  NS_SCRIPTABLE NS_IMETHOD SetServerBusy(PRBool aServerBusy) { return _to SetServerBusy(aServerBusy); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsSecure(PRBool *aIsSecure) { return _to GetIsSecure(aIsSecure); } \
  NS_SCRIPTABLE NS_IMETHOD GetAuthMethod(nsMsgAuthMethodValue *aAuthMethod) { return _to GetAuthMethod(aAuthMethod); } \
  NS_SCRIPTABLE NS_IMETHOD SetAuthMethod(nsMsgAuthMethodValue aAuthMethod) { return _to SetAuthMethod(aAuthMethod); } \
  NS_SCRIPTABLE NS_IMETHOD GetSocketType(nsMsgSocketTypeValue *aSocketType) { return _to GetSocketType(aSocketType); } \
  NS_SCRIPTABLE NS_IMETHOD SetSocketType(nsMsgSocketTypeValue aSocketType) { return _to SetSocketType(aSocketType); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsSecureServer(PRBool *aIsSecureServer) { return _to GetIsSecureServer(aIsSecureServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetEmptyTrashOnExit(PRBool *aEmptyTrashOnExit) { return _to GetEmptyTrashOnExit(aEmptyTrashOnExit); } \
  NS_SCRIPTABLE NS_IMETHOD SetEmptyTrashOnExit(PRBool aEmptyTrashOnExit) { return _to SetEmptyTrashOnExit(aEmptyTrashOnExit); } \
  NS_SCRIPTABLE NS_IMETHOD GetFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM) { return _to GetFilterList(aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetFilterList(nsIMsgFilterList *aFilterList) { return _to SetFilterList(aFilterList); } \
  NS_SCRIPTABLE NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM) { return _to GetEditableFilterList(aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList) { return _to SetEditableFilterList(aFilterList); } \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultLocalPath(nsILocalFile *aDefaultLocalPath) { return _to SetDefaultLocalPath(aDefaultLocalPath); } \
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **_retval NS_OUTPARAM) { return _to VerifyLogon(aUrlListener, aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD PerformBiff(nsIMsgWindow *aMsgWindow) { return _to PerformBiff(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewMessages(nsIMsgFolder *aFolder, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener) { return _to GetNewMessages(aFolder, aMsgWindow, aUrlListener); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerRequiresPasswordForBiff(PRBool *aServerRequiresPasswordForBiff) { return _to GetServerRequiresPasswordForBiff(aServerRequiresPasswordForBiff); } \
  NS_SCRIPTABLE NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow) { return _to PerformExpand(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache) { return _to WriteToFolderCache(folderCache); } \
  NS_SCRIPTABLE NS_IMETHOD CloseCachedConnections(void) { return _to CloseCachedConnections(); } \
  NS_SCRIPTABLE NS_IMETHOD Shutdown(void) { return _to Shutdown(); } \
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char *attr, PRBool *_retval NS_OUTPARAM) { return _to GetBoolValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char *attr, PRBool value) { return _to SetBoolValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharValue(const char *attr, nsACString & _retval NS_OUTPARAM) { return _to GetCharValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharValue(const char *attr, const nsACString & value) { return _to SetCharValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetUnicharValue(const char *attr, nsAString & _retval NS_OUTPARAM) { return _to GetUnicharValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetUnicharValue(const char *attr, const nsAString & value) { return _to SetUnicharValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char *attr, PRInt32 *_retval NS_OUTPARAM) { return _to GetIntValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char *attr, PRInt32 value) { return _to SetIntValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetFileValue(const char *relpref, const char *abspref, nsILocalFile **_retval NS_OUTPARAM) { return _to GetFileValue(relpref, abspref, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetFileValue(const char *relpref, const char *abspref, nsILocalFile *aValue) { return _to SetFileValue(relpref, abspref, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD ClearAllValues(void) { return _to ClearAllValues(); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveFiles(void) { return _to RemoveFiles(); } \
  NS_SCRIPTABLE NS_IMETHOD GetValid(PRBool *aValid) { return _to GetValid(aValid); } \
  NS_SCRIPTABLE NS_IMETHOD SetValid(PRBool aValid) { return _to SetValid(aValid); } \
  NS_SCRIPTABLE NS_IMETHOD ToString(nsAString & _retval NS_OUTPARAM) { return _to ToString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD DisplayOfflineMsg(nsIMsgWindow *aWindow) { return _to DisplayOfflineMsg(aWindow); } \
  NS_SCRIPTABLE NS_IMETHOD Equals(nsIMsgIncomingServer *server, PRBool *_retval NS_OUTPARAM) { return _to Equals(server, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadMessagesAtStartup(PRBool *aDownloadMessagesAtStartup) { return _to GetDownloadMessagesAtStartup(aDownloadMessagesAtStartup); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanHaveFilters(PRBool *aCanHaveFilters) { return _to GetCanHaveFilters(aCanHaveFilters); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanHaveFilters(PRBool aCanHaveFilters) { return _to SetCanHaveFilters(aCanHaveFilters); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanDelete(PRBool *aCanDelete) { return _to GetCanDelete(aCanDelete); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanDelete(PRBool aCanDelete) { return _to SetCanDelete(aCanDelete); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoginAtStartUp(PRBool *aLoginAtStartUp) { return _to GetLoginAtStartUp(aLoginAtStartUp); } \
  NS_SCRIPTABLE NS_IMETHOD SetLoginAtStartUp(PRBool aLoginAtStartUp) { return _to SetLoginAtStartUp(aLoginAtStartUp); } \
  NS_SCRIPTABLE NS_IMETHOD GetLimitOfflineMessageSize(PRBool *aLimitOfflineMessageSize) { return _to GetLimitOfflineMessageSize(aLimitOfflineMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD SetLimitOfflineMessageSize(PRBool aLimitOfflineMessageSize) { return _to SetLimitOfflineMessageSize(aLimitOfflineMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxMessageSize(PRInt32 *aMaxMessageSize) { return _to GetMaxMessageSize(aMaxMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD SetMaxMessageSize(PRInt32 aMaxMessageSize) { return _to SetMaxMessageSize(aMaxMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings) { return _to GetRetentionSettings(aRetentionSettings); } \
  NS_SCRIPTABLE NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings) { return _to SetRetentionSettings(aRetentionSettings); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBeDefaultServer(PRBool *aCanBeDefaultServer) { return _to GetCanBeDefaultServer(aCanBeDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanSearchMessages(PRBool *aCanSearchMessages) { return _to GetCanSearchMessages(aCanSearchMessages); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanEmptyTrashOnExit(PRBool *aCanEmptyTrashOnExit) { return _to GetCanEmptyTrashOnExit(aCanEmptyTrashOnExit); } \
  NS_SCRIPTABLE NS_IMETHOD GetDisplayStartupPage(PRBool *aDisplayStartupPage) { return _to GetDisplayStartupPage(aDisplayStartupPage); } \
  NS_SCRIPTABLE NS_IMETHOD SetDisplayStartupPage(PRBool aDisplayStartupPage) { return _to SetDisplayStartupPage(aDisplayStartupPage); } \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings) { return _to GetDownloadSettings(aDownloadSettings); } \
  NS_SCRIPTABLE NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings) { return _to SetDownloadSettings(aDownloadSettings); } \
  NS_SCRIPTABLE NS_IMETHOD GetOfflineSupportLevel(PRInt32 *aOfflineSupportLevel) { return _to GetOfflineSupportLevel(aOfflineSupportLevel); } \
  NS_SCRIPTABLE NS_IMETHOD SetOfflineSupportLevel(PRInt32 aOfflineSupportLevel) { return _to SetOfflineSupportLevel(aOfflineSupportLevel); } \
  NS_SCRIPTABLE NS_IMETHOD GeneratePrettyNameForMigration(nsAString & _retval NS_OUTPARAM) { return _to GeneratePrettyNameForMigration(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSupportsDiskSpace(PRBool *aSupportsDiskSpace) { return _to GetSupportsDiskSpace(aSupportsDiskSpace); } \
  NS_SCRIPTABLE NS_IMETHOD GetHidden(PRBool *aHidden) { return _to GetHidden(aHidden); } \
  NS_SCRIPTABLE NS_IMETHOD SetHidden(PRBool aHidden) { return _to SetHidden(aHidden); } \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCopiesAndFoldersPrefsToServer(PRBool *aDefaultCopiesAndFoldersPrefsToServer) { return _to GetDefaultCopiesAndFoldersPrefsToServer(aDefaultCopiesAndFoldersPrefsToServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultCopiesAndFoldersPrefsToServer(PRBool aDefaultCopiesAndFoldersPrefsToServer) { return _to SetDefaultCopiesAndFoldersPrefsToServer(aDefaultCopiesAndFoldersPrefsToServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanCreateFoldersOnServer(PRBool *aCanCreateFoldersOnServer) { return _to GetCanCreateFoldersOnServer(aCanCreateFoldersOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanCreateFoldersOnServer(PRBool aCanCreateFoldersOnServer) { return _to SetCanCreateFoldersOnServer(aCanCreateFoldersOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanFileMessagesOnServer(PRBool *aCanFileMessagesOnServer) { return _to GetCanFileMessagesOnServer(aCanFileMessagesOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanFileMessagesOnServer(PRBool aCanFileMessagesOnServer) { return _to SetCanFileMessagesOnServer(aCanFileMessagesOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanCompactFoldersOnServer(PRBool *aCanCompactFoldersOnServer) { return _to GetCanCompactFoldersOnServer(aCanCompactFoldersOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanUndoDeleteOnServer(PRBool *aCanUndoDeleteOnServer) { return _to GetCanUndoDeleteOnServer(aCanUndoDeleteOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetFilterScope(nsMsgSearchScopeValue *aFilterScope) { return _to GetFilterScope(aFilterScope); } \
  NS_SCRIPTABLE NS_IMETHOD GetSearchScope(nsMsgSearchScopeValue *aSearchScope) { return _to GetSearchScope(aSearchScope); } \
  NS_SCRIPTABLE NS_IMETHOD GetPasswordPromptRequired(PRBool *aPasswordPromptRequired) { return _to GetPasswordPromptRequired(aPasswordPromptRequired); } \
  NS_SCRIPTABLE NS_IMETHOD ConfigureTemporaryFilters(nsIMsgFilterList *filterList) { return _to ConfigureTemporaryFilters(filterList); } \
  NS_SCRIPTABLE NS_IMETHOD ClearTemporaryReturnReceiptsFilter(void) { return _to ClearTemporaryReturnReceiptsFilter(); } \
  NS_SCRIPTABLE NS_IMETHOD GetSpamSettings(nsISpamSettings **aSpamSettings) { return _to GetSpamSettings(aSpamSettings); } \
  NS_SCRIPTABLE NS_IMETHOD GetSpamFilterPlugin(nsIMsgFilterPlugin **aSpamFilterPlugin) { return _to GetSpamFilterPlugin(aSpamFilterPlugin); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFolderFromURI(nsIMsgFolder *aFolderResource, const nsACString & aURI, nsIMsgFolder **_retval NS_OUTPARAM) { return _to GetMsgFolderFromURI(aFolderResource, aURI, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsDeferredTo(PRBool *aIsDeferredTo) { return _to GetIsDeferredTo(aIsDeferredTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetIncomingDuplicateAction(PRInt32 *aIncomingDuplicateAction) { return _to GetIncomingDuplicateAction(aIncomingDuplicateAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetIncomingDuplicateAction(PRInt32 aIncomingDuplicateAction) { return _to SetIncomingDuplicateAction(aIncomingDuplicateAction); } \
  NS_SCRIPTABLE NS_IMETHOD IsNewHdrDuplicate(nsIMsgDBHdr *aNewHdr, PRBool *_retval NS_OUTPARAM) { return _to IsNewHdrDuplicate(aNewHdr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetForcePropertyEmpty(const char *propertyName, PRBool aForcePropertyEmpty) { return _to SetForcePropertyEmpty(propertyName, aForcePropertyEmpty); } \
  NS_SCRIPTABLE NS_IMETHOD GetForcePropertyEmpty(const char *propertyName, PRBool *_retval NS_OUTPARAM) { return _to GetForcePropertyEmpty(propertyName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetArchiveGranularity(PRInt32 *aArchiveGranularity) { return _to GetArchiveGranularity(aArchiveGranularity); } \
  NS_SCRIPTABLE NS_IMETHOD SetArchiveGranularity(PRInt32 aArchiveGranularity) { return _to SetArchiveGranularity(aArchiveGranularity); } \
  NS_SCRIPTABLE NS_IMETHOD GetArchiveKeepFolderStructure(PRBool *aArchiveKeepFolderStructure) { return _to GetArchiveKeepFolderStructure(aArchiveKeepFolderStructure); } \
  NS_SCRIPTABLE NS_IMETHOD SetArchiveKeepFolderStructure(PRBool aArchiveKeepFolderStructure) { return _to SetArchiveKeepFolderStructure(aArchiveKeepFolderStructure); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGINCOMINGSERVER(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsACString & aKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKey(aKey); } \
  NS_SCRIPTABLE NS_IMETHOD SetKey(const nsACString & aKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetKey(aKey); } \
  NS_SCRIPTABLE NS_IMETHOD GetPrettyName(nsAString & aPrettyName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrettyName(aPrettyName); } \
  NS_SCRIPTABLE NS_IMETHOD SetPrettyName(const nsAString & aPrettyName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPrettyName(aPrettyName); } \
  NS_SCRIPTABLE NS_IMETHOD GetConstructedPrettyName(nsAString & aConstructedPrettyName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConstructedPrettyName(aConstructedPrettyName); } \
  NS_SCRIPTABLE NS_IMETHOD GetHostName(nsACString & aHostName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostName(aHostName); } \
  NS_SCRIPTABLE NS_IMETHOD SetHostName(const nsACString & aHostName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostName(aHostName); } \
  NS_SCRIPTABLE NS_IMETHOD GetRealHostName(nsACString & aRealHostName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRealHostName(aRealHostName); } \
  NS_SCRIPTABLE NS_IMETHOD SetRealHostName(const nsACString & aRealHostName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRealHostName(aRealHostName); } \
  NS_SCRIPTABLE NS_IMETHOD GetPort(PRInt32 *aPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPort(aPort); } \
  NS_SCRIPTABLE NS_IMETHOD SetPort(PRInt32 aPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPort(aPort); } \
  NS_SCRIPTABLE NS_IMETHOD GetUsername(nsACString & aUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD SetUsername(const nsACString & aUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUsername(aUsername); } \
  NS_SCRIPTABLE NS_IMETHOD GetRealUsername(nsACString & aRealUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRealUsername(aRealUsername); } \
  NS_SCRIPTABLE NS_IMETHOD SetRealUsername(const nsACString & aRealUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRealUsername(aRealUsername); } \
  NS_SCRIPTABLE NS_IMETHOD GetType(nsACString & aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_SCRIPTABLE NS_IMETHOD SetType(const nsACString & aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_SCRIPTABLE NS_IMETHOD GetAccountManagerChrome(nsAString & aAccountManagerChrome) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccountManagerChrome(aAccountManagerChrome); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalStoreType(nsACString & aLocalStoreType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalStoreType(aLocalStoreType); } \
  NS_SCRIPTABLE NS_IMETHOD OnUserOrHostNameChanged(const nsACString & oldName, const nsACString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnUserOrHostNameChanged(oldName, newName); } \
  NS_SCRIPTABLE NS_IMETHOD GetPassword(nsACString & aPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPassword(aPassword); } \
  NS_SCRIPTABLE NS_IMETHOD SetPassword(const nsACString & aPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPassword(aPassword); } \
  NS_SCRIPTABLE NS_IMETHOD GetPasswordWithUI(const nsAString & aPromptString, const nsAString & aPromptTitle, nsIMsgWindow *aMsgWindow, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPasswordWithUI(aPromptString, aPromptTitle, aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ForgetPassword(); } \
  NS_SCRIPTABLE NS_IMETHOD ForgetSessionPassword(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ForgetSessionPassword(); } \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadOnBiff(PRBool *aDownloadOnBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadOnBiff(aDownloadOnBiff); } \
  NS_SCRIPTABLE NS_IMETHOD SetDownloadOnBiff(PRBool aDownloadOnBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDownloadOnBiff(aDownloadOnBiff); } \
  NS_SCRIPTABLE NS_IMETHOD GetDoBiff(PRBool *aDoBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDoBiff(aDoBiff); } \
  NS_SCRIPTABLE NS_IMETHOD SetDoBiff(PRBool aDoBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDoBiff(aDoBiff); } \
  NS_SCRIPTABLE NS_IMETHOD GetBiffMinutes(PRInt32 *aBiffMinutes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBiffMinutes(aBiffMinutes); } \
  NS_SCRIPTABLE NS_IMETHOD SetBiffMinutes(PRInt32 aBiffMinutes) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBiffMinutes(aBiffMinutes); } \
  NS_SCRIPTABLE NS_IMETHOD GetBiffState(PRUint32 *aBiffState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBiffState(aBiffState); } \
  NS_SCRIPTABLE NS_IMETHOD SetBiffState(PRUint32 aBiffState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBiffState(aBiffState); } \
  NS_SCRIPTABLE NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPerformingBiff(aPerformingBiff); } \
  NS_SCRIPTABLE NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPerformingBiff(aPerformingBiff); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalPath(nsILocalFile **aLocalPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalPath(aLocalPath); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalPath(nsILocalFile *aLocalPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocalPath(aLocalPath); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerURI(nsACString & aServerURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerURI(aServerURI); } \
  NS_SCRIPTABLE NS_IMETHOD GetRootFolder(nsIMsgFolder **aRootFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRootFolder(aRootFolder); } \
  NS_SCRIPTABLE NS_IMETHOD SetRootFolder(nsIMsgFolder *aRootFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRootFolder(aRootFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetRootMsgFolder(nsIMsgFolder **aRootMsgFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRootMsgFolder(aRootMsgFolder); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerBusy(PRBool *aServerBusy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerBusy(aServerBusy); } \
  NS_SCRIPTABLE NS_IMETHOD SetServerBusy(PRBool aServerBusy) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerBusy(aServerBusy); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsSecure(PRBool *aIsSecure) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsSecure(aIsSecure); } \
  NS_SCRIPTABLE NS_IMETHOD GetAuthMethod(nsMsgAuthMethodValue *aAuthMethod) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthMethod(aAuthMethod); } \
  NS_SCRIPTABLE NS_IMETHOD SetAuthMethod(nsMsgAuthMethodValue aAuthMethod) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthMethod(aAuthMethod); } \
  NS_SCRIPTABLE NS_IMETHOD GetSocketType(nsMsgSocketTypeValue *aSocketType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSocketType(aSocketType); } \
  NS_SCRIPTABLE NS_IMETHOD SetSocketType(nsMsgSocketTypeValue aSocketType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSocketType(aSocketType); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsSecureServer(PRBool *aIsSecureServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsSecureServer(aIsSecureServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetEmptyTrashOnExit(PRBool *aEmptyTrashOnExit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmptyTrashOnExit(aEmptyTrashOnExit); } \
  NS_SCRIPTABLE NS_IMETHOD SetEmptyTrashOnExit(PRBool aEmptyTrashOnExit) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEmptyTrashOnExit(aEmptyTrashOnExit); } \
  NS_SCRIPTABLE NS_IMETHOD GetFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilterList(aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetFilterList(nsIMsgFilterList *aFilterList) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFilterList(aFilterList); } \
  NS_SCRIPTABLE NS_IMETHOD GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEditableFilterList(aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetEditableFilterList(nsIMsgFilterList *aFilterList) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEditableFilterList(aFilterList); } \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultLocalPath(nsILocalFile *aDefaultLocalPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultLocalPath(aDefaultLocalPath); } \
  NS_SCRIPTABLE NS_IMETHOD VerifyLogon(nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->VerifyLogon(aUrlListener, aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD PerformBiff(nsIMsgWindow *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->PerformBiff(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewMessages(nsIMsgFolder *aFolder, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewMessages(aFolder, aMsgWindow, aUrlListener); } \
  NS_SCRIPTABLE NS_IMETHOD GetServerRequiresPasswordForBiff(PRBool *aServerRequiresPasswordForBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerRequiresPasswordForBiff(aServerRequiresPasswordForBiff); } \
  NS_SCRIPTABLE NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->PerformExpand(aMsgWindow); } \
  NS_SCRIPTABLE NS_IMETHOD WriteToFolderCache(nsIMsgFolderCache *folderCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteToFolderCache(folderCache); } \
  NS_SCRIPTABLE NS_IMETHOD CloseCachedConnections(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseCachedConnections(); } \
  NS_SCRIPTABLE NS_IMETHOD Shutdown(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Shutdown(); } \
  NS_SCRIPTABLE NS_IMETHOD GetBoolValue(const char *attr, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBoolValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetBoolValue(const char *attr, PRBool value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBoolValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetCharValue(const char *attr, nsACString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCharValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetCharValue(const char *attr, const nsACString & value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCharValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetUnicharValue(const char *attr, nsAString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnicharValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetUnicharValue(const char *attr, const nsAString & value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUnicharValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetIntValue(const char *attr, PRInt32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIntValue(attr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetIntValue(const char *attr, PRInt32 value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIntValue(attr, value); } \
  NS_SCRIPTABLE NS_IMETHOD GetFileValue(const char *relpref, const char *abspref, nsILocalFile **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileValue(relpref, abspref, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetFileValue(const char *relpref, const char *abspref, nsILocalFile *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFileValue(relpref, abspref, aValue); } \
  NS_SCRIPTABLE NS_IMETHOD ClearAllValues(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearAllValues(); } \
  NS_SCRIPTABLE NS_IMETHOD RemoveFiles(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveFiles(); } \
  NS_SCRIPTABLE NS_IMETHOD GetValid(PRBool *aValid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValid(aValid); } \
  NS_SCRIPTABLE NS_IMETHOD SetValid(PRBool aValid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetValid(aValid); } \
  NS_SCRIPTABLE NS_IMETHOD ToString(nsAString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->ToString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD DisplayOfflineMsg(nsIMsgWindow *aWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->DisplayOfflineMsg(aWindow); } \
  NS_SCRIPTABLE NS_IMETHOD Equals(nsIMsgIncomingServer *server, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->Equals(server, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadMessagesAtStartup(PRBool *aDownloadMessagesAtStartup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadMessagesAtStartup(aDownloadMessagesAtStartup); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanHaveFilters(PRBool *aCanHaveFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanHaveFilters(aCanHaveFilters); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanHaveFilters(PRBool aCanHaveFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCanHaveFilters(aCanHaveFilters); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanDelete(PRBool *aCanDelete) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanDelete(aCanDelete); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanDelete(PRBool aCanDelete) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCanDelete(aCanDelete); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoginAtStartUp(PRBool *aLoginAtStartUp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoginAtStartUp(aLoginAtStartUp); } \
  NS_SCRIPTABLE NS_IMETHOD SetLoginAtStartUp(PRBool aLoginAtStartUp) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLoginAtStartUp(aLoginAtStartUp); } \
  NS_SCRIPTABLE NS_IMETHOD GetLimitOfflineMessageSize(PRBool *aLimitOfflineMessageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLimitOfflineMessageSize(aLimitOfflineMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD SetLimitOfflineMessageSize(PRBool aLimitOfflineMessageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLimitOfflineMessageSize(aLimitOfflineMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD GetMaxMessageSize(PRInt32 *aMaxMessageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxMessageSize(aMaxMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD SetMaxMessageSize(PRInt32 aMaxMessageSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxMessageSize(aMaxMessageSize); } \
  NS_SCRIPTABLE NS_IMETHOD GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRetentionSettings(aRetentionSettings); } \
  NS_SCRIPTABLE NS_IMETHOD SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRetentionSettings(aRetentionSettings); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanBeDefaultServer(PRBool *aCanBeDefaultServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanBeDefaultServer(aCanBeDefaultServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanSearchMessages(PRBool *aCanSearchMessages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanSearchMessages(aCanSearchMessages); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanEmptyTrashOnExit(PRBool *aCanEmptyTrashOnExit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanEmptyTrashOnExit(aCanEmptyTrashOnExit); } \
  NS_SCRIPTABLE NS_IMETHOD GetDisplayStartupPage(PRBool *aDisplayStartupPage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDisplayStartupPage(aDisplayStartupPage); } \
  NS_SCRIPTABLE NS_IMETHOD SetDisplayStartupPage(PRBool aDisplayStartupPage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDisplayStartupPage(aDisplayStartupPage); } \
  NS_SCRIPTABLE NS_IMETHOD GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadSettings(aDownloadSettings); } \
  NS_SCRIPTABLE NS_IMETHOD SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDownloadSettings(aDownloadSettings); } \
  NS_SCRIPTABLE NS_IMETHOD GetOfflineSupportLevel(PRInt32 *aOfflineSupportLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOfflineSupportLevel(aOfflineSupportLevel); } \
  NS_SCRIPTABLE NS_IMETHOD SetOfflineSupportLevel(PRInt32 aOfflineSupportLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOfflineSupportLevel(aOfflineSupportLevel); } \
  NS_SCRIPTABLE NS_IMETHOD GeneratePrettyNameForMigration(nsAString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GeneratePrettyNameForMigration(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetSupportsDiskSpace(PRBool *aSupportsDiskSpace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsDiskSpace(aSupportsDiskSpace); } \
  NS_SCRIPTABLE NS_IMETHOD GetHidden(PRBool *aHidden) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHidden(aHidden); } \
  NS_SCRIPTABLE NS_IMETHOD SetHidden(PRBool aHidden) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHidden(aHidden); } \
  NS_SCRIPTABLE NS_IMETHOD GetDefaultCopiesAndFoldersPrefsToServer(PRBool *aDefaultCopiesAndFoldersPrefsToServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultCopiesAndFoldersPrefsToServer(aDefaultCopiesAndFoldersPrefsToServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetDefaultCopiesAndFoldersPrefsToServer(PRBool aDefaultCopiesAndFoldersPrefsToServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultCopiesAndFoldersPrefsToServer(aDefaultCopiesAndFoldersPrefsToServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanCreateFoldersOnServer(PRBool *aCanCreateFoldersOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanCreateFoldersOnServer(aCanCreateFoldersOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanCreateFoldersOnServer(PRBool aCanCreateFoldersOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCanCreateFoldersOnServer(aCanCreateFoldersOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanFileMessagesOnServer(PRBool *aCanFileMessagesOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanFileMessagesOnServer(aCanFileMessagesOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD SetCanFileMessagesOnServer(PRBool aCanFileMessagesOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCanFileMessagesOnServer(aCanFileMessagesOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanCompactFoldersOnServer(PRBool *aCanCompactFoldersOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanCompactFoldersOnServer(aCanCompactFoldersOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetCanUndoDeleteOnServer(PRBool *aCanUndoDeleteOnServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanUndoDeleteOnServer(aCanUndoDeleteOnServer); } \
  NS_SCRIPTABLE NS_IMETHOD GetFilterScope(nsMsgSearchScopeValue *aFilterScope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilterScope(aFilterScope); } \
  NS_SCRIPTABLE NS_IMETHOD GetSearchScope(nsMsgSearchScopeValue *aSearchScope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchScope(aSearchScope); } \
  NS_SCRIPTABLE NS_IMETHOD GetPasswordPromptRequired(PRBool *aPasswordPromptRequired) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPasswordPromptRequired(aPasswordPromptRequired); } \
  NS_SCRIPTABLE NS_IMETHOD ConfigureTemporaryFilters(nsIMsgFilterList *filterList) { return !_to ? NS_ERROR_NULL_POINTER : _to->ConfigureTemporaryFilters(filterList); } \
  NS_SCRIPTABLE NS_IMETHOD ClearTemporaryReturnReceiptsFilter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearTemporaryReturnReceiptsFilter(); } \
  NS_SCRIPTABLE NS_IMETHOD GetSpamSettings(nsISpamSettings **aSpamSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSpamSettings(aSpamSettings); } \
  NS_SCRIPTABLE NS_IMETHOD GetSpamFilterPlugin(nsIMsgFilterPlugin **aSpamFilterPlugin) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSpamFilterPlugin(aSpamFilterPlugin); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFolderFromURI(nsIMsgFolder *aFolderResource, const nsACString & aURI, nsIMsgFolder **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgFolderFromURI(aFolderResource, aURI, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetIsDeferredTo(PRBool *aIsDeferredTo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsDeferredTo(aIsDeferredTo); } \
  NS_SCRIPTABLE NS_IMETHOD GetIncomingDuplicateAction(PRInt32 *aIncomingDuplicateAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIncomingDuplicateAction(aIncomingDuplicateAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetIncomingDuplicateAction(PRInt32 aIncomingDuplicateAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIncomingDuplicateAction(aIncomingDuplicateAction); } \
  NS_SCRIPTABLE NS_IMETHOD IsNewHdrDuplicate(nsIMsgDBHdr *aNewHdr, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsNewHdrDuplicate(aNewHdr, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetForcePropertyEmpty(const char *propertyName, PRBool aForcePropertyEmpty) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForcePropertyEmpty(propertyName, aForcePropertyEmpty); } \
  NS_SCRIPTABLE NS_IMETHOD GetForcePropertyEmpty(const char *propertyName, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForcePropertyEmpty(propertyName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetArchiveGranularity(PRInt32 *aArchiveGranularity) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArchiveGranularity(aArchiveGranularity); } \
  NS_SCRIPTABLE NS_IMETHOD SetArchiveGranularity(PRInt32 aArchiveGranularity) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetArchiveGranularity(aArchiveGranularity); } \
  NS_SCRIPTABLE NS_IMETHOD GetArchiveKeepFolderStructure(PRBool *aArchiveKeepFolderStructure) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArchiveKeepFolderStructure(aArchiveKeepFolderStructure); } \
  NS_SCRIPTABLE NS_IMETHOD SetArchiveKeepFolderStructure(PRBool aArchiveKeepFolderStructure) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetArchiveKeepFolderStructure(aArchiveKeepFolderStructure); } 

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

/* Header file */
class nsMsgIncomingServer : public nsIMsgIncomingServer
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGINCOMINGSERVER

  nsMsgIncomingServer();

private:
  ~nsMsgIncomingServer();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgIncomingServer, nsIMsgIncomingServer)

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

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

/* attribute ACString key; */
NS_IMETHODIMP nsMsgIncomingServer::GetKey(nsACString & aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetKey(const nsACString & aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString prettyName; */
NS_IMETHODIMP nsMsgIncomingServer::GetPrettyName(nsAString & aPrettyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetPrettyName(const nsAString & aPrettyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString constructedPrettyName; */
NS_IMETHODIMP nsMsgIncomingServer::GetConstructedPrettyName(nsAString & aConstructedPrettyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString hostName; */
NS_IMETHODIMP nsMsgIncomingServer::GetHostName(nsACString & aHostName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetHostName(const nsACString & aHostName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString realHostName; */
NS_IMETHODIMP nsMsgIncomingServer::GetRealHostName(nsACString & aRealHostName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetRealHostName(const nsACString & aRealHostName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long port; */
NS_IMETHODIMP nsMsgIncomingServer::GetPort(PRInt32 *aPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetPort(PRInt32 aPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString username; */
NS_IMETHODIMP nsMsgIncomingServer::GetUsername(nsACString & aUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetUsername(const nsACString & aUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString realUsername; */
NS_IMETHODIMP nsMsgIncomingServer::GetRealUsername(nsACString & aRealUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetRealUsername(const nsACString & aRealUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString type; */
NS_IMETHODIMP nsMsgIncomingServer::GetType(nsACString & aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetType(const nsACString & aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString accountManagerChrome; */
NS_IMETHODIMP nsMsgIncomingServer::GetAccountManagerChrome(nsAString & aAccountManagerChrome)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString localStoreType; */
NS_IMETHODIMP nsMsgIncomingServer::GetLocalStoreType(nsACString & aLocalStoreType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onUserOrHostNameChanged (in ACString oldName, in ACString newName); */
NS_IMETHODIMP nsMsgIncomingServer::OnUserOrHostNameChanged(const nsACString & oldName, const nsACString & newName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString password; */
NS_IMETHODIMP nsMsgIncomingServer::GetPassword(nsACString & aPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetPassword(const nsACString & aPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getPasswordWithUI (in AString aPromptString, in AString aPromptTitle, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgIncomingServer::GetPasswordWithUI(const nsAString & aPromptString, const nsAString & aPromptTitle, nsIMsgWindow *aMsgWindow, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void forgetPassword (); */
NS_IMETHODIMP nsMsgIncomingServer::ForgetPassword()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void forgetSessionPassword (); */
NS_IMETHODIMP nsMsgIncomingServer::ForgetSessionPassword()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean downloadOnBiff; */
NS_IMETHODIMP nsMsgIncomingServer::GetDownloadOnBiff(PRBool *aDownloadOnBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetDownloadOnBiff(PRBool aDownloadOnBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean doBiff; */
NS_IMETHODIMP nsMsgIncomingServer::GetDoBiff(PRBool *aDoBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetDoBiff(PRBool aDoBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long biffMinutes; */
NS_IMETHODIMP nsMsgIncomingServer::GetBiffMinutes(PRInt32 *aBiffMinutes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetBiffMinutes(PRInt32 aBiffMinutes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long biffState; */
NS_IMETHODIMP nsMsgIncomingServer::GetBiffState(PRUint32 *aBiffState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetBiffState(PRUint32 aBiffState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean performingBiff; */
NS_IMETHODIMP nsMsgIncomingServer::GetPerformingBiff(PRBool *aPerformingBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetPerformingBiff(PRBool aPerformingBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsILocalFile localPath; */
NS_IMETHODIMP nsMsgIncomingServer::GetLocalPath(nsILocalFile **aLocalPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetLocalPath(nsILocalFile *aLocalPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString serverURI; */
NS_IMETHODIMP nsMsgIncomingServer::GetServerURI(nsACString & aServerURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgFolder rootFolder; */
NS_IMETHODIMP nsMsgIncomingServer::GetRootFolder(nsIMsgFolder **aRootFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetRootFolder(nsIMsgFolder *aRootFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgFolder rootMsgFolder; */
NS_IMETHODIMP nsMsgIncomingServer::GetRootMsgFolder(nsIMsgFolder **aRootMsgFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean serverBusy; */
NS_IMETHODIMP nsMsgIncomingServer::GetServerBusy(PRBool *aServerBusy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetServerBusy(PRBool aServerBusy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isSecure; */
NS_IMETHODIMP nsMsgIncomingServer::GetIsSecure(PRBool *aIsSecure)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgAuthMethodValue authMethod; */
NS_IMETHODIMP nsMsgIncomingServer::GetAuthMethod(nsMsgAuthMethodValue *aAuthMethod)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetAuthMethod(nsMsgAuthMethodValue aAuthMethod)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsMsgSocketTypeValue socketType; */
NS_IMETHODIMP nsMsgIncomingServer::GetSocketType(nsMsgSocketTypeValue *aSocketType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetSocketType(nsMsgSocketTypeValue aSocketType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isSecureServer; */
NS_IMETHODIMP nsMsgIncomingServer::GetIsSecureServer(PRBool *aIsSecureServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean emptyTrashOnExit; */
NS_IMETHODIMP nsMsgIncomingServer::GetEmptyTrashOnExit(PRBool *aEmptyTrashOnExit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetEmptyTrashOnExit(PRBool aEmptyTrashOnExit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFilterList getFilterList (in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgIncomingServer::GetFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setFilterList (in nsIMsgFilterList aFilterList); */
NS_IMETHODIMP nsMsgIncomingServer::SetFilterList(nsIMsgFilterList *aFilterList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFilterList getEditableFilterList (in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgIncomingServer::GetEditableFilterList(nsIMsgWindow *aMsgWindow, nsIMsgFilterList **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEditableFilterList (in nsIMsgFilterList aFilterList); */
NS_IMETHODIMP nsMsgIncomingServer::SetEditableFilterList(nsIMsgFilterList *aFilterList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setDefaultLocalPath (in nsILocalFile aDefaultLocalPath); */
NS_IMETHODIMP nsMsgIncomingServer::SetDefaultLocalPath(nsILocalFile *aDefaultLocalPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIURI verifyLogon (in nsIUrlListener aUrlListener, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgIncomingServer::VerifyLogon(nsIUrlListener *aUrlListener, nsIMsgWindow *aMsgWindow, nsIURI **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void performBiff (in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgIncomingServer::PerformBiff(nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNewMessages (in nsIMsgFolder aFolder, in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener); */
NS_IMETHODIMP nsMsgIncomingServer::GetNewMessages(nsIMsgFolder *aFolder, nsIMsgWindow *aMsgWindow, nsIUrlListener *aUrlListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean serverRequiresPasswordForBiff; */
NS_IMETHODIMP nsMsgIncomingServer::GetServerRequiresPasswordForBiff(PRBool *aServerRequiresPasswordForBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void performExpand (in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgIncomingServer::PerformExpand(nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void writeToFolderCache (in nsIMsgFolderCache folderCache); */
NS_IMETHODIMP nsMsgIncomingServer::WriteToFolderCache(nsIMsgFolderCache *folderCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void closeCachedConnections (); */
NS_IMETHODIMP nsMsgIncomingServer::CloseCachedConnections()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void shutdown (); */
NS_IMETHODIMP nsMsgIncomingServer::Shutdown()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getBoolValue (in string attr); */
NS_IMETHODIMP nsMsgIncomingServer::GetBoolValue(const char *attr, PRBool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setBoolValue (in string attr, in boolean value); */
NS_IMETHODIMP nsMsgIncomingServer::SetBoolValue(const char *attr, PRBool value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getCharValue (in string attr); */
NS_IMETHODIMP nsMsgIncomingServer::GetCharValue(const char *attr, nsACString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCharValue (in string attr, in ACString value); */
NS_IMETHODIMP nsMsgIncomingServer::SetCharValue(const char *attr, const nsACString & value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getUnicharValue (in string attr); */
NS_IMETHODIMP nsMsgIncomingServer::GetUnicharValue(const char *attr, nsAString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setUnicharValue (in string attr, in AString value); */
NS_IMETHODIMP nsMsgIncomingServer::SetUnicharValue(const char *attr, const nsAString & value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* long getIntValue (in string attr); */
NS_IMETHODIMP nsMsgIncomingServer::GetIntValue(const char *attr, PRInt32 *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setIntValue (in string attr, in long value); */
NS_IMETHODIMP nsMsgIncomingServer::SetIntValue(const char *attr, PRInt32 value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsILocalFile getFileValue (in string relpref, in string abspref); */
NS_IMETHODIMP nsMsgIncomingServer::GetFileValue(const char *relpref, const char *abspref, nsILocalFile **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setFileValue (in string relpref, in string abspref, in nsILocalFile aValue); */
NS_IMETHODIMP nsMsgIncomingServer::SetFileValue(const char *relpref, const char *abspref, nsILocalFile *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearAllValues (); */
NS_IMETHODIMP nsMsgIncomingServer::ClearAllValues()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeFiles (); */
NS_IMETHODIMP nsMsgIncomingServer::RemoveFiles()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean valid; */
NS_IMETHODIMP nsMsgIncomingServer::GetValid(PRBool *aValid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetValid(PRBool aValid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString toString (); */
NS_IMETHODIMP nsMsgIncomingServer::ToString(nsAString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void displayOfflineMsg (in nsIMsgWindow aWindow); */
NS_IMETHODIMP nsMsgIncomingServer::DisplayOfflineMsg(nsIMsgWindow *aWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean equals (in nsIMsgIncomingServer server); */
NS_IMETHODIMP nsMsgIncomingServer::Equals(nsIMsgIncomingServer *server, PRBool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean downloadMessagesAtStartup; */
NS_IMETHODIMP nsMsgIncomingServer::GetDownloadMessagesAtStartup(PRBool *aDownloadMessagesAtStartup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean canHaveFilters; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanHaveFilters(PRBool *aCanHaveFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetCanHaveFilters(PRBool aCanHaveFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean canDelete; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanDelete(PRBool *aCanDelete)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetCanDelete(PRBool aCanDelete)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean loginAtStartUp; */
NS_IMETHODIMP nsMsgIncomingServer::GetLoginAtStartUp(PRBool *aLoginAtStartUp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetLoginAtStartUp(PRBool aLoginAtStartUp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean limitOfflineMessageSize; */
NS_IMETHODIMP nsMsgIncomingServer::GetLimitOfflineMessageSize(PRBool *aLimitOfflineMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetLimitOfflineMessageSize(PRBool aLimitOfflineMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long maxMessageSize; */
NS_IMETHODIMP nsMsgIncomingServer::GetMaxMessageSize(PRInt32 *aMaxMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetMaxMessageSize(PRInt32 aMaxMessageSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgRetentionSettings retentionSettings; */
NS_IMETHODIMP nsMsgIncomingServer::GetRetentionSettings(nsIMsgRetentionSettings **aRetentionSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetRetentionSettings(nsIMsgRetentionSettings *aRetentionSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canBeDefaultServer; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanBeDefaultServer(PRBool *aCanBeDefaultServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canSearchMessages; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanSearchMessages(PRBool *aCanSearchMessages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canEmptyTrashOnExit; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanEmptyTrashOnExit(PRBool *aCanEmptyTrashOnExit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean displayStartupPage; */
NS_IMETHODIMP nsMsgIncomingServer::GetDisplayStartupPage(PRBool *aDisplayStartupPage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetDisplayStartupPage(PRBool aDisplayStartupPage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgDownloadSettings downloadSettings; */
NS_IMETHODIMP nsMsgIncomingServer::GetDownloadSettings(nsIMsgDownloadSettings **aDownloadSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetDownloadSettings(nsIMsgDownloadSettings *aDownloadSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long offlineSupportLevel; */
NS_IMETHODIMP nsMsgIncomingServer::GetOfflineSupportLevel(PRInt32 *aOfflineSupportLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetOfflineSupportLevel(PRInt32 aOfflineSupportLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString generatePrettyNameForMigration (); */
NS_IMETHODIMP nsMsgIncomingServer::GeneratePrettyNameForMigration(nsAString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean supportsDiskSpace; */
NS_IMETHODIMP nsMsgIncomingServer::GetSupportsDiskSpace(PRBool *aSupportsDiskSpace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean hidden; */
NS_IMETHODIMP nsMsgIncomingServer::GetHidden(PRBool *aHidden)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetHidden(PRBool aHidden)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean defaultCopiesAndFoldersPrefsToServer; */
NS_IMETHODIMP nsMsgIncomingServer::GetDefaultCopiesAndFoldersPrefsToServer(PRBool *aDefaultCopiesAndFoldersPrefsToServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetDefaultCopiesAndFoldersPrefsToServer(PRBool aDefaultCopiesAndFoldersPrefsToServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean canCreateFoldersOnServer; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanCreateFoldersOnServer(PRBool *aCanCreateFoldersOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetCanCreateFoldersOnServer(PRBool aCanCreateFoldersOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean canFileMessagesOnServer; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanFileMessagesOnServer(PRBool *aCanFileMessagesOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetCanFileMessagesOnServer(PRBool aCanFileMessagesOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canCompactFoldersOnServer; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanCompactFoldersOnServer(PRBool *aCanCompactFoldersOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canUndoDeleteOnServer; */
NS_IMETHODIMP nsMsgIncomingServer::GetCanUndoDeleteOnServer(PRBool *aCanUndoDeleteOnServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsMsgSearchScopeValue filterScope; */
NS_IMETHODIMP nsMsgIncomingServer::GetFilterScope(nsMsgSearchScopeValue *aFilterScope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsMsgSearchScopeValue searchScope; */
NS_IMETHODIMP nsMsgIncomingServer::GetSearchScope(nsMsgSearchScopeValue *aSearchScope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean passwordPromptRequired; */
NS_IMETHODIMP nsMsgIncomingServer::GetPasswordPromptRequired(PRBool *aPasswordPromptRequired)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void configureTemporaryFilters (in nsIMsgFilterList filterList); */
NS_IMETHODIMP nsMsgIncomingServer::ConfigureTemporaryFilters(nsIMsgFilterList *filterList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearTemporaryReturnReceiptsFilter (); */
NS_IMETHODIMP nsMsgIncomingServer::ClearTemporaryReturnReceiptsFilter()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISpamSettings spamSettings; */
NS_IMETHODIMP nsMsgIncomingServer::GetSpamSettings(nsISpamSettings **aSpamSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgFilterPlugin spamFilterPlugin; */
NS_IMETHODIMP nsMsgIncomingServer::GetSpamFilterPlugin(nsIMsgFilterPlugin **aSpamFilterPlugin)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgFolder getMsgFolderFromURI (in nsIMsgFolder aFolderResource, in ACString aURI); */
NS_IMETHODIMP nsMsgIncomingServer::GetMsgFolderFromURI(nsIMsgFolder *aFolderResource, const nsACString & aURI, nsIMsgFolder **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isDeferredTo; */
NS_IMETHODIMP nsMsgIncomingServer::GetIsDeferredTo(PRBool *aIsDeferredTo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long incomingDuplicateAction; */
NS_IMETHODIMP nsMsgIncomingServer::GetIncomingDuplicateAction(PRInt32 *aIncomingDuplicateAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetIncomingDuplicateAction(PRInt32 aIncomingDuplicateAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isNewHdrDuplicate (in nsIMsgDBHdr aNewHdr); */
NS_IMETHODIMP nsMsgIncomingServer::IsNewHdrDuplicate(nsIMsgDBHdr *aNewHdr, PRBool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setForcePropertyEmpty (in string propertyName, in boolean aForcePropertyEmpty); */
NS_IMETHODIMP nsMsgIncomingServer::SetForcePropertyEmpty(const char *propertyName, PRBool aForcePropertyEmpty)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getForcePropertyEmpty (in string propertyName); */
NS_IMETHODIMP nsMsgIncomingServer::GetForcePropertyEmpty(const char *propertyName, PRBool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long archiveGranularity; */
NS_IMETHODIMP nsMsgIncomingServer::GetArchiveGranularity(PRInt32 *aArchiveGranularity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetArchiveGranularity(PRInt32 aArchiveGranularity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean archiveKeepFolderStructure; */
NS_IMETHODIMP nsMsgIncomingServer::GetArchiveKeepFolderStructure(PRBool *aArchiveKeepFolderStructure)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgIncomingServer::SetArchiveKeepFolderStructure(PRBool aArchiveKeepFolderStructure)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/*
 * Following values for offline support have been used by
 * various files. If you are modifying any of the values
 * below, please do take care of the following files.
 * - mozilla/mailnews/base/src/nsMsgAccountManagerDS.cpp
 * - mozilla/mailnews/base/util/nsMsgIncomingServer.cpp
 * - mozilla/mailnews/imap/src/nsImapIncomingServer.cpp
 * - mozilla/mailnews/local/src/nsPop3IncomingServer.cpp
 * - mozilla/mailnews/news/src/nsNntpIncomingServer.cpp
 * - mozilla/mailnews/base/content/msgAccountCentral.js
 * - mozilla/modules/libpref/src/init/mailnews.js
 * - ns/modules/libpref/src/init/mailnews-ns.js
 * - ns/mailnews/base/ispdata/aol.rdf
 * - ns/mailnews/base/ispdata/nswebmail.rdf
 */
#define OFFLINE_SUPPORT_LEVEL_NONE 0
#define OFFLINE_SUPPORT_LEVEL_REGULAR 10
#define OFFLINE_SUPPORT_LEVEL_EXTENDED 20
#define OFFLINE_SUPPORT_LEVEL_UNDEFINED -1
// Value when no port setting is found
#define PORT_NOT_SET -1
/* some useful macros to implement nsIMsgIncomingServer accessors */
#define NS_IMPL_SERVERPREF_STR(_class, _postfix, _prefname) \
NS_IMETHODIMP                              \
_class::Get##_postfix(nsACString& retval)  \
{                                          \
  return GetCharValue(_prefname, retval);  \
}                                          \
NS_IMETHODIMP                              \
_class::Set##_postfix(const nsACString& chvalue) \
{                                          \
  return SetCharValue(_prefname, chvalue); \
}
#define NS_IMPL_SERVERPREF_BOOL(_class, _postfix, _prefname)\
NS_IMETHODIMP                                               \
_class::Get##_postfix(PRBool *retval)                       \
{                                                           \
  return GetBoolValue(_prefname, retval);                   \
}                                                           \
NS_IMETHODIMP                                               \
_class::Set##_postfix(PRBool bvalue)                        \
{                                                           \
  return SetBoolValue(_prefname, bvalue);                   \
}
#define NS_IMPL_SERVERPREF_INT(_class, _postfix, _prefname)\
NS_IMETHODIMP                                              \
_class::Get##_postfix(PRInt32 *retval)                     \
{                                                          \
  return GetIntValue(_prefname, retval);                   \
}                                                          \
NS_IMETHODIMP                                              \
_class::Set##_postfix(PRInt32 ivalue)                      \
{                                                          \
  return SetIntValue(_prefname, ivalue);                   \
}

#endif /* __gen_nsIMsgIncomingServer_h__ */
