/*
 * 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,
    IMAP_CONTENT_MODIFIED_VIEW_INLINE = 1,
    IMAP_CONTENT_MODIFIED_VIEW_AS_LINKS = 2,
    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 "fe2a8f9e-2886-4146-9896-27fff660c69f"

#define NS_IIMAPURL_IID \
  {0xfe2a8f9e, 0x2886, 0x4146, \
    { 0x98, 0x96, 0x27, 0xff, 0xf6, 0x60, 0xc6, 0x9f }}

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(bool *_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(bool *aAllowContentChange) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(bool aAllowContentChange) = 0;

  /* attribute boolean mimePartSelectorDetected; */
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(bool *aMimePartSelectorDetected) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(bool 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(bool *aFetchPartsOnDemand) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(bool aFetchPartsOnDemand) = 0;

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

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

  /* attribute boolean validUrl; */
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(bool *aValidUrl) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(bool 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;

  /* attribute boolean storeResultsOffline; */
  NS_SCRIPTABLE NS_IMETHOD GetStoreResultsOffline(bool *aStoreResultsOffline) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(bool aStoreResultsOffline) = 0;

  /* attribute boolean storeOfflineOnFallback; */
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(bool *aStoreOfflineOnFallback) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(bool aStoreOfflineOnFallback) = 0;

  /* attribute boolean localFetchOnly; */
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(bool *aLocalFetchOnly) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(bool aLocalFetchOnly) = 0;

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

  /* attribute boolean moreHeadersToDownload; */
  NS_SCRIPTABLE NS_IMETHOD GetMoreHeadersToDownload(bool *aMoreHeadersToDownload) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMoreHeadersToDownload(bool aMoreHeadersToDownload) = 0;

  /* attribute long extraStatus; */
  NS_SCRIPTABLE NS_IMETHOD GetExtraStatus(PRInt32 *aExtraStatus) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetExtraStatus(PRInt32 aExtraStatus) = 0;

  enum {
    ImapStatusNone = 0,
    ImapStatusFlagChangeFailed = 1,
    ImapStatusFlagsNotSettable = 2,
    nsImapAuthenticatedState = 0,
    nsImapSelectedState = 1,
    nsImapActionSendText = 0,
    nsImapTest = 1,
    nsImapCreateFolder = 5,
    nsImapDeleteFolder = 6,
    nsImapRenameFolder = 7,
    nsImapMoveFolderHierarchy = 8,
    nsImapLsubFolders = 9,
    nsImapGetMailAccountUrl = 10,
    nsImapDiscoverChildrenUrl = 11,
    nsImapDiscoverAllBoxesUrl = 13,
    nsImapDiscoverAllAndSubscribedBoxesUrl = 14,
    nsImapAppendMsgFromFile = 15,
    nsImapSubscribe = 16,
    nsImapUnsubscribe = 17,
    nsImapRefreshACL = 18,
    nsImapRefreshAllACLs = 19,
    nsImapListFolder = 20,
    nsImapUpgradeToSubscription = 21,
    nsImapFolderStatus = 22,
    nsImapRefreshFolderUrls = 23,
    nsImapEnsureExistsFolder = 24,
    nsImapOfflineToOnlineCopy = 25,
    nsImapOfflineToOnlineMove = 26,
    nsImapVerifylogon = 27,
    nsImapSelectFolder = 268435458,
    nsImapLiteSelectFolder = 268435459,
    nsImapExpungeFolder = 268435460,
    nsImapMsgFetch = 268435480,
    nsImapMsgHeader = 268435481,
    nsImapSearch = 268435482,
    nsImapDeleteMsg = 268435483,
    nsImapDeleteAllMsgs = 268435484,
    nsImapAddMsgFlags = 268435485,
    nsImapSubtractMsgFlags = 268435486,
    nsImapSetMsgFlags = 268435487,
    nsImapOnlineCopy = 268435488,
    nsImapOnlineMove = 268435489,
    nsImapOnlineToOfflineCopy = 268435490,
    nsImapOnlineToOfflineMove = 268435491,
    nsImapMsgPreview = 268435492,
    nsImapBiff = 268435494,
    nsImapSelectNoopFolder = 268435495,
    nsImapAppendDraftFromFile = 268435496,
    nsImapUidExpunge = 268435497,
    nsImapSaveMessageToDisk = 268435504,
    nsImapOpenMimePart = 268435505,
    nsImapMsgDownloadForOffline = 268435506,
    nsImapDeleteFolderAndMsgs = 268435507,
    nsImapUserDefinedMsgCommand = 268435508,
    nsImapUserDefinedFetchAttribute = 268435509,
    nsImapMsgFetchPeek = 268435510,
    nsImapMsgStoreCustomKeywords = 268435511,
    DEFAULT_IMAP_PORT = 143,
    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(bool *_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(bool *aAllowContentChange); \
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(bool aAllowContentChange); \
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(bool *aMimePartSelectorDetected); \
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(bool aMimePartSelectorDetected); \
  NS_SCRIPTABLE NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified); \
  NS_SCRIPTABLE NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified); \
  NS_SCRIPTABLE NS_IMETHOD GetFetchPartsOnDemand(bool *aFetchPartsOnDemand); \
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(bool aFetchPartsOnDemand); \
  NS_SCRIPTABLE NS_IMETHOD GetMsgLoadingFromCache(bool *aMsgLoadingFromCache); \
  NS_SCRIPTABLE NS_IMETHOD SetMsgLoadingFromCache(bool aMsgLoadingFromCache); \
  NS_SCRIPTABLE NS_IMETHOD GetExternalLinkUrl(bool *aExternalLinkUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetExternalLinkUrl(bool aExternalLinkUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(bool *aValidUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(bool 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(bool *aStoreResultsOffline); \
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(bool aStoreResultsOffline); \
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(bool *aStoreOfflineOnFallback); \
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(bool aStoreOfflineOnFallback); \
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(bool *aLocalFetchOnly); \
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(bool aLocalFetchOnly); \
  NS_SCRIPTABLE NS_IMETHOD GetRerunningUrl(bool *aRerunningUrl); \
  NS_SCRIPTABLE NS_IMETHOD SetRerunningUrl(bool aRerunningUrl); \
  NS_SCRIPTABLE NS_IMETHOD GetMoreHeadersToDownload(bool *aMoreHeadersToDownload); \
  NS_SCRIPTABLE NS_IMETHOD SetMoreHeadersToDownload(bool aMoreHeadersToDownload); \
  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(bool *_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(bool *aAllowContentChange) { return _to GetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(bool aAllowContentChange) { return _to SetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(bool *aMimePartSelectorDetected) { return _to GetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(bool 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(bool *aFetchPartsOnDemand) { return _to GetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(bool aFetchPartsOnDemand) { return _to SetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgLoadingFromCache(bool *aMsgLoadingFromCache) { return _to GetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgLoadingFromCache(bool aMsgLoadingFromCache) { return _to SetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetExternalLinkUrl(bool *aExternalLinkUrl) { return _to GetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetExternalLinkUrl(bool aExternalLinkUrl) { return _to SetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(bool *aValidUrl) { return _to GetValidUrl(aValidUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(bool 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(bool *aStoreResultsOffline) { return _to GetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(bool aStoreResultsOffline) { return _to SetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(bool *aStoreOfflineOnFallback) { return _to GetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(bool aStoreOfflineOnFallback) { return _to SetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(bool *aLocalFetchOnly) { return _to GetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(bool aLocalFetchOnly) { return _to SetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD GetRerunningUrl(bool *aRerunningUrl) { return _to GetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetRerunningUrl(bool aRerunningUrl) { return _to SetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetMoreHeadersToDownload(bool *aMoreHeadersToDownload) { return _to GetMoreHeadersToDownload(aMoreHeadersToDownload); } \
  NS_SCRIPTABLE NS_IMETHOD SetMoreHeadersToDownload(bool aMoreHeadersToDownload) { return _to SetMoreHeadersToDownload(aMoreHeadersToDownload); } \
  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(bool *_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(bool *aAllowContentChange) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD SetAllowContentChange(bool aAllowContentChange) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAllowContentChange(aAllowContentChange); } \
  NS_SCRIPTABLE NS_IMETHOD GetMimePartSelectorDetected(bool *aMimePartSelectorDetected) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_SCRIPTABLE NS_IMETHOD SetMimePartSelectorDetected(bool 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(bool *aFetchPartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD SetFetchPartsOnDemand(bool aFetchPartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_SCRIPTABLE NS_IMETHOD GetMsgLoadingFromCache(bool *aMsgLoadingFromCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD SetMsgLoadingFromCache(bool aMsgLoadingFromCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_SCRIPTABLE NS_IMETHOD GetExternalLinkUrl(bool *aExternalLinkUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetExternalLinkUrl(bool aExternalLinkUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExternalLinkUrl(aExternalLinkUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetValidUrl(bool *aValidUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValidUrl(aValidUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetValidUrl(bool 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(bool *aStoreResultsOffline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreResultsOffline(bool aStoreResultsOffline) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStoreResultsOffline(aStoreResultsOffline); } \
  NS_SCRIPTABLE NS_IMETHOD GetStoreOfflineOnFallback(bool *aStoreOfflineOnFallback) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD SetStoreOfflineOnFallback(bool aStoreOfflineOnFallback) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStoreOfflineOnFallback(aStoreOfflineOnFallback); } \
  NS_SCRIPTABLE NS_IMETHOD GetLocalFetchOnly(bool *aLocalFetchOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD SetLocalFetchOnly(bool aLocalFetchOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocalFetchOnly(aLocalFetchOnly); } \
  NS_SCRIPTABLE NS_IMETHOD GetRerunningUrl(bool *aRerunningUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD SetRerunningUrl(bool aRerunningUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRerunningUrl(aRerunningUrl); } \
  NS_SCRIPTABLE NS_IMETHOD GetMoreHeadersToDownload(bool *aMoreHeadersToDownload) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMoreHeadersToDownload(aMoreHeadersToDownload); } \
  NS_SCRIPTABLE NS_IMETHOD SetMoreHeadersToDownload(bool aMoreHeadersToDownload) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMoreHeadersToDownload(aMoreHeadersToDownload); } \
  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(bool *_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(bool *aAllowContentChange)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetAllowContentChange(bool aAllowContentChange)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean mimePartSelectorDetected; */
NS_IMETHODIMP nsImapUrl::GetMimePartSelectorDetected(bool *aMimePartSelectorDetected)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetMimePartSelectorDetected(bool 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(bool *aFetchPartsOnDemand)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetFetchPartsOnDemand(bool aFetchPartsOnDemand)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* attribute boolean validUrl; */
NS_IMETHODIMP nsImapUrl::GetValidUrl(bool *aValidUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetValidUrl(bool 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(bool *aStoreResultsOffline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetStoreResultsOffline(bool aStoreResultsOffline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

/* attribute boolean moreHeadersToDownload; */
NS_IMETHODIMP nsImapUrl::GetMoreHeadersToDownload(bool *aMoreHeadersToDownload)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetMoreHeadersToDownload(bool aMoreHeadersToDownload)
{
    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__ */
