/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/imap/public/nsIImapServerSink.idl
 */

#ifndef __gen_nsIImapServerSink_h__
#define __gen_nsIImapServerSink_h__


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

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

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

class nsIMsgMailNewsUrl; /* forward declaration */

class nsIImapProtocol; /* forward declaration */

class nsIImapUrl; /* forward declaration */

class nsIImapMockChannel; /* forward declaration */


/* starting interface:    nsIImapServerSink */
#define NS_IIMAPSERVERSINK_IID_STR "33184087-eadc-4b5d-aad6-14cf6e6a43af"

#define NS_IIMAPSERVERSINK_IID \
  {0x33184087, 0xeadc, 0x4b5d, \
    { 0xaa, 0xd6, 0x14, 0xcf, 0x6e, 0x6a, 0x43, 0xaf }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIImapServerSink : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIMAPSERVERSINK_IID)

  /* boolean possibleImapMailbox (in ACString folderPath, in char hierarchyDelimiter, in long boxFlags); */
  NS_SCRIPTABLE NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, PRInt32 boxFlags, bool *_retval NS_OUTPARAM) = 0;

  /* boolean folderNeedsACLInitialized (in ACString folderPath); */
  NS_SCRIPTABLE NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval NS_OUTPARAM) = 0;

  /* void addFolderRights (in ACString folderPath, in ACString userName, in ACString rights); */
  NS_SCRIPTABLE NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights) = 0;

  /* void refreshFolderRights (in ACString folderPath); */
  NS_SCRIPTABLE NS_IMETHOD RefreshFolderRights(const nsACString & folderPath) = 0;

  /* void discoveryDone (); */
  NS_SCRIPTABLE NS_IMETHOD DiscoveryDone(void) = 0;

  /* void onlineFolderDelete (in ACString folderName); */
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderDelete(const nsACString & folderName) = 0;

  /* void onlineFolderCreateFailed (in ACString aFolderName); */
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName) = 0;

  /* void onlineFolderRename (in nsIMsgWindow msgWindow, in ACString oldName, in ACString newName); */
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName) = 0;

  /* boolean folderIsNoSelect (in ACString folderName); */
  NS_SCRIPTABLE NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval NS_OUTPARAM) = 0;

  /* void setFolderAdminURL (in ACString folderName, in ACString adminUrl); */
  NS_SCRIPTABLE NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl) = 0;

  /* boolean folderVerifiedOnline (in ACString folderName); */
  NS_SCRIPTABLE NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval NS_OUTPARAM) = 0;

  /* void setCapability (in unsigned long long capability); */
  NS_SCRIPTABLE NS_IMETHOD SetCapability(PRUint64 capability) = 0;

  /* void setServerID (in ACString aServerID); */
  NS_SCRIPTABLE NS_IMETHOD SetServerID(const nsACString & aServerID) = 0;

  /* boolean loadNextQueuedUrl (in nsIImapProtocol protocol); */
  NS_SCRIPTABLE NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval NS_OUTPARAM) = 0;

  /* nsIImapMockChannel prepareToRetryUrl (in nsIImapUrl imapUrl); */
  NS_SCRIPTABLE NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval NS_OUTPARAM) = 0;

  /* void suspendUrl (in nsIImapUrl aImapUrl); */
  NS_SCRIPTABLE NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl) = 0;

  /* void retryUrl (in nsIImapUrl imapUrl, in nsIImapMockChannel channel); */
  NS_SCRIPTABLE NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel) = 0;

  /* void abortQueuedUrls (); */
  NS_SCRIPTABLE NS_IMETHOD AbortQueuedUrls(void) = 0;

  /* AString getImapStringByID (in long msgId); */
  NS_SCRIPTABLE NS_IMETHOD GetImapStringByID(PRInt32 msgId, nsAString & _retval NS_OUTPARAM) = 0;

  /* PRInt32 promptLoginFailed (in nsIMsgWindow aMsgWindow); */
  NS_SCRIPTABLE NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, PRInt32 *_retval NS_OUTPARAM) = 0;

  /* void fEAlert (in AString aAlertSring, in nsIMsgMailNewsUrl aUrl); */
  NS_SCRIPTABLE NS_IMETHOD FEAlert(const nsAString & aAlertSring, nsIMsgMailNewsUrl *aUrl) = 0;

  /* void fEAlertWithID (in long aMsgId, in nsIMsgMailNewsUrl aUrl); */
  NS_SCRIPTABLE NS_IMETHOD FEAlertWithID(PRInt32 aMsgId, nsIMsgMailNewsUrl *aUrl) = 0;

  /* void fEAlertFromServer (in ACString aServerString, in nsIMsgMailNewsUrl aUrl); */
  NS_SCRIPTABLE NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl) = 0;

  /* void commitNamespaces (); */
  NS_SCRIPTABLE NS_IMETHOD CommitNamespaces(void) = 0;

  /* void asyncGetPassword (in nsIImapProtocol aProtocol, in boolean aNewPasswordRequested, out ACString aPassword); */
  NS_SCRIPTABLE NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword NS_OUTPARAM) = 0;

  /* attribute boolean userAuthenticated; */
  NS_SCRIPTABLE NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated) = 0;

  /* void setMailServerUrls (in ACString manageMailAccount, in ACString manageLists, in ACString manageFilters); */
  NS_SCRIPTABLE NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters) = 0;

  /* void UpdateTrySTARTTLSPref (in boolean aSucceeded); */
  NS_SCRIPTABLE NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded) = 0;

  /* readonly attribute ACString arbitraryHeaders; */
  NS_SCRIPTABLE NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders) = 0;

  /* void forgetPassword (); */
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void) = 0;

  /* readonly attribute boolean showAttachmentsInline; */
  NS_SCRIPTABLE NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline) = 0;

  /* string cramMD5Hash (in string decodedChallenge, in string key); */
  NS_SCRIPTABLE NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval NS_OUTPARAM) = 0;

  /* readonly attribute ACString loginUsername; */
  NS_SCRIPTABLE NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIImapServerSink, NS_IIMAPSERVERSINK_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPSERVERSINK \
  NS_SCRIPTABLE NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, PRInt32 boxFlags, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights); \
  NS_SCRIPTABLE NS_IMETHOD RefreshFolderRights(const nsACString & folderPath); \
  NS_SCRIPTABLE NS_IMETHOD DiscoveryDone(void); \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderDelete(const nsACString & folderName); \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName); \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName); \
  NS_SCRIPTABLE NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl); \
  NS_SCRIPTABLE NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SetCapability(PRUint64 capability); \
  NS_SCRIPTABLE NS_IMETHOD SetServerID(const nsACString & aServerID); \
  NS_SCRIPTABLE NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl); \
  NS_SCRIPTABLE NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel); \
  NS_SCRIPTABLE NS_IMETHOD AbortQueuedUrls(void); \
  NS_SCRIPTABLE NS_IMETHOD GetImapStringByID(PRInt32 msgId, nsAString & _retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, PRInt32 *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD FEAlert(const nsAString & aAlertSring, nsIMsgMailNewsUrl *aUrl); \
  NS_SCRIPTABLE NS_IMETHOD FEAlertWithID(PRInt32 aMsgId, nsIMsgMailNewsUrl *aUrl); \
  NS_SCRIPTABLE NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl); \
  NS_SCRIPTABLE NS_IMETHOD CommitNamespaces(void); \
  NS_SCRIPTABLE NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated); \
  NS_SCRIPTABLE NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated); \
  NS_SCRIPTABLE NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters); \
  NS_SCRIPTABLE NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded); \
  NS_SCRIPTABLE NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders); \
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void); \
  NS_SCRIPTABLE NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline); \
  NS_SCRIPTABLE NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPSERVERSINK(_to) \
  NS_SCRIPTABLE NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, PRInt32 boxFlags, bool *_retval NS_OUTPARAM) { return _to PossibleImapMailbox(folderPath, hierarchyDelimiter, boxFlags, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval NS_OUTPARAM) { return _to FolderNeedsACLInitialized(folderPath, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights) { return _to AddFolderRights(folderPath, userName, rights); } \
  NS_SCRIPTABLE NS_IMETHOD RefreshFolderRights(const nsACString & folderPath) { return _to RefreshFolderRights(folderPath); } \
  NS_SCRIPTABLE NS_IMETHOD DiscoveryDone(void) { return _to DiscoveryDone(); } \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderDelete(const nsACString & folderName) { return _to OnlineFolderDelete(folderName); } \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName) { return _to OnlineFolderCreateFailed(aFolderName); } \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName) { return _to OnlineFolderRename(msgWindow, oldName, newName); } \
  NS_SCRIPTABLE NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval NS_OUTPARAM) { return _to FolderIsNoSelect(folderName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl) { return _to SetFolderAdminURL(folderName, adminUrl); } \
  NS_SCRIPTABLE NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval NS_OUTPARAM) { return _to FolderVerifiedOnline(folderName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetCapability(PRUint64 capability) { return _to SetCapability(capability); } \
  NS_SCRIPTABLE NS_IMETHOD SetServerID(const nsACString & aServerID) { return _to SetServerID(aServerID); } \
  NS_SCRIPTABLE NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval NS_OUTPARAM) { return _to LoadNextQueuedUrl(protocol, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval NS_OUTPARAM) { return _to PrepareToRetryUrl(imapUrl, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl) { return _to SuspendUrl(aImapUrl); } \
  NS_SCRIPTABLE NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel) { return _to RetryUrl(imapUrl, channel); } \
  NS_SCRIPTABLE NS_IMETHOD AbortQueuedUrls(void) { return _to AbortQueuedUrls(); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapStringByID(PRInt32 msgId, nsAString & _retval NS_OUTPARAM) { return _to GetImapStringByID(msgId, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, PRInt32 *_retval NS_OUTPARAM) { return _to PromptLoginFailed(aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD FEAlert(const nsAString & aAlertSring, nsIMsgMailNewsUrl *aUrl) { return _to FEAlert(aAlertSring, aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD FEAlertWithID(PRInt32 aMsgId, nsIMsgMailNewsUrl *aUrl) { return _to FEAlertWithID(aMsgId, aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl) { return _to FEAlertFromServer(aServerString, aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD CommitNamespaces(void) { return _to CommitNamespaces(); } \
  NS_SCRIPTABLE NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword NS_OUTPARAM) { return _to AsyncGetPassword(aProtocol, aNewPasswordRequested, aPassword); } \
  NS_SCRIPTABLE NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated) { return _to GetUserAuthenticated(aUserAuthenticated); } \
  NS_SCRIPTABLE NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated) { return _to SetUserAuthenticated(aUserAuthenticated); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters) { return _to SetMailServerUrls(manageMailAccount, manageLists, manageFilters); } \
  NS_SCRIPTABLE NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded) { return _to UpdateTrySTARTTLSPref(aSucceeded); } \
  NS_SCRIPTABLE NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders) { return _to GetArbitraryHeaders(aArbitraryHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void) { return _to ForgetPassword(); } \
  NS_SCRIPTABLE NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline) { return _to GetShowAttachmentsInline(aShowAttachmentsInline); } \
  NS_SCRIPTABLE NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval NS_OUTPARAM) { return _to CramMD5Hash(decodedChallenge, key, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername) { return _to GetLoginUsername(aLoginUsername); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIIMAPSERVERSINK(_to) \
  NS_SCRIPTABLE NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, PRInt32 boxFlags, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->PossibleImapMailbox(folderPath, hierarchyDelimiter, boxFlags, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->FolderNeedsACLInitialized(folderPath, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddFolderRights(folderPath, userName, rights); } \
  NS_SCRIPTABLE NS_IMETHOD RefreshFolderRights(const nsACString & folderPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->RefreshFolderRights(folderPath); } \
  NS_SCRIPTABLE NS_IMETHOD DiscoveryDone(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscoveryDone(); } \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderDelete(const nsACString & folderName) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineFolderDelete(folderName); } \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineFolderCreateFailed(aFolderName); } \
  NS_SCRIPTABLE NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineFolderRename(msgWindow, oldName, newName); } \
  NS_SCRIPTABLE NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->FolderIsNoSelect(folderName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderAdminURL(folderName, adminUrl); } \
  NS_SCRIPTABLE NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->FolderVerifiedOnline(folderName, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SetCapability(PRUint64 capability) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCapability(capability); } \
  NS_SCRIPTABLE NS_IMETHOD SetServerID(const nsACString & aServerID) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerID(aServerID); } \
  NS_SCRIPTABLE NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->LoadNextQueuedUrl(protocol, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->PrepareToRetryUrl(imapUrl, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SuspendUrl(aImapUrl); } \
  NS_SCRIPTABLE NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel) { return !_to ? NS_ERROR_NULL_POINTER : _to->RetryUrl(imapUrl, channel); } \
  NS_SCRIPTABLE NS_IMETHOD AbortQueuedUrls(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->AbortQueuedUrls(); } \
  NS_SCRIPTABLE NS_IMETHOD GetImapStringByID(PRInt32 msgId, nsAString & _retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapStringByID(msgId, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, PRInt32 *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->PromptLoginFailed(aMsgWindow, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD FEAlert(const nsAString & aAlertSring, nsIMsgMailNewsUrl *aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->FEAlert(aAlertSring, aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD FEAlertWithID(PRInt32 aMsgId, nsIMsgMailNewsUrl *aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->FEAlertWithID(aMsgId, aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->FEAlertFromServer(aServerString, aUrl); } \
  NS_SCRIPTABLE NS_IMETHOD CommitNamespaces(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CommitNamespaces(); } \
  NS_SCRIPTABLE NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->AsyncGetPassword(aProtocol, aNewPasswordRequested, aPassword); } \
  NS_SCRIPTABLE NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserAuthenticated(aUserAuthenticated); } \
  NS_SCRIPTABLE NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUserAuthenticated(aUserAuthenticated); } \
  NS_SCRIPTABLE NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailServerUrls(manageMailAccount, manageLists, manageFilters); } \
  NS_SCRIPTABLE NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateTrySTARTTLSPref(aSucceeded); } \
  NS_SCRIPTABLE NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArbitraryHeaders(aArbitraryHeaders); } \
  NS_SCRIPTABLE NS_IMETHOD ForgetPassword(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ForgetPassword(); } \
  NS_SCRIPTABLE NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShowAttachmentsInline(aShowAttachmentsInline); } \
  NS_SCRIPTABLE NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->CramMD5Hash(decodedChallenge, key, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoginUsername(aLoginUsername); } 

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

/* Header file */
class nsImapServerSink : public nsIImapServerSink
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIIMAPSERVERSINK

  nsImapServerSink();

private:
  ~nsImapServerSink();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsImapServerSink, nsIImapServerSink)

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

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

/* boolean possibleImapMailbox (in ACString folderPath, in char hierarchyDelimiter, in long boxFlags); */
NS_IMETHODIMP nsImapServerSink::PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, PRInt32 boxFlags, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean folderNeedsACLInitialized (in ACString folderPath); */
NS_IMETHODIMP nsImapServerSink::FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addFolderRights (in ACString folderPath, in ACString userName, in ACString rights); */
NS_IMETHODIMP nsImapServerSink::AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void refreshFolderRights (in ACString folderPath); */
NS_IMETHODIMP nsImapServerSink::RefreshFolderRights(const nsACString & folderPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void discoveryDone (); */
NS_IMETHODIMP nsImapServerSink::DiscoveryDone()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onlineFolderDelete (in ACString folderName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderDelete(const nsACString & folderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onlineFolderCreateFailed (in ACString aFolderName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderCreateFailed(const nsACString & aFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onlineFolderRename (in nsIMsgWindow msgWindow, in ACString oldName, in ACString newName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean folderIsNoSelect (in ACString folderName); */
NS_IMETHODIMP nsImapServerSink::FolderIsNoSelect(const nsACString & folderName, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setFolderAdminURL (in ACString folderName, in ACString adminUrl); */
NS_IMETHODIMP nsImapServerSink::SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean folderVerifiedOnline (in ACString folderName); */
NS_IMETHODIMP nsImapServerSink::FolderVerifiedOnline(const nsACString & folderName, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCapability (in unsigned long long capability); */
NS_IMETHODIMP nsImapServerSink::SetCapability(PRUint64 capability)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setServerID (in ACString aServerID); */
NS_IMETHODIMP nsImapServerSink::SetServerID(const nsACString & aServerID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean loadNextQueuedUrl (in nsIImapProtocol protocol); */
NS_IMETHODIMP nsImapServerSink::LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImapMockChannel prepareToRetryUrl (in nsIImapUrl imapUrl); */
NS_IMETHODIMP nsImapServerSink::PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void suspendUrl (in nsIImapUrl aImapUrl); */
NS_IMETHODIMP nsImapServerSink::SuspendUrl(nsIImapUrl *aImapUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void retryUrl (in nsIImapUrl imapUrl, in nsIImapMockChannel channel); */
NS_IMETHODIMP nsImapServerSink::RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void abortQueuedUrls (); */
NS_IMETHODIMP nsImapServerSink::AbortQueuedUrls()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getImapStringByID (in long msgId); */
NS_IMETHODIMP nsImapServerSink::GetImapStringByID(PRInt32 msgId, nsAString & _retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* PRInt32 promptLoginFailed (in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsImapServerSink::PromptLoginFailed(nsIMsgWindow *aMsgWindow, PRInt32 *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fEAlert (in AString aAlertSring, in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapServerSink::FEAlert(const nsAString & aAlertSring, nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fEAlertWithID (in long aMsgId, in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapServerSink::FEAlertWithID(PRInt32 aMsgId, nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fEAlertFromServer (in ACString aServerString, in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapServerSink::FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void commitNamespaces (); */
NS_IMETHODIMP nsImapServerSink::CommitNamespaces()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void asyncGetPassword (in nsIImapProtocol aProtocol, in boolean aNewPasswordRequested, out ACString aPassword); */
NS_IMETHODIMP nsImapServerSink::AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean userAuthenticated; */
NS_IMETHODIMP nsImapServerSink::GetUserAuthenticated(bool *aUserAuthenticated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapServerSink::SetUserAuthenticated(bool aUserAuthenticated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setMailServerUrls (in ACString manageMailAccount, in ACString manageLists, in ACString manageFilters); */
NS_IMETHODIMP nsImapServerSink::SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void UpdateTrySTARTTLSPref (in boolean aSucceeded); */
NS_IMETHODIMP nsImapServerSink::UpdateTrySTARTTLSPref(bool aSucceeded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString arbitraryHeaders; */
NS_IMETHODIMP nsImapServerSink::GetArbitraryHeaders(nsACString & aArbitraryHeaders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void forgetPassword (); */
NS_IMETHODIMP nsImapServerSink::ForgetPassword()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean showAttachmentsInline; */
NS_IMETHODIMP nsImapServerSink::GetShowAttachmentsInline(bool *aShowAttachmentsInline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string cramMD5Hash (in string decodedChallenge, in string key); */
NS_IMETHODIMP nsImapServerSink::CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString loginUsername; */
NS_IMETHODIMP nsImapServerSink::GetLoginUsername(nsACString & aLoginUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIImapServerSink_h__ */
