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

#ifndef __gen_nsIImapServerSink_h__
#define __gen_nsIImapServerSink_h__

#include "nsISupports.h"
#include "MailNewsTypes2.h"

class nsIMsgWindow; /* forward declaration */

class nsIMsgMailNewsUrl; /* forward declaration */


/* starting interface:    nsIImapServerSink */
#define NS_IIMAPSERVERSINK_IID_STR "8ec49a08-5cb0-11d3-a52c-0060b0fc04b7"

#define NS_IIMAPSERVERSINK_IID \
  {0x8ec49a08, 0x5cb0, 0x11d3, \
    { 0xa5, 0x2c, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xb7 }}

class NS_NO_VTABLE nsIImapServerSink : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IIMAPSERVERSINK_IID)

  /* void PossibleImapMailbox (in string folderPath, in wchar hierarchyDelim, in long boxFlags); */
  NS_IMETHOD PossibleImapMailbox(const char *folderPath, PRUnichar hierarchyDelim, PRInt32 boxFlags) = 0;

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

  /* void OnlineFolderDelete (in string aFolderName); */
  NS_IMETHOD OnlineFolderDelete(const char *aFolderName) = 0;

  /* void OnlineFolderCreateFailed (in string aFolderName); */
  NS_IMETHOD OnlineFolderCreateFailed(const char *aFolderName) = 0;

  /* void OnlineFolderRename (in string oldName, in string newName); */
  NS_IMETHOD OnlineFolderRename(const char *oldName, const char *newName) = 0;

  /* void FolderIsNoSelect (in string aFolderName, out boolean aResult); */
  NS_IMETHOD FolderIsNoSelect(const char *aFolderName, PRBool *aResult) = 0;

  /* void SetFolderAdminURL (in string aFolderName, in string adminUrl); */
  NS_IMETHOD SetFolderAdminURL(const char *aFolderName, const char *adminUrl) = 0;

  /* void SubscribeUpgradeFinished (in boolean bringUpSubscribeUI); */
  NS_IMETHOD SubscribeUpgradeFinished(PRBool bringUpSubscribeUI) = 0;

  /* void SetCapability (in unsigned long capability); */
  NS_IMETHOD SetCapability(PRUint32 capability) = 0;

  /* void LoadNextQueuedUrl (out boolean urlRun); */
  NS_IMETHOD LoadNextQueuedUrl(PRBool *urlRun) = 0;

  /* void GetImapStringByID (in long aMsgId, out wstring aString); */
  NS_IMETHOD GetImapStringByID(PRInt32 aMsgId, PRUnichar **aString) = 0;

  /* void FEAlert (in wstring aString, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD FEAlert(const PRUnichar *aString, nsIMsgWindow *aMsgWindow) = 0;

  /* void FEAlertFromServer (in string aString, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD FEAlertFromServer(const char *aString, nsIMsgWindow *aMsgWindow) = 0;

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

  /* void PromptForPassword (out string aString, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD PromptForPassword(char **aString, nsIMsgWindow *aMsgWindow) = 0;

  /* void SetUserAuthenticated (in boolean authenticated); */
  NS_IMETHOD SetUserAuthenticated(PRBool authenticated) = 0;

  /* void SetMailServerUrls (in string manageMailAccount, in string manageLists, in string manageFilters); */
  NS_IMETHOD SetMailServerUrls(const char *manageMailAccount, const char *manageLists, const char *manageFilters) = 0;

  /* void RemoveChannelFromUrl (in nsIMsgMailNewsUrl aUrl, in unsigned long statusCode); */
  NS_IMETHOD RemoveChannelFromUrl(nsIMsgMailNewsUrl *aUrl, PRUint32 statusCode) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPSERVERSINK \
  NS_IMETHOD PossibleImapMailbox(const char *folderPath, PRUnichar hierarchyDelim, PRInt32 boxFlags); \
  NS_IMETHOD DiscoveryDone(void); \
  NS_IMETHOD OnlineFolderDelete(const char *aFolderName); \
  NS_IMETHOD OnlineFolderCreateFailed(const char *aFolderName); \
  NS_IMETHOD OnlineFolderRename(const char *oldName, const char *newName); \
  NS_IMETHOD FolderIsNoSelect(const char *aFolderName, PRBool *aResult); \
  NS_IMETHOD SetFolderAdminURL(const char *aFolderName, const char *adminUrl); \
  NS_IMETHOD SubscribeUpgradeFinished(PRBool bringUpSubscribeUI); \
  NS_IMETHOD SetCapability(PRUint32 capability); \
  NS_IMETHOD LoadNextQueuedUrl(PRBool *urlRun); \
  NS_IMETHOD GetImapStringByID(PRInt32 aMsgId, PRUnichar **aString); \
  NS_IMETHOD FEAlert(const PRUnichar *aString, nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD FEAlertFromServer(const char *aString, nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD CommitNamespaces(void); \
  NS_IMETHOD PromptForPassword(char **aString, nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD SetUserAuthenticated(PRBool authenticated); \
  NS_IMETHOD SetMailServerUrls(const char *manageMailAccount, const char *manageLists, const char *manageFilters); \
  NS_IMETHOD RemoveChannelFromUrl(nsIMsgMailNewsUrl *aUrl, PRUint32 statusCode); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPSERVERSINK(_to) \
  NS_IMETHOD PossibleImapMailbox(const char *folderPath, PRUnichar hierarchyDelim, PRInt32 boxFlags) { return _to ## PossibleImapMailbox(folderPath, hierarchyDelim, boxFlags); } \
  NS_IMETHOD DiscoveryDone(void) { return _to ## DiscoveryDone(); } \
  NS_IMETHOD OnlineFolderDelete(const char *aFolderName) { return _to ## OnlineFolderDelete(aFolderName); } \
  NS_IMETHOD OnlineFolderCreateFailed(const char *aFolderName) { return _to ## OnlineFolderCreateFailed(aFolderName); } \
  NS_IMETHOD OnlineFolderRename(const char *oldName, const char *newName) { return _to ## OnlineFolderRename(oldName, newName); } \
  NS_IMETHOD FolderIsNoSelect(const char *aFolderName, PRBool *aResult) { return _to ## FolderIsNoSelect(aFolderName, aResult); } \
  NS_IMETHOD SetFolderAdminURL(const char *aFolderName, const char *adminUrl) { return _to ## SetFolderAdminURL(aFolderName, adminUrl); } \
  NS_IMETHOD SubscribeUpgradeFinished(PRBool bringUpSubscribeUI) { return _to ## SubscribeUpgradeFinished(bringUpSubscribeUI); } \
  NS_IMETHOD SetCapability(PRUint32 capability) { return _to ## SetCapability(capability); } \
  NS_IMETHOD LoadNextQueuedUrl(PRBool *urlRun) { return _to ## LoadNextQueuedUrl(urlRun); } \
  NS_IMETHOD GetImapStringByID(PRInt32 aMsgId, PRUnichar **aString) { return _to ## GetImapStringByID(aMsgId, aString); } \
  NS_IMETHOD FEAlert(const PRUnichar *aString, nsIMsgWindow *aMsgWindow) { return _to ## FEAlert(aString, aMsgWindow); } \
  NS_IMETHOD FEAlertFromServer(const char *aString, nsIMsgWindow *aMsgWindow) { return _to ## FEAlertFromServer(aString, aMsgWindow); } \
  NS_IMETHOD CommitNamespaces(void) { return _to ## CommitNamespaces(); } \
  NS_IMETHOD PromptForPassword(char **aString, nsIMsgWindow *aMsgWindow) { return _to ## PromptForPassword(aString, aMsgWindow); } \
  NS_IMETHOD SetUserAuthenticated(PRBool authenticated) { return _to ## SetUserAuthenticated(authenticated); } \
  NS_IMETHOD SetMailServerUrls(const char *manageMailAccount, const char *manageLists, const char *manageFilters) { return _to ## SetMailServerUrls(manageMailAccount, manageLists, manageFilters); } \
  NS_IMETHOD RemoveChannelFromUrl(nsIMsgMailNewsUrl *aUrl, PRUint32 statusCode) { return _to ## RemoveChannelFromUrl(aUrl, statusCode); } 

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

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

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

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

/* void PossibleImapMailbox (in string folderPath, in wchar hierarchyDelim, in long boxFlags); */
NS_IMETHODIMP nsImapServerSink::PossibleImapMailbox(const char *folderPath, PRUnichar hierarchyDelim, PRInt32 boxFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void OnlineFolderDelete (in string aFolderName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderDelete(const char *aFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OnlineFolderCreateFailed (in string aFolderName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderCreateFailed(const char *aFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void OnlineFolderRename (in string oldName, in string newName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderRename(const char *oldName, const char *newName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void FolderIsNoSelect (in string aFolderName, out boolean aResult); */
NS_IMETHODIMP nsImapServerSink::FolderIsNoSelect(const char *aFolderName, PRBool *aResult)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetFolderAdminURL (in string aFolderName, in string adminUrl); */
NS_IMETHODIMP nsImapServerSink::SetFolderAdminURL(const char *aFolderName, const char *adminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SubscribeUpgradeFinished (in boolean bringUpSubscribeUI); */
NS_IMETHODIMP nsImapServerSink::SubscribeUpgradeFinished(PRBool bringUpSubscribeUI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void LoadNextQueuedUrl (out boolean urlRun); */
NS_IMETHODIMP nsImapServerSink::LoadNextQueuedUrl(PRBool *urlRun)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetImapStringByID (in long aMsgId, out wstring aString); */
NS_IMETHODIMP nsImapServerSink::GetImapStringByID(PRInt32 aMsgId, PRUnichar **aString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void FEAlert (in wstring aString, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsImapServerSink::FEAlert(const PRUnichar *aString, nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void FEAlertFromServer (in string aString, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsImapServerSink::FEAlertFromServer(const char *aString, nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void PromptForPassword (out string aString, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsImapServerSink::PromptForPassword(char **aString, nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetUserAuthenticated (in boolean authenticated); */
NS_IMETHODIMP nsImapServerSink::SetUserAuthenticated(PRBool authenticated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetMailServerUrls (in string manageMailAccount, in string manageLists, in string manageFilters); */
NS_IMETHODIMP nsImapServerSink::SetMailServerUrls(const char *manageMailAccount, const char *manageLists, const char *manageFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void RemoveChannelFromUrl (in nsIMsgMailNewsUrl aUrl, in unsigned long statusCode); */
NS_IMETHODIMP nsImapServerSink::RemoveChannelFromUrl(nsIMsgMailNewsUrl *aUrl, PRUint32 statusCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIImapServerSink_h__ */
