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

  /**
   * Set FolderQuotaData information
   * @param aFolderQuotaRoot    The IMAP quota root for this folder, 
   *                            as returned by the GETQUOTAROOT IMAP command.
   * @param aFolderQuotaUsedKB  Used space, in KB, on this folder's quota root.
   * @param aFolderQuotaMaxKB   Size, in KB, of this folder's quota root.
   **/
  /* void setFolderQuotaData (in ACString aFolderQuotaRoot, in unsigned long aFolderQuotaUsedKB, in unsigned long aFolderQuotaMaxKB); */
  NS_IMETHOD SetFolderQuotaData(const nsACString & aFolderQuotaRoot, PRUint32 aFolderQuotaUsedKB, 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;

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

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

  /* void progressStatus (in nsIImapProtocol aProtocol, in unsigned long aMsgId, in wstring extraInfo); */
  NS_IMETHOD ProgressStatus(nsIImapProtocol *aProtocol, PRUint32 aMsgId, const PRUnichar *extraInfo) = 0;

  /* void percentProgress (in nsIImapProtocol aProtocol, in wstring aMessage, in long aCurrentProgress, in long aMaxProgressProgressInfo); */
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const PRUnichar *aMessage, PRInt32 aCurrentProgress, PRInt32 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;

};

/* 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 SetFolderQuotaData(const nsACString & aFolderQuotaRoot, PRUint32 aFolderQuotaUsedKB, 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); \
  NS_IMETHOD HeaderFetchCompleted(nsIImapProtocol *aProtocol); \
  NS_IMETHOD SetBiffStateAndUpdate(PRInt32 biffState); \
  NS_IMETHOD ProgressStatus(nsIImapProtocol *aProtocol, PRUint32 aMsgId, const PRUnichar *extraInfo); \
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const PRUnichar *aMessage, PRInt32 aCurrentProgress, PRInt32 aMaxProgressProgressInfo); \
  NS_IMETHOD ClearFolderRights(void); \
  NS_IMETHOD SetCopyResponseUid(const char *msgIdString, nsIImapUrl *aUrl); \
  NS_IMETHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl); \
  NS_IMETHOD 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(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 SetFolderQuotaData(const nsACString & aFolderQuotaRoot, PRUint32 aFolderQuotaUsedKB, PRUint32 aFolderQuotaMaxKB) { return _to SetFolderQuotaData(aFolderQuotaRoot, aFolderQuotaUsedKB, 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); } \
  NS_IMETHOD HeaderFetchCompleted(nsIImapProtocol *aProtocol) { return _to HeaderFetchCompleted(aProtocol); } \
  NS_IMETHOD SetBiffStateAndUpdate(PRInt32 biffState) { return _to SetBiffStateAndUpdate(biffState); } \
  NS_IMETHOD ProgressStatus(nsIImapProtocol *aProtocol, PRUint32 aMsgId, const PRUnichar *extraInfo) { return _to ProgressStatus(aProtocol, aMsgId, extraInfo); } \
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const PRUnichar *aMessage, PRInt32 aCurrentProgress, PRInt32 aMaxProgressProgressInfo) { return _to PercentProgress(aProtocol, aMessage, aCurrentProgress, aMaxProgressProgressInfo); } \
  NS_IMETHOD ClearFolderRights(void) { return _to ClearFolderRights(); } \
  NS_IMETHOD SetCopyResponseUid(const char *msgIdString, nsIImapUrl *aUrl) { return _to SetCopyResponseUid(msgIdString, aUrl); } \
  NS_IMETHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl) { return _to SetAppendMsgUid(newKey, aUrl); } \
  NS_IMETHOD GetMessageId(nsIImapUrl *aUrl, nsACString & _retval) { 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(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 SetFolderQuotaData(const nsACString & aFolderQuotaRoot, PRUint32 aFolderQuotaUsedKB, PRUint32 aFolderQuotaMaxKB) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderQuotaData(aFolderQuotaRoot, aFolderQuotaUsedKB, 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); } \
  NS_IMETHOD HeaderFetchCompleted(nsIImapProtocol *aProtocol) { return !_to ? NS_ERROR_NULL_POINTER : _to->HeaderFetchCompleted(aProtocol); } \
  NS_IMETHOD SetBiffStateAndUpdate(PRInt32 biffState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBiffStateAndUpdate(biffState); } \
  NS_IMETHOD ProgressStatus(nsIImapProtocol *aProtocol, PRUint32 aMsgId, const PRUnichar *extraInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProgressStatus(aProtocol, aMsgId, extraInfo); } \
  NS_IMETHOD PercentProgress(nsIImapProtocol *aProtocol, const PRUnichar *aMessage, PRInt32 aCurrentProgress, PRInt32 aMaxProgressProgressInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->PercentProgress(aProtocol, aMessage, aCurrentProgress, aMaxProgressProgressInfo); } \
  NS_IMETHOD ClearFolderRights(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearFolderRights(); } \
  NS_IMETHOD SetCopyResponseUid(const char *msgIdString, nsIImapUrl *aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCopyResponseUid(msgIdString, aUrl); } \
  NS_IMETHOD SetAppendMsgUid(nsMsgKey newKey, nsIImapUrl *aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAppendMsgUid(newKey, aUrl); } \
  NS_IMETHOD GetMessageId(nsIImapUrl *aUrl, nsACString & _retval) { 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_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;
}

/* void setFolderQuotaData (in ACString aFolderQuotaRoot, in unsigned long aFolderQuotaUsedKB, in unsigned long aFolderQuotaMaxKB); */
NS_IMETHODIMP nsImapMailFolderSink::SetFolderQuotaData(const nsACString & aFolderQuotaRoot, PRUint32 aFolderQuotaUsedKB, 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;
}

/* 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(PRInt32 biffState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void progressStatus (in nsIImapProtocol aProtocol, in unsigned long aMsgId, in wstring extraInfo); */
NS_IMETHODIMP nsImapMailFolderSink::ProgressStatus(nsIImapProtocol *aProtocol, PRUint32 aMsgId, const PRUnichar *extraInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void percentProgress (in nsIImapProtocol aProtocol, in wstring aMessage, in long aCurrentProgress, in long aMaxProgressProgressInfo); */
NS_IMETHODIMP nsImapMailFolderSink::PercentProgress(nsIImapProtocol *aProtocol, const PRUnichar *aMessage, PRInt32 aCurrentProgress, PRInt32 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__ */
