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

#ifndef __gen_nsIImapMailFolderSink_h__
#define __gen_nsIImapMailFolderSink_h__


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

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

#ifndef __gen_nsIImapProtocol_h__
#include "nsIImapProtocol.h"
#endif

#ifndef __gen_nsIMailboxSpec_h__
#include "nsIMailboxSpec.h"
#endif

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

class nsIImapMockChannel; /* forward declaration */

class nsIMsgWindow; /* forward declaration */

class nsIImapHeaderXferInfo; /* forward declaration */

typedef PRInt32 ImapOnlineCopyState;


/* starting interface:    ImapOnlineCopyStateType */
#define IMAPONLINECOPYSTATETYPE_IID_STR "5f7484b0-68b4-11d3-a53e-0060b0fc04b7"

#define IMAPONLINECOPYSTATETYPE_IID \
  {0x5f7484b0, 0x68b4, 0x11d3, \
    { 0xa5, 0x3e, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xb7 }}

class NS_NO_VTABLE ImapOnlineCopyStateType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMAPONLINECOPYSTATETYPE_IID)

  enum { kInProgress = 0 };

  enum { kSuccessfulCopy = 1 };

  enum { kSuccessfulMove = 2 };

  enum { kSuccessfulDelete = 3 };

  enum { kFailedDelete = 4 };

  enum { kReadyForAppendData = 5 };

  enum { kFailedAppend = 6 };

  enum { kInterruptedState = 7 };

  enum { kFailedCopy = 8 };

  enum { kFailedMove = 9 };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMAPONLINECOPYSTATETYPE(_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_IMAPONLINECOPYSTATETYPE(_to) \

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

/* Header file */
class _MYCLASS_ : public ImapOnlineCopyStateType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMAPONLINECOPYSTATETYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ImapOnlineCopyStateType)

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

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

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


/* starting interface:    nsIImapMailFolderSink */
#define NS_IIMAPMAILFOLDERSINK_IID_STR "3b2dd7e0-e72c-11d2-ab7b-00805f8ac968"

#define NS_IIMAPMAILFOLDERSINK_IID \
  {0x3b2dd7e0, 0xe72c, 0x11d2, \
    { 0xab, 0x7b, 0x00, 0x80, 0x5f, 0x8a, 0xc9, 0x68 }}

