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

#ifndef __gen_nsIImapUrl_h__
#define __gen_nsIImapUrl_h__


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

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

class nsIImapMessageSink; /* forward declaration */

class nsIImapServerSink; /* forward declaration */

class nsIImapMockChannel; /* forward declaration */

class nsIFile; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

typedef PRInt32  nsImapAction;

typedef PRInt32  nsImapState;

typedef PRUint16  imapMessageFlagsType;

typedef PRInt32  nsImapContentModifiedType;


/* starting interface:    nsImapContentModifiedTypes */
#define NS_IMAPCONTENTMODIFIEDTYPES_IID_STR "2e91901e-ff6c-11d3-b9fa-00108335942a"

#define NS_IMAPCONTENTMODIFIEDTYPES_IID \
  {0x2e91901e, 0xff6c, 0x11d3, \
    { 0xb9, 0xfa, 0x00, 0x10, 0x83, 0x35, 0x94, 0x2a }}

class NS_NO_VTABLE NS_SCRIPTABLE nsImapContentModifiedTypes {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMAPCONTENTMODIFIEDTYPES_IID)

  enum { IMAP_CONTENT_NOT_MODIFIED = 0 };

  enum { IMAP_CONTENT_MODIFIED_VIEW_INLINE = 1 };

  enum { IMAP_CONTENT_MODIFIED_VIEW_AS_LINKS = 2 };

  enum { IMAP_CONTENT_FORCE_CONTENT_NOT_MODIFIED = 3 };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsImapContentModifiedTypes, NS_IMAPCONTENTMODIFIEDTYPES_IID)

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

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

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

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

/* Header file */
class nsmapContentModifiedTypes : public nsImapContentModifiedTypes
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMAPCONTENTMODIFIEDTYPES

  nsmapContentModifiedTypes();

private:
  ~nsmapContentModifiedTypes();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsmapContentModifiedTypes, nsImapContentModifiedTypes)

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

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

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


/* starting interface:    nsIImapUrl */
#define NS_IIMAPURL_IID_STR "efd92a5f-a4fe-4093-ac9c-d23fae3950cd"

