/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/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 nsIImapHeaderXferInfo; /* forward declaration */

typedef int32_t  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_DECLARE_STATIC_IID_ACCESSOR(IMAPONLINECOPYSTATETYPE_IID)

  enum {
    kInProgress = 0,
    kSuccessfulCopy = 1,
    kSuccessfulMove = 2,
    kSuccessfulDelete = 3,
    kFailedDelete = 4,
    kReadyForAppendData = 5,
    kFailedAppend = 6,
    kInterruptedState = 7,
    kFailedCopy = 8,
    kFailedMove = 9
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(ImapOnlineCopyStateType, IMAPONLINECOPYSTATETYPE_IID)

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

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_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_ISUPPORTS(_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 "525e1278-a39d-46d6-9dbc-b48c7e1d4faa"

#define NS_IIMAPMAILFOLDERSINK_IID \
  {0x525e1278, 0xa39d, 0x46d6, \
    { 0x9d, 0xbc, 0xb4, 0x8c, 0x7e, 0x1d, 0x4f, 0xaa }}

class NS_NO_VTABLE nsIImapMailFolderSink : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIMAPMAILFOLDERSINK_IID)

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

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

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

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

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

  /* attribute boolean folderQuotaCommandIssued; */
  NS_IMETHOD GetFolderQuotaCommandIssued(bool *aFolderQuotaCommandIssued) = 0;
  NS_IMETHOD SetFolderQuotaCommandIssued(bool aFolderQuotaCommandIssued) = 0;

  /* void setFolderQuotaData (in ACString aFolderQuotaRoot, in unsigned long aFolderQuotaUsedKB, in unsigned long aFolderQuotaMaxKB); */
  NS_IMETHOD SetFolderQuotaData(const nsACString & aFolderQuotaRoot, uint32_t aFolderQuotaUsedKB, uint32_t aFolderQuotaMaxKB) = 0;

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

  /* readonly attribute char onlineDelimiter; */
  NS_IMETHOD GetOnlineDelimiter(char *aOnlineDelimiter) = 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 getMsgHdrsToDownload (out boolean aMore, out long aTotalCount, out unsigned long aCount, [array, size_is (aCount), retval] out nsMsgKey aKeys); */
  NS_IMETHOD GetMsgHdrsToDownload(bool *aMore, int32_t *aTotalCount, uint32_t *aCount, nsMsgKey **aKeys) = 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(bool copySucceeded, nsISupports *copyState) = 0;

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

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

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

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

  /* void setBiffStateAndUpdate (in long biffState); */
  NS_IMETHOD SetBiffStateAndUpdate(int32_t biffState) = 0;

  /* void progressStatusString (in nsIImapProtocol aProtocol, in string aMsgId, in wstring extraInfo); */
  NS_IMETHOD ProgressStatusString(nsIImapProtocol *aProtocol, const char * aMsgId, const char16_t * extraInfo) = 0;

  /* void percentProgress (in nsIImapProtocol aProtocol, in wstring aMessage, in long long aCurrentProgress, in long long aMaxProgressProgressInfo); */
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const char16_t * aMessage, int64_t aCurrentProgress, int64_t aMaxProgressProgressInfo) = 0;

  /* void clearFolderRights (); */
  NS_IMETHOD ClearFolderRights(void) = 0;

  /* void setCopyResponseUid (in string msgIdString, in nsIImapUrl aUrl); */
  NS_IMETHOD SetCopyResponseUid(const char * msgIdString, nsIImapUrl *aUrl) = 0;

  /* void setAppendMsgUid (in nsMsgKey newKey, in nsIImapUrl aUrl); */
  NS_IMETHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl) = 0;

  /* ACString getMessageId (in nsIImapUrl aUrl); */
  NS_IMETHOD GetMessageId(nsIImapUrl *aUrl, nsACString & _retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIImapMailFolderSink, NS_IIMAPMAILFOLDERSINK_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPMAILFOLDERSINK \
  NS_IMETHOD GetFolderNeedsACLListed(bool *aFolderNeedsACLListed) override; \
  NS_IMETHOD SetFolderNeedsACLListed(bool aFolderNeedsACLListed) override; \
  NS_IMETHOD GetFolderNeedsSubscribing(bool *aFolderNeedsSubscribing) override; \
  NS_IMETHOD SetFolderNeedsSubscribing(bool aFolderNeedsSubscribing) override; \
  NS_IMETHOD GetFolderNeedsAdded(bool *aFolderNeedsAdded) override; \
  NS_IMETHOD SetFolderNeedsAdded(bool aFolderNeedsAdded) override; \
  NS_IMETHOD GetAclFlags(uint32_t *aAclFlags) override; \
  NS_IMETHOD SetAclFlags(uint32_t aAclFlags) override; \
  NS_IMETHOD GetUidValidity(int32_t *aUidValidity) override; \
  NS_IMETHOD SetUidValidity(int32_t aUidValidity) override; \
  NS_IMETHOD GetFolderQuotaCommandIssued(bool *aFolderQuotaCommandIssued) override; \
  NS_IMETHOD SetFolderQuotaCommandIssued(bool aFolderQuotaCommandIssued) override; \
  NS_IMETHOD SetFolderQuotaData(const nsACString & aFolderQuotaRoot, uint32_t aFolderQuotaUsedKB, uint32_t aFolderQuotaMaxKB) override; \
  NS_IMETHOD GetShouldDownloadAllHeaders(bool *aShouldDownloadAllHeaders) override; \
  NS_IMETHOD GetOnlineDelimiter(char *aOnlineDelimiter) override; \
  NS_IMETHOD OnNewIdleMessages(void) override; \
  NS_IMETHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) override; \
  NS_IMETHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) override; \
  NS_IMETHOD GetMsgHdrsToDownload(bool *aMore, int32_t *aTotalCount, uint32_t *aCount, nsMsgKey **aKeys) override; \
  NS_IMETHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo) override; \
  NS_IMETHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol) override; \
  NS_IMETHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState) override; \
  NS_IMETHOD StartMessage(nsIMsgMailNewsUrl *aUrl) override; \
  NS_IMETHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage) override; \
  NS_IMETHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char * hitLine) override; \
  NS_IMETHOD CopyNextStreamMessage(bool copySucceeded, nsISupports *copyState) override; \
  NS_IMETHOD CloseMockChannel(nsIImapMockChannel *aChannel) override; \
  NS_IMETHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, bool isRunning, bool aSuspend, nsresult status) override; \
  NS_IMETHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl) override; \
  NS_IMETHOD HeaderFetchCompleted(nsIImapProtocol *aProtocol) override; \
  NS_IMETHOD SetBiffStateAndUpdate(int32_t biffState) override; \
  NS_IMETHOD ProgressStatusString(nsIImapProtocol *aProtocol, const char * aMsgId, const char16_t * extraInfo) override; \
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const char16_t * aMessage, int64_t aCurrentProgress, int64_t aMaxProgressProgressInfo) override; \
  NS_IMETHOD ClearFolderRights(void) override; \
  NS_IMETHOD SetCopyResponseUid(const char * msgIdString, nsIImapUrl *aUrl) override; \
  NS_IMETHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl) override; \
  NS_IMETHOD GetMessageId(nsIImapUrl *aUrl, nsACString & _retval) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIIMAPMAILFOLDERSINK \
  NS_METHOD GetFolderNeedsACLListed(bool *aFolderNeedsACLListed); \
  NS_METHOD SetFolderNeedsACLListed(bool aFolderNeedsACLListed); \
  NS_METHOD GetFolderNeedsSubscribing(bool *aFolderNeedsSubscribing); \
  NS_METHOD SetFolderNeedsSubscribing(bool aFolderNeedsSubscribing); \
  NS_METHOD GetFolderNeedsAdded(bool *aFolderNeedsAdded); \
  NS_METHOD SetFolderNeedsAdded(bool aFolderNeedsAdded); \
  NS_METHOD GetAclFlags(uint32_t *aAclFlags); \
  NS_METHOD SetAclFlags(uint32_t aAclFlags); \
  NS_METHOD GetUidValidity(int32_t *aUidValidity); \
  NS_METHOD SetUidValidity(int32_t aUidValidity); \
  NS_METHOD GetFolderQuotaCommandIssued(bool *aFolderQuotaCommandIssued); \
  NS_METHOD SetFolderQuotaCommandIssued(bool aFolderQuotaCommandIssued); \
  NS_METHOD SetFolderQuotaData(const nsACString & aFolderQuotaRoot, uint32_t aFolderQuotaUsedKB, uint32_t aFolderQuotaMaxKB); \
  NS_METHOD GetShouldDownloadAllHeaders(bool *aShouldDownloadAllHeaders); \
  NS_METHOD GetOnlineDelimiter(char *aOnlineDelimiter); \
  NS_METHOD OnNewIdleMessages(void); \
  NS_METHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec); \
  NS_METHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec); \
  NS_METHOD GetMsgHdrsToDownload(bool *aMore, int32_t *aTotalCount, uint32_t *aCount, nsMsgKey **aKeys); \
  NS_METHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo); \
  NS_METHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol); \
  NS_METHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState); \
  NS_METHOD StartMessage(nsIMsgMailNewsUrl *aUrl); \
  NS_METHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage); \
  NS_METHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char * hitLine); \
  NS_METHOD CopyNextStreamMessage(bool copySucceeded, nsISupports *copyState); \
  NS_METHOD CloseMockChannel(nsIImapMockChannel *aChannel); \
  NS_METHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, bool isRunning, bool aSuspend, nsresult status); \
  NS_METHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl); \
  NS_METHOD HeaderFetchCompleted(nsIImapProtocol *aProtocol); \
  NS_METHOD SetBiffStateAndUpdate(int32_t biffState); \
  NS_METHOD ProgressStatusString(nsIImapProtocol *aProtocol, const char * aMsgId, const char16_t * extraInfo); \
  NS_METHOD PercentProgress(nsIImapProtocol *aProtocol, const char16_t * aMessage, int64_t aCurrentProgress, int64_t aMaxProgressProgressInfo); \
  NS_METHOD ClearFolderRights(void); \
  NS_METHOD SetCopyResponseUid(const char * msgIdString, nsIImapUrl *aUrl); \
  NS_METHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl); \
  NS_METHOD GetMessageId(nsIImapUrl *aUrl, nsACString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPMAILFOLDERSINK(_to) \
  NS_IMETHOD GetFolderNeedsACLListed(bool *aFolderNeedsACLListed) override { return _to GetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD SetFolderNeedsACLListed(bool aFolderNeedsACLListed) override { return _to SetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD GetFolderNeedsSubscribing(bool *aFolderNeedsSubscribing) override { return _to GetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD SetFolderNeedsSubscribing(bool aFolderNeedsSubscribing) override { return _to SetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD GetFolderNeedsAdded(bool *aFolderNeedsAdded) override { return _to GetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD SetFolderNeedsAdded(bool aFolderNeedsAdded) override { return _to SetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD GetAclFlags(uint32_t *aAclFlags) override { return _to GetAclFlags(aAclFlags); } \
  NS_IMETHOD SetAclFlags(uint32_t aAclFlags) override { return _to SetAclFlags(aAclFlags); } \
  NS_IMETHOD GetUidValidity(int32_t *aUidValidity) override { return _to GetUidValidity(aUidValidity); } \
  NS_IMETHOD SetUidValidity(int32_t aUidValidity) override { return _to SetUidValidity(aUidValidity); } \
  NS_IMETHOD GetFolderQuotaCommandIssued(bool *aFolderQuotaCommandIssued) override { return _to GetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD SetFolderQuotaCommandIssued(bool aFolderQuotaCommandIssued) override { return _to SetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD SetFolderQuotaData(const nsACString & aFolderQuotaRoot, uint32_t aFolderQuotaUsedKB, uint32_t aFolderQuotaMaxKB) override { return _to SetFolderQuotaData(aFolderQuotaRoot, aFolderQuotaUsedKB, aFolderQuotaMaxKB); } \
  NS_IMETHOD GetShouldDownloadAllHeaders(bool *aShouldDownloadAllHeaders) override { return _to GetShouldDownloadAllHeaders(aShouldDownloadAllHeaders); } \
  NS_IMETHOD GetOnlineDelimiter(char *aOnlineDelimiter) override { return _to GetOnlineDelimiter(aOnlineDelimiter); } \
  NS_IMETHOD OnNewIdleMessages(void) override { return _to OnNewIdleMessages(); } \
  NS_IMETHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) override { return _to UpdateImapMailboxInfo(aProtocol, aSpec); } \
  NS_IMETHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) override { return _to UpdateImapMailboxStatus(aProtocol, aSpec); } \
  NS_IMETHOD GetMsgHdrsToDownload(bool *aMore, int32_t *aTotalCount, uint32_t *aCount, nsMsgKey **aKeys) override { return _to GetMsgHdrsToDownload(aMore, aTotalCount, aCount, aKeys); } \
  NS_IMETHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo) override { return _to ParseMsgHdrs(aProtocol, aHdrXferInfo); } \
  NS_IMETHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol) override { return _to AbortHeaderParseStream(aProtocol); } \
  NS_IMETHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState) override { return _to OnlineCopyCompleted(aProtocol, aCopyState); } \
  NS_IMETHOD StartMessage(nsIMsgMailNewsUrl *aUrl) override { return _to StartMessage(aUrl); } \
  NS_IMETHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage) override { return _to EndMessage(aUrl, uidOfMessage); } \
  NS_IMETHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char * hitLine) override { return _to NotifySearchHit(aUrl, hitLine); } \
  NS_IMETHOD CopyNextStreamMessage(bool copySucceeded, nsISupports *copyState) override { return _to CopyNextStreamMessage(copySucceeded, copyState); } \
  NS_IMETHOD CloseMockChannel(nsIImapMockChannel *aChannel) override { return _to CloseMockChannel(aChannel); } \
  NS_IMETHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, bool isRunning, bool aSuspend, nsresult status) override { return _to SetUrlState(aProtocol, aUrl, isRunning, aSuspend, status); } \
  NS_IMETHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl) override { return _to ReleaseUrlCacheEntry(aUrl); } \
  NS_IMETHOD HeaderFetchCompleted(nsIImapProtocol *aProtocol) override { return _to HeaderFetchCompleted(aProtocol); } \
  NS_IMETHOD SetBiffStateAndUpdate(int32_t biffState) override { return _to SetBiffStateAndUpdate(biffState); } \
  NS_IMETHOD ProgressStatusString(nsIImapProtocol *aProtocol, const char * aMsgId, const char16_t * extraInfo) override { return _to ProgressStatusString(aProtocol, aMsgId, extraInfo); } \
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const char16_t * aMessage, int64_t aCurrentProgress, int64_t aMaxProgressProgressInfo) override { return _to PercentProgress(aProtocol, aMessage, aCurrentProgress, aMaxProgressProgressInfo); } \
  NS_IMETHOD ClearFolderRights(void) override { return _to ClearFolderRights(); } \
  NS_IMETHOD SetCopyResponseUid(const char * msgIdString, nsIImapUrl *aUrl) override { return _to SetCopyResponseUid(msgIdString, aUrl); } \
  NS_IMETHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl) override { return _to SetAppendMsgUid(newKey, aUrl); } \
  NS_IMETHOD GetMessageId(nsIImapUrl *aUrl, nsACString & _retval) override { return _to GetMessageId(aUrl, _retval); } 