class NS_NO_VTABLE nsIImapMailFolderSink : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IIMAPMAILFOLDERSINK_IID)

  /* attribute boolean folderNeedsACLListed; */
  NS_IMETHOD GetFolderNeedsACLListed(PRBool *aFolderNeedsACLListed) = 0;
  NS_IMETHOD SetFolderNeedsACLListed(PRBool aFolderNeedsACLListed) = 0;

  /* attribute boolean folderNeedsSubscribing; */
  NS_IMETHOD GetFolderNeedsSubscribing(PRBool *aFolderNeedsSubscribing) = 0;
  NS_IMETHOD SetFolderNeedsSubscribing(PRBool aFolderNeedsSubscribing) = 0;

  /* attribute boolean folderNeedsAdded; */
  NS_IMETHOD GetFolderNeedsAdded(PRBool *aFolderNeedsAdded) = 0;
  NS_IMETHOD SetFolderNeedsAdded(PRBool aFolderNeedsAdded) = 0;

  /* attribute unsigned long aclFlags; */
  NS_IMETHOD GetAclFlags(PRUint32 *aAclFlags) = 0;
  NS_IMETHOD SetAclFlags(PRUint32 aAclFlags) = 0;

  /* attribute long uidValidity; */
  NS_IMETHOD GetUidValidity(PRInt32 *aUidValidity) = 0;
  NS_IMETHOD SetUidValidity(PRInt32 aUidValidity) = 0;

  /**
   * Whether we have asked the server for this folder's quota information.
   * If the server supports quotas, this occurs when the folder is opened.
   */
  /* attribute boolean folderQuotaCommandIssued; */
  NS_IMETHOD GetFolderQuotaCommandIssued(PRBool *aFolderQuotaCommandIssued) = 0;
  NS_IMETHOD SetFolderQuotaCommandIssued(PRBool aFolderQuotaCommandIssued) = 0;

  /**
   * Indicates whether the server has provided quota information on this folder.
   * This attribute can be false if the server does not supports quotas, if the folder
   * has never been opened, or if there are no storage quotas on this folder.
   * If it is true, the folder has a storage quota and the folderQuotaUsedKB and
   * folderQuotaMaxKB attributes are set to the values provided by the server.
   */
  /* attribute boolean folderQuotaDataIsValid; */
  NS_IMETHOD GetFolderQuotaDataIsValid(PRBool *aFolderQuotaDataIsValid) = 0;
  NS_IMETHOD SetFolderQuotaDataIsValid(PRBool aFolderQuotaDataIsValid) = 0;

  /**
   * The IMAP quota root for this folder, as returned by the GETQUOTAROOT IMAP command.
   */
  /* attribute ACString folderQuotaRoot; */
  NS_IMETHOD GetFolderQuotaRoot(nsACString & aFolderQuotaRoot) = 0;
  NS_IMETHOD SetFolderQuotaRoot(const nsACString & aFolderQuotaRoot) = 0;

  /**
   * Used space, in kilobytes, on this folder's quota root.
   */
  /* attribute unsigned long folderQuotaUsedKB; */
  NS_IMETHOD GetFolderQuotaUsedKB(PRUint32 *aFolderQuotaUsedKB) = 0;
  NS_IMETHOD SetFolderQuotaUsedKB(PRUint32 aFolderQuotaUsedKB) = 0;

  /**
   * Size, in kilobytes, of this folder's quota root.
   */
  /* attribute unsigned long folderQuotaMaxKB; */
  NS_IMETHOD GetFolderQuotaMaxKB(PRUint32 *aFolderQuotaMaxKB) = 0;
  NS_IMETHOD SetFolderQuotaMaxKB(PRUint32 aFolderQuotaMaxKB) = 0;

  /* readonly attribute boolean shouldDownloadAllHeaders; */
  NS_IMETHOD GetShouldDownloadAllHeaders(PRBool *aShouldDownloadAllHeaders) = 0;

  /* string GetOnlineDelimiter (); */
  NS_IMETHOD GetOnlineDelimiter(char **_retval) = 0;

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

  /* void UpdateImapMailboxInfo (in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); */
  NS_IMETHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) = 0;

  /* void UpdateImapMailboxStatus (in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); */
  NS_IMETHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) = 0;

  /* void parseMsgHdrs (in nsIImapProtocol aProtocol, in nsIImapHeaderXferInfo aHdrXferInfo); */
  NS_IMETHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo) = 0;

  /* void AbortHeaderParseStream (in nsIImapProtocol aProtocol); */
  NS_IMETHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol) = 0;

  /* void OnlineCopyCompleted (in nsIImapProtocol aProtocol, in ImapOnlineCopyState aCopyState); */
  NS_IMETHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState) = 0;

  /* void StartMessage (in nsIMsgMailNewsUrl aUrl); */
  NS_IMETHOD StartMessage(nsIMsgMailNewsUrl *aUrl) = 0;

  /* void EndMessage (in nsIMsgMailNewsUrl aUrl, in nsMsgKey uidOfMessage); */
  NS_IMETHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage) = 0;

  /* void NotifySearchHit (in nsIMsgMailNewsUrl aUrl, in string hitLine); */
  NS_IMETHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char *hitLine) = 0;

  /* void copyNextStreamMessage (in boolean copySucceeded, in nsISupports copyState); */
  NS_IMETHOD CopyNextStreamMessage(PRBool copySucceeded, nsISupports *copyState) = 0;

  /* void prepareToReleaseObject (in nsISupports aISupports); */
  NS_IMETHOD PrepareToReleaseObject(nsISupports *aISupports) = 0;

  /* void releaseObject (); */
  NS_IMETHOD ReleaseObject(void) = 0;

  /* void closeMockChannel (in nsIImapMockChannel aChannel); */
  NS_IMETHOD CloseMockChannel(nsIImapMockChannel *aChannel) = 0;

  /* void setUrlState (in nsIImapProtocol aProtocol, in nsIMsgMailNewsUrl aUrl, in boolean isRunning, in nsresult status); */
  NS_IMETHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, PRBool isRunning, nsresult status) = 0;

  /* void releaseUrlCacheEntry (in nsIMsgMailNewsUrl aUrl); */
  NS_IMETHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPMAILFOLDERSINK \
  NS_IMETHOD GetFolderNeedsACLListed(PRBool *aFolderNeedsACLListed); \
  NS_IMETHOD SetFolderNeedsACLListed(PRBool aFolderNeedsACLListed); \
  NS_IMETHOD GetFolderNeedsSubscribing(PRBool *aFolderNeedsSubscribing); \
  NS_IMETHOD SetFolderNeedsSubscribing(PRBool aFolderNeedsSubscribing); \
  NS_IMETHOD GetFolderNeedsAdded(PRBool *aFolderNeedsAdded); \
  NS_IMETHOD SetFolderNeedsAdded(PRBool aFolderNeedsAdded); \
  NS_IMETHOD GetAclFlags(PRUint32 *aAclFlags); \
  NS_IMETHOD SetAclFlags(PRUint32 aAclFlags); \
  NS_IMETHOD GetUidValidity(PRInt32 *aUidValidity); \
  NS_IMETHOD SetUidValidity(PRInt32 aUidValidity); \
  NS_IMETHOD GetFolderQuotaCommandIssued(PRBool *aFolderQuotaCommandIssued); \
  NS_IMETHOD SetFolderQuotaCommandIssued(PRBool aFolderQuotaCommandIssued); \
  NS_IMETHOD GetFolderQuotaDataIsValid(PRBool *aFolderQuotaDataIsValid); \
  NS_IMETHOD SetFolderQuotaDataIsValid(PRBool aFolderQuotaDataIsValid); \
  NS_IMETHOD GetFolderQuotaRoot(nsACString & aFolderQuotaRoot); \
  NS_IMETHOD SetFolderQuotaRoot(const nsACString & aFolderQuotaRoot); \
  NS_IMETHOD GetFolderQuotaUsedKB(PRUint32 *aFolderQuotaUsedKB); \
  NS_IMETHOD SetFolderQuotaUsedKB(PRUint32 aFolderQuotaUsedKB); \
  NS_IMETHOD GetFolderQuotaMaxKB(PRUint32 *aFolderQuotaMaxKB); \
  NS_IMETHOD SetFolderQuotaMaxKB(PRUint32 aFolderQuotaMaxKB); \
  NS_IMETHOD GetShouldDownloadAllHeaders(PRBool *aShouldDownloadAllHeaders); \
  NS_IMETHOD GetOnlineDelimiter(char **_retval); \
  NS_IMETHOD OnNewIdleMessages(void); \
  NS_IMETHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec); \
  NS_IMETHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec); \
  NS_IMETHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo); \
  NS_IMETHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol); \
  NS_IMETHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState); \
  NS_IMETHOD StartMessage(nsIMsgMailNewsUrl *aUrl); \
  NS_IMETHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage); \
  NS_IMETHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char *hitLine); \
  NS_IMETHOD CopyNextStreamMessage(PRBool copySucceeded, nsISupports *copyState); \
  NS_IMETHOD PrepareToReleaseObject(nsISupports *aISupports); \
  NS_IMETHOD ReleaseObject(void); \
  NS_IMETHOD CloseMockChannel(nsIImapMockChannel *aChannel); \
  NS_IMETHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, PRBool isRunning, nsresult status); \
  NS_IMETHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPMAILFOLDERSINK(_to) \
  NS_IMETHOD GetFolderNeedsACLListed(PRBool *aFolderNeedsACLListed) { return _to GetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD SetFolderNeedsACLListed(PRBool aFolderNeedsACLListed) { return _to SetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD GetFolderNeedsSubscribing(PRBool *aFolderNeedsSubscribing) { return _to GetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD SetFolderNeedsSubscribing(PRBool aFolderNeedsSubscribing) { return _to SetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD GetFolderNeedsAdded(PRBool *aFolderNeedsAdded) { return _to GetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD SetFolderNeedsAdded(PRBool aFolderNeedsAdded) { return _to SetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD GetAclFlags(PRUint32 *aAclFlags) { return _to GetAclFlags(aAclFlags); } \
  NS_IMETHOD SetAclFlags(PRUint32 aAclFlags) { return _to SetAclFlags(aAclFlags); } \
  NS_IMETHOD GetUidValidity(PRInt32 *aUidValidity) { return _to GetUidValidity(aUidValidity); } \
  NS_IMETHOD SetUidValidity(PRInt32 aUidValidity) { return _to SetUidValidity(aUidValidity); } \
  NS_IMETHOD GetFolderQuotaCommandIssued(PRBool *aFolderQuotaCommandIssued) { return _to GetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD SetFolderQuotaCommandIssued(PRBool aFolderQuotaCommandIssued) { return _to SetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD GetFolderQuotaDataIsValid(PRBool *aFolderQuotaDataIsValid) { return _to GetFolderQuotaDataIsValid(aFolderQuotaDataIsValid); } \
  NS_IMETHOD SetFolderQuotaDataIsValid(PRBool aFolderQuotaDataIsValid) { return _to SetFolderQuotaDataIsValid(aFolderQuotaDataIsValid); } \
  NS_IMETHOD GetFolderQuotaRoot(nsACString & aFolderQuotaRoot) { return _to GetFolderQuotaRoot(aFolderQuotaRoot); } \
  NS_IMETHOD SetFolderQuotaRoot(const nsACString & aFolderQuotaRoot) { return _to SetFolderQuotaRoot(aFolderQuotaRoot); } \
  NS_IMETHOD GetFolderQuotaUsedKB(PRUint32 *aFolderQuotaUsedKB) { return _to GetFolderQuotaUsedKB(aFolderQuotaUsedKB); } \
  NS_IMETHOD SetFolderQuotaUsedKB(PRUint32 aFolderQuotaUsedKB) { return _to SetFolderQuotaUsedKB(aFolderQuotaUsedKB); } \
  NS_IMETHOD GetFolderQuotaMaxKB(PRUint32 *aFolderQuotaMaxKB) { return _to GetFolderQuotaMaxKB(aFolderQuotaMaxKB); } \
  NS_IMETHOD SetFolderQuotaMaxKB(PRUint32 aFolderQuotaMaxKB) { return _to SetFolderQuotaMaxKB(aFolderQuotaMaxKB); } \
  NS_IMETHOD GetShouldDownloadAllHeaders(PRBool *aShouldDownloadAllHeaders) { return _to GetShouldDownloadAllHeaders(aShouldDownloadAllHeaders); } \
  NS_IMETHOD GetOnlineDelimiter(char **_retval) { return _to GetOnlineDelimiter(_retval); } \
  NS_IMETHOD OnNewIdleMessages(void) { return _to OnNewIdleMessages(); } \
  NS_IMETHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) { return _to UpdateImapMailboxInfo(aProtocol, aSpec); } \
  NS_IMETHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) { return _to UpdateImapMailboxStatus(aProtocol, aSpec); } \
  NS_IMETHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo) { return _to ParseMsgHdrs(aProtocol, aHdrXferInfo); } \
  NS_IMETHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol) { return _to AbortHeaderParseStream(aProtocol); } \
  NS_IMETHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState) { return _to OnlineCopyCompleted(aProtocol, aCopyState); } \
  NS_IMETHOD StartMessage(nsIMsgMailNewsUrl *aUrl) { return _to StartMessage(aUrl); } \
  NS_IMETHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage) { return _to EndMessage(aUrl, uidOfMessage); } \
  NS_IMETHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char *hitLine) { return _to NotifySearchHit(aUrl, hitLine); } \
  NS_IMETHOD CopyNextStreamMessage(PRBool copySucceeded, nsISupports *copyState) { return _to CopyNextStreamMessage(copySucceeded, copyState); } \
  NS_IMETHOD PrepareToReleaseObject(nsISupports *aISupports) { return _to PrepareToReleaseObject(aISupports); } \
  NS_IMETHOD ReleaseObject(void) { return _to ReleaseObject(); } \
  NS_IMETHOD CloseMockChannel(nsIImapMockChannel *aChannel) { return _to CloseMockChannel(aChannel); } \
  NS_IMETHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, PRBool isRunning, nsresult status) { return _to SetUrlState(aProtocol, aUrl, isRunning, status); } \
  NS_IMETHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl) { return _to ReleaseUrlCacheEntry(aUrl); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIIMAPMAILFOLDERSINK(_to) \
  NS_IMETHOD GetFolderNeedsACLListed(PRBool *aFolderNeedsACLListed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD SetFolderNeedsACLListed(PRBool aFolderNeedsACLListed) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD GetFolderNeedsSubscribing(PRBool *aFolderNeedsSubscribing) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD SetFolderNeedsSubscribing(PRBool aFolderNeedsSubscribing) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD GetFolderNeedsAdded(PRBool *aFolderNeedsAdded) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD SetFolderNeedsAdded(PRBool aFolderNeedsAdded) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD GetAclFlags(PRUint32 *aAclFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAclFlags(aAclFlags); } \
  NS_IMETHOD SetAclFlags(PRUint32 aAclFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAclFlags(aAclFlags); } \
  NS_IMETHOD GetUidValidity(PRInt32 *aUidValidity) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUidValidity(aUidValidity); } \
  NS_IMETHOD SetUidValidity(PRInt32 aUidValidity) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUidValidity(aUidValidity); } \
  NS_IMETHOD GetFolderQuotaCommandIssued(PRBool *aFolderQuotaCommandIssued) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD SetFolderQuotaCommandIssued(PRBool aFolderQuotaCommandIssued) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD GetFolderQuotaDataIsValid(PRBool *aFolderQuotaDataIsValid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderQuotaDataIsValid(aFolderQuotaDataIsValid); } \
  NS_IMETHOD SetFolderQuotaDataIsValid(PRBool aFolderQuotaDataIsValid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaDataIsValid(aFolderQuotaDataIsValid); } \
  NS_IMETHOD GetFolderQuotaRoot(nsACString & aFolderQuotaRoot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderQuotaRoot(aFolderQuotaRoot); } \
  NS_IMETHOD SetFolderQuotaRoot(const nsACString & aFolderQuotaRoot) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaRoot(aFolderQuotaRoot); } \
  NS_IMETHOD GetFolderQuotaUsedKB(PRUint32 *aFolderQuotaUsedKB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderQuotaUsedKB(aFolderQuotaUsedKB); } \
  NS_IMETHOD SetFolderQuotaUsedKB(PRUint32 aFolderQuotaUsedKB) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaUsedKB(aFolderQuotaUsedKB); } \
  NS_IMETHOD GetFolderQuotaMaxKB(PRUint32 *aFolderQuotaMaxKB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderQuotaMaxKB(aFolderQuotaMaxKB); } \
  NS_IMETHOD SetFolderQuotaMaxKB(PRUint32 aFolderQuotaMaxKB) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaMaxKB(aFolderQuotaMaxKB); } \
  NS_IMETHOD GetShouldDownloadAllHeaders(PRBool *aShouldDownloadAllHeaders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShouldDownloadAllHeaders(aShouldDownloadAllHeaders); } \
  NS_IMETHOD GetOnlineDelimiter(char **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOnlineDelimiter(_retval); } \
  NS_IMETHOD OnNewIdleMessages(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnNewIdleMessages(); } \
  NS_IMETHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateImapMailboxInfo(aProtocol, aSpec); } \
  NS_IMETHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateImapMailboxStatus(aProtocol, aSpec); } \
  NS_IMETHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->ParseMsgHdrs(aProtocol, aHdrXferInfo); } \
  NS_IMETHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol) { return !_to ? NS_ERROR_NULL_POINTER : _to->AbortHeaderParseStream(aProtocol); } \
  NS_IMETHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineCopyCompleted(aProtocol, aCopyState); } \
  NS_IMETHOD StartMessage(nsIMsgMailNewsUrl *aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartMessage(aUrl); } \
  NS_IMETHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndMessage(aUrl, uidOfMessage); } \
  NS_IMETHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char *hitLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifySearchHit(aUrl, hitLine); } \
  NS_IMETHOD CopyNextStreamMessage(PRBool copySucceeded, nsISupports *copyState) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyNextStreamMessage(copySucceeded, copyState); } \
  NS_IMETHOD PrepareToReleaseObject(nsISupports *aISupports) { return !_to ? NS_ERROR_NULL_POINTER : _to->PrepareToReleaseObject(aISupports); } \
  NS_IMETHOD ReleaseObject(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReleaseObject(); } \
  NS_IMETHOD CloseMockChannel(nsIImapMockChannel *aChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseMockChannel(aChannel); } \
  NS_IMETHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, PRBool isRunning, nsresult status) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUrlState(aProtocol, aUrl, isRunning, status); } \
  NS_IMETHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReleaseUrlCacheEntry(aUrl); } 

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

