/*
 * 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 nsIImapExtensionSink; /* forward declaration */

class nsIImapMiscellaneousSink; /* forward declaration */

class nsIImapServerSink; /* forward declaration */

class nsIImapMockChannel; /* forward declaration */

class nsIFileSpec; /* 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 nsImapContentModifiedTypes {
 public: 

  NS_DEFINE_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 };

};

/* 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();
  virtual ~nsmapContentModifiedTypes();
  /* additional members */
};

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

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

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

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


/* starting interface:    nsIImapUrl */
#define NS_IIMAPURL_IID_STR "aeaa246d-f9e2-11d3-98ba-001083010e9b"

#define NS_IIMAPURL_IID \
  {0xaeaa246d, 0xf9e2, 0x11d3, \
    { 0x98, 0xba, 0x00, 0x10, 0x83, 0x01, 0x0e, 0x9b }}

class NS_NO_VTABLE nsIImapUrl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IIMAPURL_IID)

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

  /* void initializeURIforMockChannel (); */
  NS_IMETHOD InitializeURIforMockChannel(void) = 0;

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

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

  /* [noscript] attribute nsIImapExtensionSink imapExtensionSink; */
  NS_IMETHOD GetImapExtensionSink(nsIImapExtensionSink * *aImapExtensionSink) = 0;
  NS_IMETHOD SetImapExtensionSink(nsIImapExtensionSink * aImapExtensionSink) = 0;

  /* [noscript] attribute nsIImapMiscellaneousSink imapMiscellaneousSink; */
  NS_IMETHOD GetImapMiscellaneousSink(nsIImapMiscellaneousSink * *aImapMiscellaneousSink) = 0;
  NS_IMETHOD SetImapMiscellaneousSink(nsIImapMiscellaneousSink * aImapMiscellaneousSink) = 0;

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

  /* attribute nsIMsgFolder imapFolder; */
  NS_IMETHOD GetImapFolder(nsIMsgFolder * *aImapFolder) = 0;
  NS_IMETHOD SetImapFolder(nsIMsgFolder * aImapFolder) = 0;

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

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

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

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

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

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

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

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

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

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

  /* void createListOfMessageIdsString (out string aResult); */
  NS_IMETHOD CreateListOfMessageIdsString(char **aResult) = 0;

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

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

  /* readonly attribute long childDiscoveryDepth; */
  NS_IMETHOD GetChildDiscoveryDepth(PRInt32 *aChildDiscoveryDepth) = 0;

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

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

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

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

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

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

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

  /* attribute nsIFileSpec msgFileSpec; */
  NS_IMETHOD GetMsgFileSpec(nsIFileSpec * *aMsgFileSpec) = 0;
  NS_IMETHOD SetMsgFileSpec(nsIFileSpec * aMsgFileSpec) = 0;

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

  /* void addChannelToLoadGroup (); */
  NS_IMETHOD AddChannelToLoadGroup(void) = 0;

  /* void removeChannel (in nsresult aStatus); */
  NS_IMETHOD RemoveChannel(nsresult aStatus) = 0;

  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 { nsImapDiscoverLevelChildrenUrl = 12 };

  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 { 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 { nsImapBiff = 268435494 };

  enum { nsImapSelectNoopFolder = 268435495 };

  enum { nsImapAppendDraftFromFile = 268435496 };

  enum { nsImapUidExpunge = 268435497 };

  enum { nsImapSaveMessageToDisk = 268435504 };

  enum { nsImapOpenMimePart = 268435505 };

  enum { nsImapMsgDownloadForOffline = 268435506 };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPURL \
  NS_IMETHOD Initialize(void); \
  NS_IMETHOD InitializeURIforMockChannel(void); \
  NS_IMETHOD GetImapMailFolderSink(nsIImapMailFolderSink * *aImapMailFolderSink); \
  NS_IMETHOD SetImapMailFolderSink(nsIImapMailFolderSink * aImapMailFolderSink); \
  NS_IMETHOD GetImapMessageSink(nsIImapMessageSink * *aImapMessageSink); \
  NS_IMETHOD SetImapMessageSink(nsIImapMessageSink * aImapMessageSink); \
  NS_IMETHOD GetImapExtensionSink(nsIImapExtensionSink * *aImapExtensionSink); \
  NS_IMETHOD SetImapExtensionSink(nsIImapExtensionSink * aImapExtensionSink); \
  NS_IMETHOD GetImapMiscellaneousSink(nsIImapMiscellaneousSink * *aImapMiscellaneousSink); \
  NS_IMETHOD SetImapMiscellaneousSink(nsIImapMiscellaneousSink * aImapMiscellaneousSink); \
  NS_IMETHOD GetImapServerSink(nsIImapServerSink * *aImapServerSink); \
  NS_IMETHOD SetImapServerSink(nsIImapServerSink * aImapServerSink); \
  NS_IMETHOD GetImapFolder(nsIMsgFolder * *aImapFolder); \
  NS_IMETHOD SetImapFolder(nsIMsgFolder * aImapFolder); \
  NS_IMETHOD GetImapAction(nsImapAction *aImapAction); \
  NS_IMETHOD SetImapAction(nsImapAction aImapAction); \
  NS_IMETHOD GetRequiredImapState(nsImapState *aRequiredImapState); \
  NS_IMETHOD GetImapPartToFetch(char * *aImapPartToFetch); \
  NS_IMETHOD AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath); \
  NS_IMETHOD AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath); \
  NS_IMETHOD CreateServerSourceFolderPathString(char **_retval); \
  NS_IMETHOD CreateCanonicalSourceFolderPathString(char **_retval); \
  NS_IMETHOD CreateServerDestinationFolderPathString(char **_retval); \
  NS_IMETHOD AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval); \
  NS_IMETHOD CreateSearchCriteriaString(char **aResult); \
  NS_IMETHOD CreateListOfMessageIdsString(char **aResult); \
  NS_IMETHOD MessageIdsAreUids(PRBool *_retval); \
  NS_IMETHOD GetMsgFlags(imapMessageFlagsType *aMsgFlags); \
  NS_IMETHOD GetChildDiscoveryDepth(PRInt32 *aChildDiscoveryDepth); \
  NS_IMETHOD GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator); \
  NS_IMETHOD SetOnlineSubDirSeparator(char aOnlineSubDirSeparator); \
  NS_IMETHOD GetAllowContentChange(PRBool *aAllowContentChange); \
  NS_IMETHOD SetAllowContentChange(PRBool aAllowContentChange); \
  NS_IMETHOD GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected); \
  NS_IMETHOD SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected); \
  NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified); \
  NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified); \
  NS_IMETHOD GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand); \
  NS_IMETHOD SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand); \
  NS_IMETHOD GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache); \
  NS_IMETHOD SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache); \
  NS_IMETHOD GetCopyState(nsISupports * *aCopyState); \
  NS_IMETHOD SetCopyState(nsISupports * aCopyState); \
  NS_IMETHOD GetMsgFileSpec(nsIFileSpec * *aMsgFileSpec); \
  NS_IMETHOD SetMsgFileSpec(nsIFileSpec * aMsgFileSpec); \
  NS_IMETHOD GetMockChannel(nsIImapMockChannel * *aMockChannel); \
  NS_IMETHOD SetMockChannel(nsIImapMockChannel * aMockChannel); \
  NS_IMETHOD AddChannelToLoadGroup(void); \
  NS_IMETHOD RemoveChannel(nsresult aStatus); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPURL(_to) \
  NS_IMETHOD Initialize(void) { return _to Initialize(); } \
  NS_IMETHOD InitializeURIforMockChannel(void) { return _to InitializeURIforMockChannel(); } \
  NS_IMETHOD GetImapMailFolderSink(nsIImapMailFolderSink * *aImapMailFolderSink) { return _to GetImapMailFolderSink(aImapMailFolderSink); } \
  NS_IMETHOD SetImapMailFolderSink(nsIImapMailFolderSink * aImapMailFolderSink) { return _to SetImapMailFolderSink(aImapMailFolderSink); } \
  NS_IMETHOD GetImapMessageSink(nsIImapMessageSink * *aImapMessageSink) { return _to GetImapMessageSink(aImapMessageSink); } \
  NS_IMETHOD SetImapMessageSink(nsIImapMessageSink * aImapMessageSink) { return _to SetImapMessageSink(aImapMessageSink); } \
  NS_IMETHOD GetImapExtensionSink(nsIImapExtensionSink * *aImapExtensionSink) { return _to GetImapExtensionSink(aImapExtensionSink); } \
  NS_IMETHOD SetImapExtensionSink(nsIImapExtensionSink * aImapExtensionSink) { return _to SetImapExtensionSink(aImapExtensionSink); } \
  NS_IMETHOD GetImapMiscellaneousSink(nsIImapMiscellaneousSink * *aImapMiscellaneousSink) { return _to GetImapMiscellaneousSink(aImapMiscellaneousSink); } \
  NS_IMETHOD SetImapMiscellaneousSink(nsIImapMiscellaneousSink * aImapMiscellaneousSink) { return _to SetImapMiscellaneousSink(aImapMiscellaneousSink); } \
  NS_IMETHOD GetImapServerSink(nsIImapServerSink * *aImapServerSink) { return _to GetImapServerSink(aImapServerSink); } \
  NS_IMETHOD SetImapServerSink(nsIImapServerSink * aImapServerSink) { return _to SetImapServerSink(aImapServerSink); } \
  NS_IMETHOD GetImapFolder(nsIMsgFolder * *aImapFolder) { return _to GetImapFolder(aImapFolder); } \
  NS_IMETHOD SetImapFolder(nsIMsgFolder * aImapFolder) { return _to SetImapFolder(aImapFolder); } \
  NS_IMETHOD GetImapAction(nsImapAction *aImapAction) { return _to GetImapAction(aImapAction); } \
  NS_IMETHOD SetImapAction(nsImapAction aImapAction) { return _to SetImapAction(aImapAction); } \
  NS_IMETHOD GetRequiredImapState(nsImapState *aRequiredImapState) { return _to GetRequiredImapState(aRequiredImapState); } \
  NS_IMETHOD GetImapPartToFetch(char * *aImapPartToFetch) { return _to GetImapPartToFetch(aImapPartToFetch); } \
  NS_IMETHOD AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath) { return _to AllocateCanonicalPath(aServerPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_IMETHOD AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath) { return _to AllocateServerPath(aCanonicalPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_IMETHOD CreateServerSourceFolderPathString(char **_retval) { return _to CreateServerSourceFolderPathString(_retval); } \
  NS_IMETHOD CreateCanonicalSourceFolderPathString(char **_retval) { return _to CreateCanonicalSourceFolderPathString(_retval); } \
  NS_IMETHOD CreateServerDestinationFolderPathString(char **_retval) { return _to CreateServerDestinationFolderPathString(_retval); } \
  NS_IMETHOD AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval) { return _to AddOnlineDirectoryIfNecessary(onlineMailboxName, _retval); } \
  NS_IMETHOD CreateSearchCriteriaString(char **aResult) { return _to CreateSearchCriteriaString(aResult); } \
  NS_IMETHOD CreateListOfMessageIdsString(char **aResult) { return _to CreateListOfMessageIdsString(aResult); } \
  NS_IMETHOD MessageIdsAreUids(PRBool *_retval) { return _to MessageIdsAreUids(_retval); } \
  NS_IMETHOD GetMsgFlags(imapMessageFlagsType *aMsgFlags) { return _to GetMsgFlags(aMsgFlags); } \
  NS_IMETHOD GetChildDiscoveryDepth(PRInt32 *aChildDiscoveryDepth) { return _to GetChildDiscoveryDepth(aChildDiscoveryDepth); } \
  NS_IMETHOD GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator) { return _to GetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_IMETHOD SetOnlineSubDirSeparator(char aOnlineSubDirSeparator) { return _to SetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_IMETHOD GetAllowContentChange(PRBool *aAllowContentChange) { return _to GetAllowContentChange(aAllowContentChange); } \
  NS_IMETHOD SetAllowContentChange(PRBool aAllowContentChange) { return _to SetAllowContentChange(aAllowContentChange); } \
  NS_IMETHOD GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected) { return _to GetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_IMETHOD SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected) { return _to SetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified) { return _to GetContentModified(aContentModified); } \
  NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified) { return _to SetContentModified(aContentModified); } \
  NS_IMETHOD GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand) { return _to GetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_IMETHOD SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand) { return _to SetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_IMETHOD GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache) { return _to GetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_IMETHOD SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache) { return _to SetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_IMETHOD GetCopyState(nsISupports * *aCopyState) { return _to GetCopyState(aCopyState); } \
  NS_IMETHOD SetCopyState(nsISupports * aCopyState) { return _to SetCopyState(aCopyState); } \
  NS_IMETHOD GetMsgFileSpec(nsIFileSpec * *aMsgFileSpec) { return _to GetMsgFileSpec(aMsgFileSpec); } \
  NS_IMETHOD SetMsgFileSpec(nsIFileSpec * aMsgFileSpec) { return _to SetMsgFileSpec(aMsgFileSpec); } \
  NS_IMETHOD GetMockChannel(nsIImapMockChannel * *aMockChannel) { return _to GetMockChannel(aMockChannel); } \
  NS_IMETHOD SetMockChannel(nsIImapMockChannel * aMockChannel) { return _to SetMockChannel(aMockChannel); } \
  NS_IMETHOD AddChannelToLoadGroup(void) { return _to AddChannelToLoadGroup(); } \
  NS_IMETHOD RemoveChannel(nsresult aStatus) { return _to RemoveChannel(aStatus); } \

/* 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_IMETHOD Initialize(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Initialize(); } \
  NS_IMETHOD InitializeURIforMockChannel(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitializeURIforMockChannel(); } \
  NS_IMETHOD GetImapMailFolderSink(nsIImapMailFolderSink * *aImapMailFolderSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapMailFolderSink(aImapMailFolderSink); } \
  NS_IMETHOD SetImapMailFolderSink(nsIImapMailFolderSink * aImapMailFolderSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapMailFolderSink(aImapMailFolderSink); } \
  NS_IMETHOD GetImapMessageSink(nsIImapMessageSink * *aImapMessageSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapMessageSink(aImapMessageSink); } \
  NS_IMETHOD SetImapMessageSink(nsIImapMessageSink * aImapMessageSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapMessageSink(aImapMessageSink); } \
  NS_IMETHOD GetImapExtensionSink(nsIImapExtensionSink * *aImapExtensionSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapExtensionSink(aImapExtensionSink); } \
  NS_IMETHOD SetImapExtensionSink(nsIImapExtensionSink * aImapExtensionSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapExtensionSink(aImapExtensionSink); } \
  NS_IMETHOD GetImapMiscellaneousSink(nsIImapMiscellaneousSink * *aImapMiscellaneousSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapMiscellaneousSink(aImapMiscellaneousSink); } \
  NS_IMETHOD SetImapMiscellaneousSink(nsIImapMiscellaneousSink * aImapMiscellaneousSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapMiscellaneousSink(aImapMiscellaneousSink); } \
  NS_IMETHOD GetImapServerSink(nsIImapServerSink * *aImapServerSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapServerSink(aImapServerSink); } \
  NS_IMETHOD SetImapServerSink(nsIImapServerSink * aImapServerSink) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapServerSink(aImapServerSink); } \
  NS_IMETHOD GetImapFolder(nsIMsgFolder * *aImapFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapFolder(aImapFolder); } \
  NS_IMETHOD SetImapFolder(nsIMsgFolder * aImapFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapFolder(aImapFolder); } \
  NS_IMETHOD GetImapAction(nsImapAction *aImapAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapAction(aImapAction); } \
  NS_IMETHOD SetImapAction(nsImapAction aImapAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapAction(aImapAction); } \
  NS_IMETHOD GetRequiredImapState(nsImapState *aRequiredImapState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRequiredImapState(aRequiredImapState); } \
  NS_IMETHOD GetImapPartToFetch(char * *aImapPartToFetch) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapPartToFetch(aImapPartToFetch); } \
  NS_IMETHOD AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->AllocateCanonicalPath(aServerPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_IMETHOD AllocateServerPath(const char *aCanonicalPath, char aOnlineDelimiter, char **aAllocatedPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->AllocateServerPath(aCanonicalPath, aOnlineDelimiter, aAllocatedPath); } \
  NS_IMETHOD CreateServerSourceFolderPathString(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateServerSourceFolderPathString(_retval); } \
  NS_IMETHOD CreateCanonicalSourceFolderPathString(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCanonicalSourceFolderPathString(_retval); } \
  NS_IMETHOD CreateServerDestinationFolderPathString(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateServerDestinationFolderPathString(_retval); } \
  NS_IMETHOD AddOnlineDirectoryIfNecessary(const char *onlineMailboxName, char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddOnlineDirectoryIfNecessary(onlineMailboxName, _retval); } \
  NS_IMETHOD CreateSearchCriteriaString(char **aResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSearchCriteriaString(aResult); } \
  NS_IMETHOD CreateListOfMessageIdsString(char **aResult) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateListOfMessageIdsString(aResult); } \
  NS_IMETHOD MessageIdsAreUids(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->MessageIdsAreUids(_retval); } \
  NS_IMETHOD GetMsgFlags(imapMessageFlagsType *aMsgFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgFlags(aMsgFlags); } \
  NS_IMETHOD GetChildDiscoveryDepth(PRInt32 *aChildDiscoveryDepth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildDiscoveryDepth(aChildDiscoveryDepth); } \
  NS_IMETHOD GetOnlineSubDirSeparator(char *aOnlineSubDirSeparator) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_IMETHOD SetOnlineSubDirSeparator(char aOnlineSubDirSeparator) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOnlineSubDirSeparator(aOnlineSubDirSeparator); } \
  NS_IMETHOD GetAllowContentChange(PRBool *aAllowContentChange) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllowContentChange(aAllowContentChange); } \
  NS_IMETHOD SetAllowContentChange(PRBool aAllowContentChange) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAllowContentChange(aAllowContentChange); } \
  NS_IMETHOD GetMimePartSelectorDetected(PRBool *aMimePartSelectorDetected) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_IMETHOD SetMimePartSelectorDetected(PRBool aMimePartSelectorDetected) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimePartSelectorDetected(aMimePartSelectorDetected); } \
  NS_IMETHOD GetContentModified(nsImapContentModifiedType *aContentModified) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContentModified(aContentModified); } \
  NS_IMETHOD SetContentModified(nsImapContentModifiedType aContentModified) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetContentModified(aContentModified); } \
  NS_IMETHOD GetFetchPartsOnDemand(PRBool *aFetchPartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_IMETHOD SetFetchPartsOnDemand(PRBool aFetchPartsOnDemand) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFetchPartsOnDemand(aFetchPartsOnDemand); } \
  NS_IMETHOD GetMsgLoadingFromCache(PRBool *aMsgLoadingFromCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_IMETHOD SetMsgLoadingFromCache(PRBool aMsgLoadingFromCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgLoadingFromCache(aMsgLoadingFromCache); } \
  NS_IMETHOD GetCopyState(nsISupports * *aCopyState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCopyState(aCopyState); } \
  NS_IMETHOD SetCopyState(nsISupports * aCopyState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCopyState(aCopyState); } \
  NS_IMETHOD GetMsgFileSpec(nsIFileSpec * *aMsgFileSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgFileSpec(aMsgFileSpec); } \
  NS_IMETHOD SetMsgFileSpec(nsIFileSpec * aMsgFileSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMsgFileSpec(aMsgFileSpec); } \
  NS_IMETHOD GetMockChannel(nsIImapMockChannel * *aMockChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMockChannel(aMockChannel); } \
  NS_IMETHOD SetMockChannel(nsIImapMockChannel * aMockChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMockChannel(aMockChannel); } \
  NS_IMETHOD AddChannelToLoadGroup(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddChannelToLoadGroup(); } \
  NS_IMETHOD RemoveChannel(nsresult aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveChannel(aStatus); } \

#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();
  virtual ~nsImapUrl();
  /* additional members */
};

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

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

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