/* 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(bool *aFolderNeedsACLListed) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD SetFolderNeedsACLListed(bool aFolderNeedsACLListed) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderNeedsACLListed(aFolderNeedsACLListed); } \
  NS_IMETHOD GetFolderNeedsSubscribing(bool *aFolderNeedsSubscribing) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD SetFolderNeedsSubscribing(bool aFolderNeedsSubscribing) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderNeedsSubscribing(aFolderNeedsSubscribing); } \
  NS_IMETHOD GetFolderNeedsAdded(bool *aFolderNeedsAdded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD SetFolderNeedsAdded(bool aFolderNeedsAdded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderNeedsAdded(aFolderNeedsAdded); } \
  NS_IMETHOD GetAclFlags(uint32_t *aAclFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAclFlags(aAclFlags); } \
  NS_IMETHOD SetAclFlags(uint32_t aAclFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAclFlags(aAclFlags); } \
  NS_IMETHOD GetUidValidity(int32_t *aUidValidity) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUidValidity(aUidValidity); } \
  NS_IMETHOD SetUidValidity(int32_t aUidValidity) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUidValidity(aUidValidity); } \
  NS_IMETHOD GetFolderQuotaCommandIssued(bool *aFolderQuotaCommandIssued) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD SetFolderQuotaCommandIssued(bool aFolderQuotaCommandIssued) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaCommandIssued(aFolderQuotaCommandIssued); } \
  NS_IMETHOD SetFolderQuotaData(const nsACString & aFolderQuotaRoot, uint32_t aFolderQuotaUsedKB, uint32_t aFolderQuotaMaxKB) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaData(aFolderQuotaRoot, aFolderQuotaUsedKB, aFolderQuotaMaxKB); } \
  NS_IMETHOD GetShouldDownloadAllHeaders(bool *aShouldDownloadAllHeaders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShouldDownloadAllHeaders(aShouldDownloadAllHeaders); } \
  NS_IMETHOD GetOnlineDelimiter(char *aOnlineDelimiter) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOnlineDelimiter(aOnlineDelimiter); } \
  NS_IMETHOD OnNewIdleMessages(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnNewIdleMessages(); } \
  NS_IMETHOD UpdateImapMailboxInfo(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateImapMailboxInfo(aProtocol, aSpec); } \
  NS_IMETHOD UpdateImapMailboxStatus(nsIImapProtocol *aProtocol, nsIMailboxSpec *aSpec) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateImapMailboxStatus(aProtocol, aSpec); } \
  NS_IMETHOD GetMsgHdrsToDownload(bool *aMore, int32_t *aTotalCount, uint32_t *aCount, nsMsgKey **aKeys) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsgHdrsToDownload(aMore, aTotalCount, aCount, aKeys); } \
  NS_IMETHOD ParseMsgHdrs(nsIImapProtocol *aProtocol, nsIImapHeaderXferInfo *aHdrXferInfo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ParseMsgHdrs(aProtocol, aHdrXferInfo); } \
  NS_IMETHOD AbortHeaderParseStream(nsIImapProtocol *aProtocol) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AbortHeaderParseStream(aProtocol); } \
  NS_IMETHOD OnlineCopyCompleted(nsIImapProtocol *aProtocol, ImapOnlineCopyState aCopyState) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineCopyCompleted(aProtocol, aCopyState); } \
  NS_IMETHOD StartMessage(nsIMsgMailNewsUrl *aUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StartMessage(aUrl); } \
  NS_IMETHOD EndMessage(nsIMsgMailNewsUrl *aUrl, nsMsgKey uidOfMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EndMessage(aUrl, uidOfMessage); } \
  NS_IMETHOD NotifySearchHit(nsIMsgMailNewsUrl *aUrl, const char * hitLine) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifySearchHit(aUrl, hitLine); } \
  NS_IMETHOD CopyNextStreamMessage(bool copySucceeded, nsISupports *copyState) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyNextStreamMessage(copySucceeded, copyState); } \
  NS_IMETHOD CloseMockChannel(nsIImapMockChannel *aChannel) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseMockChannel(aChannel); } \
  NS_IMETHOD SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, bool isRunning, bool aSuspend, nsresult status) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUrlState(aProtocol, aUrl, isRunning, aSuspend, status); } \
  NS_IMETHOD ReleaseUrlCacheEntry(nsIMsgMailNewsUrl *aUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ReleaseUrlCacheEntry(aUrl); } \
  NS_IMETHOD HeaderFetchCompleted(nsIImapProtocol *aProtocol) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HeaderFetchCompleted(aProtocol); } \
  NS_IMETHOD SetBiffStateAndUpdate(int32_t biffState) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBiffStateAndUpdate(biffState); } \
  NS_IMETHOD ProgressStatusString(nsIImapProtocol *aProtocol, const char * aMsgId, const char16_t * extraInfo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ProgressStatusString(aProtocol, aMsgId, extraInfo); } \
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const char16_t * aMessage, int64_t aCurrentProgress, int64_t aMaxProgressProgressInfo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PercentProgress(aProtocol, aMessage, aCurrentProgress, aMaxProgressProgressInfo); } \
  NS_IMETHOD ClearFolderRights(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearFolderRights(); } \
  NS_IMETHOD SetCopyResponseUid(const char * msgIdString, nsIImapUrl *aUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCopyResponseUid(msgIdString, aUrl); } \
  NS_IMETHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAppendMsgUid(newKey, aUrl); } \
  NS_IMETHOD GetMessageId(nsIImapUrl *aUrl, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageId(aUrl, _retval); } 

#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_ISUPPORTS(nsImapMailFolderSink, nsIImapMailFolderSink)

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

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

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

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

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

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

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

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

/* void setFolderQuotaData (in ACString aFolderQuotaRoot, in unsigned long aFolderQuotaUsedKB, in unsigned long aFolderQuotaMaxKB); */
NS_IMETHODIMP nsImapMailFolderSink::SetFolderQuotaData(const nsACString & aFolderQuotaRoot, uint32_t aFolderQuotaUsedKB, uint32_t aFolderQuotaMaxKB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* readonly attribute char onlineDelimiter; */
NS_IMETHODIMP nsImapMailFolderSink::GetOnlineDelimiter(char *aOnlineDelimiter)
{
    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 getMsgHdrsToDownload (out boolean aMore, out long aTotalCount, out unsigned long aCount, [array, size_is (aCount), retval] out nsMsgKey aKeys); */
NS_IMETHODIMP nsImapMailFolderSink::GetMsgHdrsToDownload(bool *aMore, int32_t *aTotalCount, uint32_t *aCount, nsMsgKey **aKeys)
{
    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(bool copySucceeded, nsISupports *copyState)
{
    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 boolean aSuspend, in nsresult status); */
NS_IMETHODIMP nsImapMailFolderSink::SetUrlState(nsIImapProtocol *aProtocol, nsIMsgMailNewsUrl *aUrl, bool isRunning, bool aSuspend, nsresult status)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

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

/* void setBiffStateAndUpdate (in long biffState); */
NS_IMETHODIMP nsImapMailFolderSink::SetBiffStateAndUpdate(int32_t biffState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void progressStatusString (in nsIImapProtocol aProtocol, in string aMsgId, in wstring extraInfo); */
NS_IMETHODIMP nsImapMailFolderSink::ProgressStatusString(nsIImapProtocol *aProtocol, const char * aMsgId, const char16_t * extraInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void percentProgress (in nsIImapProtocol aProtocol, in wstring aMessage, in long long aCurrentProgress, in long long aMaxProgressProgressInfo); */
NS_IMETHODIMP nsImapMailFolderSink::PercentProgress(nsIImapProtocol *aProtocol, const char16_t * aMessage, int64_t aCurrentProgress, int64_t aMaxProgressProgressInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void setCopyResponseUid (in string msgIdString, in nsIImapUrl aUrl); */
NS_IMETHODIMP nsImapMailFolderSink::SetCopyResponseUid(const char * msgIdString, nsIImapUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAppendMsgUid (in nsMsgKey newKey, in nsIImapUrl aUrl); */
NS_IMETHODIMP nsImapMailFolderSink::SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getMessageId (in nsIImapUrl aUrl); */
NS_IMETHODIMP nsImapMailFolderSink::GetMessageId(nsIImapUrl *aUrl, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIImapMailFolderSink_h__ */