/* Header file */
class nsImapMailFolderSink : public nsIImapMailFolderSink
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIIMAPMAILFOLDERSINK

  nsImapMailFolderSink();

private:
  ~nsImapMailFolderSink();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsImapMailFolderSink, nsIImapMailFolderSink)

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

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

/* attribute boolean folderNeedsACLListed; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderNeedsACLListed(PRBool *aFolderNeedsACLListed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderNeedsACLListed(PRBool aFolderNeedsACLListed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean folderNeedsSubscribing; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderNeedsSubscribing(PRBool *aFolderNeedsSubscribing)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderNeedsSubscribing(PRBool aFolderNeedsSubscribing)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean folderNeedsAdded; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderNeedsAdded(PRBool *aFolderNeedsAdded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderNeedsAdded(PRBool aFolderNeedsAdded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long aclFlags; */
NS_IMETHODIMP nsImapMailFolderSink::GetAclFlags(PRUint32 *aAclFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetAclFlags(PRUint32 aAclFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long uidValidity; */
NS_IMETHODIMP nsImapMailFolderSink::GetUidValidity(PRInt32 *aUidValidity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetUidValidity(PRInt32 aUidValidity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean folderQuotaCommandIssued; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderQuotaCommandIssued(PRBool *aFolderQuotaCommandIssued)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderQuotaCommandIssued(PRBool aFolderQuotaCommandIssued)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean folderQuotaDataIsValid; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderQuotaDataIsValid(PRBool *aFolderQuotaDataIsValid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderQuotaDataIsValid(PRBool aFolderQuotaDataIsValid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString folderQuotaRoot; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderQuotaRoot(nsACString & aFolderQuotaRoot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderQuotaRoot(const nsACString & aFolderQuotaRoot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long folderQuotaUsedKB; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderQuotaUsedKB(PRUint32 *aFolderQuotaUsedKB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderQuotaUsedKB(PRUint32 aFolderQuotaUsedKB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long folderQuotaMaxKB; */
NS_IMETHODIMP nsImapMailFolderSink::GetFolderQuotaMaxKB(PRUint32 *aFolderQuotaMaxKB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapMailFolderSink::SetFolderQuotaMaxKB(PRUint32 aFolderQuotaMaxKB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean shouldDownloadAllHeaders; */
NS_IMETHODIMP nsImapMailFolderSink::GetShouldDownloadAllHeaders(PRBool *aShouldDownloadAllHeaders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string GetOnlineDelimiter (); */
NS_IMETHODIMP nsImapMailFolderSink::GetOnlineDelimiter(char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OnNewIdleMessages (); */
NS_IMETHODIMP nsImapMailFolderSink::OnNewIdleMessages()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void UpdateImapMailboxInfo (in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); */
NS_IMETHODIMP nsImapMailFolderSink::UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void UpdateImapMailboxStatus (in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); */
NS_IMETHODIMP nsImapMailFolderSink::UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void parseMsgHdrs (in nsIImapProtocol aProtocol, in nsIImapHeaderXferInfo aHdrXferInfo); */
NS_IMETHODIMP nsImapMailFolderSink::ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void AbortHeaderParseStream (in nsIImapProtocol aProtocol); */
NS_IMETHODIMP nsImapMailFolderSink::AbortHeaderParseStream(nsIImapProtocol *aProtocol)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OnlineCopyCompleted (in nsIImapProtocol aProtocol, in ImapOnlineCopyState aCopyState); */
NS_IMETHODIMP nsImapMailFolderSink::OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void StartMessage (in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapMailFolderSink::StartMessage(nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void EndMessage (in nsIMsgMailNewsUrl aUrl, in nsMsgKey uidOfMessage); */
NS_IMETHODIMP nsImapMailFolderSink::EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void NotifySearchHit (in nsIMsgMailNewsUrl aUrl, in string hitLine); */
NS_IMETHODIMP nsImapMailFolderSink::NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char *hitLine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void copyNextStreamMessage (in boolean copySucceeded, in nsISupports copyState); */
NS_IMETHODIMP nsImapMailFolderSink::CopyNextStreamMessage(PRBool copySucceeded, nsISupports *copyState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void prepareToReleaseObject (in nsISupports aISupports); */
NS_IMETHODIMP nsImapMailFolderSink::PrepareToReleaseObject(nsISupports *aISupports)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void releaseObject (); */
NS_IMETHODIMP nsImapMailFolderSink::ReleaseObject()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void closeMockChannel (in nsIImapMockChannel aChannel); */
NS_IMETHODIMP nsImapMailFolderSink::CloseMockChannel(nsIImapMockChannel *aChannel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setUrlState (in nsIImapProtocol aProtocol, in nsIMsgMailNewsUrl aUrl, in boolean isRunning, in nsresult status); */
NS_IMETHODIMP nsImapMailFolderSink::SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, PRBool isRunning, nsresult status)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void releaseUrlCacheEntry (in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapMailFolderSink::ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIImapMailFolderSink_h__ */