/* void Initialize (); */
NS_IMETHODIMP nsImapUrl::Initialize()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void initializeURIforMockChannel (); */
NS_IMETHODIMP nsImapUrl::InitializeURIforMockChannel()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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;
}

/* [noscript] attribute nsIImapExtensionSink imapExtensionSink; */
NS_IMETHODIMP nsImapUrl::GetImapExtensionSink(nsIImapExtensionSink * *aImapExtensionSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetImapExtensionSink(nsIImapExtensionSink * aImapExtensionSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] attribute nsIImapMiscellaneousSink imapMiscellaneousSink; */
NS_IMETHODIMP nsImapUrl::GetImapMiscellaneousSink(nsIImapMiscellaneousSink * *aImapMiscellaneousSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetImapMiscellaneousSink(nsIImapMiscellaneousSink * aImapMiscellaneousSink)
{
    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 nsIMsgFolder imapFolder; */
NS_IMETHODIMP nsImapUrl::GetImapFolder(nsIMsgFolder * *aImapFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetImapFolder(nsIMsgFolder * aImapFolder)
{
    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;
}

/* void allocateCanonicalPath (in string aServerPath, in char aOnlineDelimiter, out string aAllocatedPath); */
NS_IMETHODIMP nsImapUrl::AllocateCanonicalPath(const char *aServerPath, char aOnlineDelimiter, char **aAllocatedPath)
{
    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)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

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

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

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

/* void createListOfMessageIdsString (out string aResult); */
NS_IMETHODIMP nsImapUrl::CreateListOfMessageIdsString(char **aResult)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* readonly attribute long childDiscoveryDepth; */
NS_IMETHODIMP nsImapUrl::GetChildDiscoveryDepth(PRInt32 *aChildDiscoveryDepth)
{
    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 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 nsIFileSpec msgFileSpec; */
NS_IMETHODIMP nsImapUrl::GetMsgFileSpec(nsIFileSpec * *aMsgFileSpec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapUrl::SetMsgFileSpec(nsIFileSpec * aMsgFileSpec)
{
    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;
}

/* void addChannelToLoadGroup (); */
NS_IMETHODIMP nsImapUrl::AddChannelToLoadGroup()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeChannel (in nsresult aStatus); */
NS_IMETHODIMP nsImapUrl::RemoveChannel(nsresult aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

#define IMAP_PORT 143
#define SECURE_IMAP_PORT 993

#endif /* __gen_nsIImapUrl_h__ */