#define NS_IIMAPURL_IID \
  {0xefd92a5f, 0xa4fe, 0x4093, \
    { 0xac, 0x9c, 0xd2, 0x3f, 0xae, 0x39, 0x50, 0xcd }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIImapUrl : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIMAPURL_IID)

  /* attribute nsIImapMailFolderSink imapMailFolderSink; */
  NS_SCRIPTABLE NS_IMETHOD GetImapMailFolderSink(nsIImapMailFolderSink **aImapMailFolderSink) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetImapMailFolderSink(nsIImapMailFolderSink *aImapMailFolderSink) = 0;

  /* attribute nsIImapMessageSink imapMessageSink; */
  NS_SCRIPTABLE NS_IMETHOD GetImapMessageSink(nsIImapMessageSink **aImapMessageSink) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetImapMessageSink(nsIImapMessageSink *aImapMessageSink) = 0;

  /* attribute nsIImapServerSink imapServerSink; */
  NS_SCRIPTABLE NS_IMETHOD GetImapServerSink(nsIImapServerSink **aImapServerSink) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetImapServerSink(nsIImapServerSink *aImapServerSink) = 0;

  /* attribute nsImapAction imapAction; */
  NS_SCRIPTABLE NS_IMETHOD GetImapAction(nsImapAction *aImapAction) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetImapAction(nsImapAction aImapAction) = 0;

  /* readonly attribute nsImapState requiredImapState; */
  NS_SCRIPTABLE NS_IMETHOD GetRequiredImapState(nsImapState *aRequiredImapState) = 0;

  /* readonly attribute string imapPartToFetch; */
  NS_SCRIPTABLE NS_IMETHOD GetImapPartToFetch(char **aImapPartToFetch) = 0;

  /* readonly attribute ACString customAttributeToFetch; */
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeToFetch(nsACString & aCustomAttributeToFetch) = 0;

  /* attribute ACString customAttributeResult; */
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeResult(nsACString & aCustomAttributeResult) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCustomAttributeResult(const nsACString & aCustomAttributeResult) = 0;

  /* readonly attribute ACString command; */
  NS_SCRIPTABLE NS_IMETHOD GetCommand(nsACString & aCommand) = 0;

  /* attribute ACString customCommandResult; */
  NS_SCRIPTABLE NS_IMETHOD GetCustomCommandResult(nsACString & aCustomCommandResult) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCustomCommandResult(const nsACString & aCustomCommandResult) = 0;

  /* readonly attribute ACString customAddFlags; */
  NS_SCRIPTABLE NS_IMETHOD GetCustomAddFlags(nsACString & aCustomAddFlags) = 0;

  /* readonly attribute ACString customSubtractFlags; */
  NS_SCRIPTABLE NS_IMETHOD GetCustomSubtractFlags(nsACString & aCustomSubtractFlags) = 0;

  /* void allocateCanonicalPath (in string aServerPath, in char aOnlineDelimiter, out string aAllocatedPath); */
  NS_SCRIPTABLE NS_IMETHOD AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM) = 0;

  /* void allocateServerPath (in string aCanonicalPath, in char aOnlineDelimiter, out string aAllocatedPath); */
  NS_SCRIPTABLE NS_IMETHOD AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM) = 0;

  /* string createServerSourceFolderPathString (); */
  NS_SCRIPTABLE NS_IMETHOD CreateServerSourceFolderPathString(char **_retval NS_OUTPARAM) = 0;

  /* string createCanonicalSourceFolderPathString (); */
  NS_SCRIPTABLE NS_IMETHOD CreateCanonicalSourceFolderPathString(char **_retval NS_OUTPARAM) = 0;

  /* string createServerDestinationFolderPathString (); */
  NS_SCRIPTABLE NS_IMETHOD CreateServerDestinationFolderPathString(char **_retval NS_OUTPARAM) = 0;

  /* string addOnlineDirectoryIfNecessary (in string onlineMailboxName); */
  NS_SCRIPTABLE NS_IMETHOD AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval NS_OUTPARAM) = 0;

  /* void createSearchCriteriaString (out string aResult); */
  NS_SCRIPTABLE NS_IMETHOD CreateSearchCriteriaString(char **aResult NS_OUTPARAM) = 0;

  /* readonly attribute ACString listOfMessageIds; */
  NS_SCRIPTABLE NS_IMETHOD GetListOfMessageIds(nsACString & aListOfMessageIds) = 0;

  /* boolean messageIdsAreUids (); */
  NS_SCRIPTABLE NS_IMETHOD MessageIdsAreUids(PRBool *_retval NS_OUTPARAM) = 0;

  /* readonly attribute imapMessageFlagsType msgFlags; */
  NS_SCRIPTABLE NS_IMETHOD GetMsgFlags(imapMessageFlagsType *aMsgFlags) = 0;

  /* readonly attribute long numBytesToFetch; */
  NS_SCRIPTABLE NS_IMETHOD GetNumBytesToFetch(PRInt32 *aNumBytesToFetch) = 0;

  /* attribute char onlineSubDirSeparator; */
  NS_SCRIPTABLE NS_IMETHOD GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetOnlineSubDirSeparator(char aOnlineSubDirSeparator) = 0;

  /* attribute boolean allowContentChange; */
  NS_SCRIPTABLE NS_IMETHOD GetAllowContentChange(PRBool *aAllowContentChange) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(PRBool aAllowContentChange) = 0;

  /* attribute boolean mimePartSelectorDetected; */
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected) = 0;

  /* attribute nsImapContentModifiedType contentModified; */
  NS_SCRIPTABLE NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified) = 0;

  /* attribute boolean fetchPartsOnDemand; */
  NS_SCRIPTABLE NS_IMETHOD GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand) = 0;

  /* attribute boolean msgLoadingFromCache; */
  NS_SCRIPTABLE NS_IMETHOD GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache) = 0;

  /* attribute boolean externalLinkUrl; */
  NS_SCRIPTABLE NS_IMETHOD GetExternalLinkUrl(PRBool *aExternalLinkUrl) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetExternalLinkUrl(PRBool aExternalLinkUrl) = 0;

  /* attribute boolean validUrl; */
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(PRBool *aValidUrl) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(PRBool aValidUrl) = 0;

  /* attribute nsISupports copyState; */
  NS_SCRIPTABLE NS_IMETHOD GetCopyState(nsISupports **aCopyState) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetCopyState(nsISupports *aCopyState) = 0;

  /* attribute nsIFile msgFile; */
  NS_SCRIPTABLE NS_IMETHOD GetMsgFile(nsIFile **aMsgFile) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMsgFile(nsIFile *aMsgFile) = 0;

  /* attribute nsIImapMockChannel mockChannel; */
  NS_SCRIPTABLE NS_IMETHOD GetMockChannel(nsIImapMockChannel **aMockChannel) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMockChannel(nsIImapMockChannel *aMockChannel) = 0;

  /**
   * Set to true if we should store the msg(s) for offline use if we can,
   * e.g., we're fetching a message and the folder is configured for offline
   * use and we're not doing mime parts on demand.
   */
  /* attribute boolean storeResultsOffline; */
  NS_SCRIPTABLE NS_IMETHOD GetStoreResultsOffline(PRBool *aStoreResultsOffline) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(PRBool aStoreResultsOffline) = 0;

  /**
   * If we fallback from fetching by parts to fetching the whole message,
   *  because all the parts were inline, this tells us we should store
   * the message offline.
   */
  /* attribute boolean storeOfflineOnFallback; */
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(PRBool *aStoreOfflineOnFallback) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(PRBool aStoreOfflineOnFallback) = 0;

  /**
   * This attribute defaults to false, but if we only want to use the offline
   * cache (disk, memory, or offline store) to fetch the message, then we set
   * this to true. Currently, nsIMsgMessageService.streamMessage does this.
   */
  /* attribute boolean localFetchOnly; */
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(PRBool *aLocalFetchOnly) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(PRBool aLocalFetchOnly) = 0;

  /* attribute boolean rerunningUrl; */
  NS_SCRIPTABLE NS_IMETHOD GetRerunningUrl(PRBool *aRerunningUrl) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetRerunningUrl(PRBool aRerunningUrl) = 0;

  /**
   * @{
   * This is used to tell the runner of the url more about the status of
   * the command, beyond whether it was successful or not. For example,
   * subtracting flags from a UID that doesn't exist isn't an error
   * (the server returns OK), but the backend code may want to know about it.
   */
  /* attribute long extraStatus; */
  NS_SCRIPTABLE NS_IMETHOD GetExtraStatus(PRInt32 *aExtraStatus) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetExtraStatus(PRInt32 aExtraStatus) = 0;

  /**
   * Current possible extra status values
   */
  enum { ImapStatusNone = 0 };

  enum { ImapStatusFlagChangeFailed = 1 };

  enum { ImapStatusFlagsNotSettable = 2 };

  /** @} */
  enum { nsImapAuthenticatedState = 0 };

  enum { nsImapSelectedState = 1 };

  enum { nsImapActionSendText = 0 };

  enum { nsImapTest = 1 };

  enum { nsImapCreateFolder = 5 };

  enum { nsImapDeleteFolder = 6 };

  enum { nsImapRenameFolder = 7 };

  enum { nsImapMoveFolderHierarchy = 8 };

  enum { nsImapLsubFolders = 9 };

  enum { nsImapGetMailAccountUrl = 10 };

  enum { nsImapDiscoverChildrenUrl = 11 };

  enum { nsImapDiscoverAllBoxesUrl = 13 };

  enum { nsImapDiscoverAllAndSubscribedBoxesUrl = 14 };

  enum { nsImapAppendMsgFromFile = 15 };

  enum { nsImapSubscribe = 16 };

  enum { nsImapUnsubscribe = 17 };

  enum { nsImapRefreshACL = 18 };

  enum { nsImapRefreshAllACLs = 19 };

  enum { nsImapListFolder = 20 };

  enum { nsImapUpgradeToSubscription = 21 };

  enum { nsImapFolderStatus = 22 };

  enum { nsImapRefreshFolderUrls = 23 };

  enum { nsImapEnsureExistsFolder = 24 };

  enum { nsImapOfflineToOnlineCopy = 25 };

  enum { nsImapOfflineToOnlineMove = 26 };

  enum { nsImapVerifylogon = 27 };

  enum { nsImapSelectFolder = 268435458 };

  enum { nsImapLiteSelectFolder = 268435459 };

  enum { nsImapExpungeFolder = 268435460 };

  enum { nsImapMsgFetch = 268435480 };

  enum { nsImapMsgHeader = 268435481 };

  enum { nsImapSearch = 268435482 };

  enum { nsImapDeleteMsg = 268435483 };

  enum { nsImapDeleteAllMsgs = 268435484 };

  enum { nsImapAddMsgFlags = 268435485 };

  enum { nsImapSubtractMsgFlags = 268435486 };

  enum { nsImapSetMsgFlags = 268435487 };

  enum { nsImapOnlineCopy = 268435488 };

  enum { nsImapOnlineMove = 268435489 };

  enum { nsImapOnlineToOfflineCopy = 268435490 };

  enum { nsImapOnlineToOfflineMove = 268435491 };

  enum { nsImapMsgPreview = 268435492 };

  enum { nsImapBiff = 268435494 };

  enum { nsImapSelectNoopFolder = 268435495 };

  enum { nsImapAppendDraftFromFile = 268435496 };

  enum { nsImapUidExpunge = 268435497 };

  enum { nsImapSaveMessageToDisk = 268435504 };

  enum { nsImapOpenMimePart = 268435505 };

  enum { nsImapMsgDownloadForOffline = 268435506 };

  enum { nsImapDeleteFolderAndMsgs = 268435507 };

  enum { nsImapUserDefinedMsgCommand = 268435508 };

  enum { nsImapUserDefinedFetchAttribute = 268435509 };

  enum { nsImapMsgFetchPeek = 268435510 };

  enum { nsImapMsgStoreCustomKeywords = 268435511 };

  enum { DEFAULT_IMAP_PORT = 143 };

  enum { DEFAULT_IMAPS_PORT = 993 };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIImapUrl, NS_IIMAPURL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPURL \
  NS_SCRIPTABLE NS_IMETHOD GetImapMailFolderSink(nsIImapMailFolderSink **aImapMailFolderSink); \
  NS_SCRIPTABLE NS_IMETHOD SetImapMailFolderSink(nsIImapMailFolderSink *aImapMailFolderSink); \
  NS_SCRIPTABLE NS_IMETHOD GetImapMessageSink(nsIImapMessageSink **aImapMessageSink); \
  NS_SCRIPTABLE NS_IMETHOD SetImapMessageSink(nsIImapMessageSink *aImapMessageSink); \
  NS_SCRIPTABLE NS_IMETHOD GetImapServerSink(nsIImapServerSink **aImapServerSink); \
  NS_SCRIPTABLE NS_IMETHOD SetImapServerSink(nsIImapServerSink *aImapServerSink); \
  NS_SCRIPTABLE NS_IMETHOD GetImapAction(nsImapAction *aImapAction); \
  NS_SCRIPTABLE NS_IMETHOD SetImapAction(nsImapAction aImapAction); \
  NS_SCRIPTABLE NS_IMETHOD GetRequiredImapState(nsImapState *aRequiredImapState); \
  NS_SCRIPTABLE NS_IMETHOD GetImapPartToFetch(char **aImapPartToFetch); \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeToFetch(nsACString & aCustomAttributeToFetch); \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeResult(nsACString & aCustomAttributeResult); \
  NS_SCRIPTABLE NS_IMETHOD SetCustomAttributeResult(const nsACString & aCustomAttributeResult); \
  NS_SCRIPTABLE NS_IMETHOD GetCommand(nsACString & aCommand); \
  NS_SCRIPTABLE NS_IMETHOD GetCustomCommandResult(nsACString & aCustomCommandResult); \
  NS_SCRIPTABLE NS_IMETHOD SetCustomCommandResult(const nsACString & aCustomCommandResult); \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAddFlags(nsACString & aCustomAddFlags); \
  NS_SCRIPTABLE NS_IMETHOD GetCustomSubtractFlags(nsACString & aCustomSubtractFlags); \
  NS_SCRIPTABLE NS_IMETHOD AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateServerSourceFolderPathString(char **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateCanonicalSourceFolderPathString(char **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateServerDestinationFolderPathString(char **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD CreateSearchCriteriaString(char **aResult NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetListOfMessageIds(nsACString & aListOfMessageIds); \
  NS_SCRIPTABLE NS_IMETHOD MessageIdsAreUids(PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFlags(imapMessageFlagsType *aMsgFlags); \
  NS_SCRIPTABLE NS_IMETHOD GetNumBytesToFetch(PRInt32 *aNumBytesToFetch); \
  NS_SCRIPTABLE NS_IMETHOD GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator); \
  NS_SCRIPTABLE NS_IMETHOD SetOnlineSubDirSeparator(char aOnlineSubDirSeparator); \
  NS_SCRIPTABLE NS_IMETHOD GetAllowContentChange(PRBool *aAllowContentChange); \
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(PRBool aAllowContentChange); \
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected); \
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected); \
  NS_SCRIPTABLE NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified); \
  NS_SCRIPTABLE NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified); \
  NS_SCRIPTABLE NS_IMETHOD GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand); \
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache); \
  NS_SCRIPTABLE NS_IMETHOD SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache); \
  NS_SCRIPTABLE NS_IMETHOD GetExternalLinkUrl(PRBool *aExternalLinkUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetExternalLinkUrl(PRBool aExternalLinkUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(PRBool *aValidUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(PRBool aValidUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetCopyState(nsISupports **aCopyState); \
  NS_SCRIPTABLE NS_IMETHOD SetCopyState(nsISupports *aCopyState); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFile(nsIFile **aMsgFile); \
  NS_SCRIPTABLE NS_IMETHOD SetMsgFile(nsIFile *aMsgFile); \
  NS_SCRIPTABLE NS_IMETHOD GetMockChannel(nsIImapMockChannel **aMockChannel); \
  NS_SCRIPTABLE NS_IMETHOD SetMockChannel(nsIImapMockChannel *aMockChannel); \
  NS_SCRIPTABLE NS_IMETHOD GetStoreResultsOffline(PRBool *aStoreResultsOffline); \
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(PRBool aStoreResultsOffline); \
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(PRBool *aStoreOfflineOnFallback); \
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(PRBool aStoreOfflineOnFallback); \
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(PRBool *aLocalFetchOnly); \
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(PRBool aLocalFetchOnly); \
  NS_SCRIPTABLE NS_IMETHOD GetRerunningUrl(PRBool *aRerunningUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetRerunningUrl(PRBool aRerunningUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetExtraStatus(PRInt32 *aExtraStatus); \
  NS_SCRIPTABLE NS_IMETHOD SetExtraStatus(PRInt32 aExtraStatus); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetImapMailFolderSink(nsIImapMailFolderSink **aImapMailFolderSink) { return _to GetImapMailFolderSink(aImapMailFolderSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapMailFolderSink(nsIImapMailFolderSink *aImapMailFolderSink) { return _to SetImapMailFolderSink(aImapMailFolderSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapMessageSink(nsIImapMessageSink **aImapMessageSink) { return _to GetImapMessageSink(aImapMessageSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapMessageSink(nsIImapMessageSink *aImapMessageSink) { return _to SetImapMessageSink(aImapMessageSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapServerSink(nsIImapServerSink **aImapServerSink) { return _to GetImapServerSink(aImapServerSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapServerSink(nsIImapServerSink *aImapServerSink) { return _to SetImapServerSink(aImapServerSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapAction(nsImapAction *aImapAction) { return _to GetImapAction(aImapAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapAction(nsImapAction aImapAction) { return _to SetImapAction(aImapAction); } \
  NS_SCRIPTABLE NS_IMETHOD GetRequiredImapState(nsImapState *aRequiredImapState) { return _to GetRequiredImapState(aRequiredImapState); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapPartToFetch(char **aImapPartToFetch) { return _to GetImapPartToFetch(aImapPartToFetch); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeToFetch(nsACString & aCustomAttributeToFetch) { return _to GetCustomAttributeToFetch(aCustomAttributeToFetch); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeResult(nsACString & aCustomAttributeResult) { return _to GetCustomAttributeResult(aCustomAttributeResult); } \
  NS_SCRIPTABLE NS_IMETHOD SetCustomAttributeResult(const nsACString & aCustomAttributeResult) { return _to SetCustomAttributeResult(aCustomAttributeResult); } \
  NS_SCRIPTABLE NS_IMETHOD GetCommand(nsACString & aCommand) { return _to GetCommand(aCommand); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomCommandResult(nsACString & aCustomCommandResult) { return _to GetCustomCommandResult(aCustomCommandResult); } \
  NS_SCRIPTABLE NS_IMETHOD SetCustomCommandResult(const nsACString & aCustomCommandResult) { return _to SetCustomCommandResult(aCustomCommandResult); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAddFlags(nsACString & aCustomAddFlags) { return _to GetCustomAddFlags(aCustomAddFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomSubtractFlags(nsACString & aCustomSubtractFlags) { return _to GetCustomSubtractFlags(aCustomSubtractFlags); } \
  NS_SCRIPTABLE NS_IMETHOD AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM) { return _to AllocateCanonicalPath(aServerPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_SCRIPTABLE NS_IMETHOD AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM) { return _to AllocateServerPath(aCanonicalPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_SCRIPTABLE NS_IMETHOD CreateServerSourceFolderPathString(char **_retval NS_OUTPARAM) { return _to CreateServerSourceFolderPathString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateCanonicalSourceFolderPathString(char **_retval NS_OUTPARAM) { return _to CreateCanonicalSourceFolderPathString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateServerDestinationFolderPathString(char **_retval NS_OUTPARAM) { return _to CreateServerDestinationFolderPathString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval NS_OUTPARAM) { return _to AddOnlineDirectoryIfNecessary(onlineMailboxName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateSearchCriteriaString(char **aResult NS_OUTPARAM) { return _to CreateSearchCriteriaString(aResult); } \
  NS_SCRIPTABLE NS_IMETHOD GetListOfMessageIds(nsACString & aListOfMessageIds) { return _to GetListOfMessageIds(aListOfMessageIds); } \
  NS_SCRIPTABLE NS_IMETHOD MessageIdsAreUids(PRBool *_retval NS_OUTPARAM) { return _to MessageIdsAreUids(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFlags(imapMessageFlagsType *aMsgFlags) { return _to GetMsgFlags(aMsgFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetNumBytesToFetch(PRInt32 *aNumBytesToFetch) { return _to GetNumBytesToFetch(aNumBytesToFetch); } \
  NS_SCRIPTABLE NS_IMETHOD GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator) { return _to GetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_SCRIPTABLE NS_IMETHOD SetOnlineSubDirSeparator(char aOnlineSubDirSeparator) { return _to SetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_SCRIPTABLE NS_IMETHOD GetAllowContentChange(PRBool *aAllowContentChange) { return _to GetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(PRBool aAllowContentChange) { return _to SetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected) { return _to GetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected) { return _to SetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_SCRIPTABLE NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified) { return _to GetContentModified(aContentModified); } \
  NS_SCRIPTABLE NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified) { return _to SetContentModified(aContentModified); } \
  NS_SCRIPTABLE NS_IMETHOD GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand) { return _to GetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand) { return _to SetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache) { return _to GetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache) { return _to SetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetExternalLinkUrl(PRBool *aExternalLinkUrl) { return _to GetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetExternalLinkUrl(PRBool aExternalLinkUrl) { return _to SetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(PRBool *aValidUrl) { return _to GetValidUrl(aValidUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(PRBool aValidUrl) { return _to SetValidUrl(aValidUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetCopyState(nsISupports **aCopyState) { return _to GetCopyState(aCopyState); } \
  NS_SCRIPTABLE NS_IMETHOD SetCopyState(nsISupports *aCopyState) { return _to SetCopyState(aCopyState); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFile(nsIFile **aMsgFile) { return _to GetMsgFile(aMsgFile); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgFile(nsIFile *aMsgFile) { return _to SetMsgFile(aMsgFile); } \
  NS_SCRIPTABLE NS_IMETHOD GetMockChannel(nsIImapMockChannel **aMockChannel) { return _to GetMockChannel(aMockChannel); } \
  NS_SCRIPTABLE NS_IMETHOD SetMockChannel(nsIImapMockChannel *aMockChannel) { return _to SetMockChannel(aMockChannel); } \
  NS_SCRIPTABLE NS_IMETHOD GetStoreResultsOffline(PRBool *aStoreResultsOffline) { return _to GetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(PRBool aStoreResultsOffline) { return _to SetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(PRBool *aStoreOfflineOnFallback) { return _to GetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(PRBool aStoreOfflineOnFallback) { return _to SetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(PRBool *aLocalFetchOnly) { return _to GetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(PRBool aLocalFetchOnly) { return _to SetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD GetRerunningUrl(PRBool *aRerunningUrl) { return _to GetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetRerunningUrl(PRBool aRerunningUrl) { return _to SetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetExtraStatus(PRInt32 *aExtraStatus) { return _to GetExtraStatus(aExtraStatus); } \
  NS_SCRIPTABLE NS_IMETHOD SetExtraStatus(PRInt32 aExtraStatus) { return _to SetExtraStatus(aExtraStatus); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIIMAPURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetImapMailFolderSink(nsIImapMailFolderSink **aImapMailFolderSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapMailFolderSink(aImapMailFolderSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapMailFolderSink(nsIImapMailFolderSink *aImapMailFolderSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapMailFolderSink(aImapMailFolderSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapMessageSink(nsIImapMessageSink **aImapMessageSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapMessageSink(aImapMessageSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapMessageSink(nsIImapMessageSink *aImapMessageSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapMessageSink(aImapMessageSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapServerSink(nsIImapServerSink **aImapServerSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapServerSink(aImapServerSink); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapServerSink(nsIImapServerSink *aImapServerSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapServerSink(aImapServerSink); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapAction(nsImapAction *aImapAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapAction(aImapAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetImapAction(nsImapAction aImapAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapAction(aImapAction); } \
  NS_SCRIPTABLE NS_IMETHOD GetRequiredImapState(nsImapState *aRequiredImapState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRequiredImapState(aRequiredImapState); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapPartToFetch(char **aImapPartToFetch) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapPartToFetch(aImapPartToFetch); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeToFetch(nsACString & aCustomAttributeToFetch) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCustomAttributeToFetch(aCustomAttributeToFetch); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAttributeResult(nsACString & aCustomAttributeResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCustomAttributeResult(aCustomAttributeResult); } \
  NS_SCRIPTABLE NS_IMETHOD SetCustomAttributeResult(const nsACString & aCustomAttributeResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCustomAttributeResult(aCustomAttributeResult); } \
  NS_SCRIPTABLE NS_IMETHOD GetCommand(nsACString & aCommand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCommand(aCommand); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomCommandResult(nsACString & aCustomCommandResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCustomCommandResult(aCustomCommandResult); } \
  NS_SCRIPTABLE NS_IMETHOD SetCustomCommandResult(const nsACString & aCustomCommandResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCustomCommandResult(aCustomCommandResult); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomAddFlags(nsACString & aCustomAddFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCustomAddFlags(aCustomAddFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetCustomSubtractFlags(nsACString & aCustomSubtractFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCustomSubtractFlags(aCustomSubtractFlags); } \
  NS_SCRIPTABLE NS_IMETHOD AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->AllocateCanonicalPath(aServerPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_SCRIPTABLE NS_IMETHOD AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->AllocateServerPath(aCanonicalPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_SCRIPTABLE NS_IMETHOD CreateServerSourceFolderPathString(char **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateServerSourceFolderPathString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateCanonicalSourceFolderPathString(char **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCanonicalSourceFolderPathString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateServerDestinationFolderPathString(char **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateServerDestinationFolderPathString(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddOnlineDirectoryIfNecessary(onlineMailboxName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD CreateSearchCriteriaString(char **aResult NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSearchCriteriaString(aResult); } \
  NS_SCRIPTABLE NS_IMETHOD GetListOfMessageIds(nsACString & aListOfMessageIds) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetListOfMessageIds(aListOfMessageIds); } \
  NS_SCRIPTABLE NS_IMETHOD MessageIdsAreUids(PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->MessageIdsAreUids(_retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFlags(imapMessageFlagsType *aMsgFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgFlags(aMsgFlags); } \
  NS_SCRIPTABLE NS_IMETHOD GetNumBytesToFetch(PRInt32 *aNumBytesToFetch) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumBytesToFetch(aNumBytesToFetch); } \
  NS_SCRIPTABLE NS_IMETHOD GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_SCRIPTABLE NS_IMETHOD SetOnlineSubDirSeparator(char aOnlineSubDirSeparator) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_SCRIPTABLE NS_IMETHOD GetAllowContentChange(PRBool *aAllowContentChange) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(PRBool aAllowContentChange) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_SCRIPTABLE NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContentModified(aContentModified); } \
  NS_SCRIPTABLE NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetContentModified(aContentModified); } \
  NS_SCRIPTABLE NS_IMETHOD GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetExternalLinkUrl(PRBool *aExternalLinkUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetExternalLinkUrl(PRBool aExternalLinkUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(PRBool *aValidUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValidUrl(aValidUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(PRBool aValidUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetValidUrl(aValidUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetCopyState(nsISupports **aCopyState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCopyState(aCopyState); } \
  NS_SCRIPTABLE NS_IMETHOD SetCopyState(nsISupports *aCopyState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCopyState(aCopyState); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgFile(nsIFile **aMsgFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgFile(aMsgFile); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgFile(nsIFile *aMsgFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgFile(aMsgFile); } \
  NS_SCRIPTABLE NS_IMETHOD GetMockChannel(nsIImapMockChannel **aMockChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMockChannel(aMockChannel); } \
  NS_SCRIPTABLE NS_IMETHOD SetMockChannel(nsIImapMockChannel *aMockChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMockChannel(aMockChannel); } \
  NS_SCRIPTABLE NS_IMETHOD GetStoreResultsOffline(PRBool *aStoreResultsOffline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(PRBool aStoreResultsOffline) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(PRBool *aStoreOfflineOnFallback) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(PRBool aStoreOfflineOnFallback) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(PRBool *aLocalFetchOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(PRBool aLocalFetchOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD GetRerunningUrl(PRBool *aRerunningUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetRerunningUrl(PRBool aRerunningUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetExtraStatus(PRInt32 *aExtraStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtraStatus(aExtraStatus); } \
  NS_SCRIPTABLE NS_IMETHOD SetExtraStatus(PRInt32 aExtraStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExtraStatus(aExtraStatus); } \

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

/* Header file */
class nsImapUrl : public nsIImapUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIIMAPURL

  nsImapUrl();

private:
  ~nsImapUrl();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsImapUrl, nsIImapUrl)

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

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

/* attribute nsIImapMailFolderSink imapMailFolderSink; */
NS_IMETHODIMP nsImapUrl::GetImapMailFolderSink(nsIImapMailFolderSink **aImapMailFolderSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetImapMailFolderSink(nsIImapMailFolderSink *aImapMailFolderSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIImapMessageSink imapMessageSink; */
NS_IMETHODIMP nsImapUrl::GetImapMessageSink(nsIImapMessageSink **aImapMessageSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetImapMessageSink(nsIImapMessageSink *aImapMessageSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIImapServerSink imapServerSink; */
NS_IMETHODIMP nsImapUrl::GetImapServerSink(nsIImapServerSink **aImapServerSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetImapServerSink(nsIImapServerSink *aImapServerSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsImapAction imapAction; */
NS_IMETHODIMP nsImapUrl::GetImapAction(nsImapAction *aImapAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetImapAction(nsImapAction aImapAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsImapState requiredImapState; */
NS_IMETHODIMP nsImapUrl::GetRequiredImapState(nsImapState *aRequiredImapState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string imapPartToFetch; */
NS_IMETHODIMP nsImapUrl::GetImapPartToFetch(char **aImapPartToFetch)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString customAttributeToFetch; */
NS_IMETHODIMP nsImapUrl::GetCustomAttributeToFetch(nsACString & aCustomAttributeToFetch)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString customAttributeResult; */
NS_IMETHODIMP nsImapUrl::GetCustomAttributeResult(nsACString & aCustomAttributeResult)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetCustomAttributeResult(const nsACString & aCustomAttributeResult)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString command; */
NS_IMETHODIMP nsImapUrl::GetCommand(nsACString & aCommand)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString customCommandResult; */
NS_IMETHODIMP nsImapUrl::GetCustomCommandResult(nsACString & aCustomCommandResult)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetCustomCommandResult(const nsACString & aCustomCommandResult)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString customAddFlags; */
NS_IMETHODIMP nsImapUrl::GetCustomAddFlags(nsACString & aCustomAddFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString customSubtractFlags; */
NS_IMETHODIMP nsImapUrl::GetCustomSubtractFlags(nsACString & aCustomSubtractFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void allocateCanonicalPath (in string aServerPath, in char aOnlineDelimiter, out string aAllocatedPath); */
NS_IMETHODIMP nsImapUrl::AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void allocateServerPath (in string aCanonicalPath, in char aOnlineDelimiter, out string aAllocatedPath); */
NS_IMETHODIMP nsImapUrl::AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string createServerSourceFolderPathString (); */
NS_IMETHODIMP nsImapUrl::CreateServerSourceFolderPathString(char **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string createCanonicalSourceFolderPathString (); */
NS_IMETHODIMP nsImapUrl::CreateCanonicalSourceFolderPathString(char **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string createServerDestinationFolderPathString (); */
NS_IMETHODIMP nsImapUrl::CreateServerDestinationFolderPathString(char **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string addOnlineDirectoryIfNecessary (in string onlineMailboxName); */
NS_IMETHODIMP nsImapUrl::AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createSearchCriteriaString (out string aResult); */
NS_IMETHODIMP nsImapUrl::CreateSearchCriteriaString(char **aResult NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString listOfMessageIds; */
NS_IMETHODIMP nsImapUrl::GetListOfMessageIds(nsACString & aListOfMessageIds)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean messageIdsAreUids (); */
NS_IMETHODIMP nsImapUrl::MessageIdsAreUids(PRBool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute imapMessageFlagsType msgFlags; */
NS_IMETHODIMP nsImapUrl::GetMsgFlags(imapMessageFlagsType *aMsgFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long numBytesToFetch; */
NS_IMETHODIMP nsImapUrl::GetNumBytesToFetch(PRInt32 *aNumBytesToFetch)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute char onlineSubDirSeparator; */
NS_IMETHODIMP nsImapUrl::GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetOnlineSubDirSeparator(char aOnlineSubDirSeparator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean allowContentChange; */
NS_IMETHODIMP nsImapUrl::GetAllowContentChange(PRBool *aAllowContentChange)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetAllowContentChange(PRBool aAllowContentChange)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean mimePartSelectorDetected; */
NS_IMETHODIMP nsImapUrl::GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsImapContentModifiedType contentModified; */
NS_IMETHODIMP nsImapUrl::GetContentModified(nsImapContentModifiedType *aContentModified)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetContentModified(nsImapContentModifiedType aContentModified)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean fetchPartsOnDemand; */
NS_IMETHODIMP nsImapUrl::GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean msgLoadingFromCache; */
NS_IMETHODIMP nsImapUrl::GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean externalLinkUrl; */
NS_IMETHODIMP nsImapUrl::GetExternalLinkUrl(PRBool *aExternalLinkUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetExternalLinkUrl(PRBool aExternalLinkUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean validUrl; */
NS_IMETHODIMP nsImapUrl::GetValidUrl(PRBool *aValidUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetValidUrl(PRBool aValidUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISupports copyState; */
NS_IMETHODIMP nsImapUrl::GetCopyState(nsISupports **aCopyState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetCopyState(nsISupports *aCopyState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIFile msgFile; */
NS_IMETHODIMP nsImapUrl::GetMsgFile(nsIFile **aMsgFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetMsgFile(nsIFile *aMsgFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIImapMockChannel mockChannel; */
NS_IMETHODIMP nsImapUrl::GetMockChannel(nsIImapMockChannel **aMockChannel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetMockChannel(nsIImapMockChannel *aMockChannel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean storeResultsOffline; */
NS_IMETHODIMP nsImapUrl::GetStoreResultsOffline(PRBool *aStoreResultsOffline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetStoreResultsOffline(PRBool aStoreResultsOffline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean storeOfflineOnFallback; */
NS_IMETHODIMP nsImapUrl::GetStoreOfflineOnFallback(PRBool *aStoreOfflineOnFallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetStoreOfflineOnFallback(PRBool aStoreOfflineOnFallback)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean localFetchOnly; */
NS_IMETHODIMP nsImapUrl::GetLocalFetchOnly(PRBool *aLocalFetchOnly)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetLocalFetchOnly(PRBool aLocalFetchOnly)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean rerunningUrl; */
NS_IMETHODIMP nsImapUrl::GetRerunningUrl(PRBool *aRerunningUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetRerunningUrl(PRBool aRerunningUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long extraStatus; */
NS_IMETHODIMP nsImapUrl::GetExtraStatus(PRInt32 *aExtraStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetExtraStatus(PRInt32 aExtraStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIImapUrl_h__ */
