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

#ifndef __gen_nsIMsgImapMailFolder_h__
#define __gen_nsIMsgImapMailFolder_h__


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

#ifndef __gen_nsIMsgFolder_h__
#include "nsIMsgFolder.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 nsIImapIncomingServer; /* forward declaration */


/* starting interface:    nsIMsgImapMailFolder */
#define NS_IMSGIMAPMAILFOLDER_IID_STR "fbfebe79-c1dd-11d2-8a40-0060b0fc04d2"

#define NS_IMSGIMAPMAILFOLDER_IID \
  {0xfbfebe79, 0xc1dd, 0x11d2, \
    { 0x8a, 0x40, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xd2 }}

class NS_NO_VTABLE nsIMsgImapMailFolder : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGIMAPMAILFOLDER_IID)

  /* void removeSubFolder (in nsIMsgFolder folder); */
  NS_IMETHOD RemoveSubFolder(nsIMsgFolder *folder) = 0;

  /* void createClientSubfolderInfo (in string folderName, in wchar hierarchyDelimiter, in long flags); */
  NS_IMETHOD CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter, PRInt32 flags) = 0;

  /* void list (); */
  NS_IMETHOD List(void) = 0;

  /* void renameLocal (in string newname, in nsIMsgFolder parent); */
  NS_IMETHOD RenameLocal(const char *newname, nsIMsgFolder *parent) = 0;

  /* void prepareToRename (); */
  NS_IMETHOD PrepareToRename(void) = 0;

  /* void performExpand (in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow) = 0;

  /* void recursiveCloseActiveConnections (in nsIImapIncomingServer aImapServer); */
  NS_IMETHOD RecursiveCloseActiveConnections(nsIImapIncomingServer *aImapServer) = 0;

  /* void renameClient (in nsIMsgWindow msgWindow, in nsIMsgFolder msgFolder, in string oldName, in string newName); */
  NS_IMETHOD RenameClient(nsIMsgWindow *msgWindow, nsIMsgFolder *msgFolder, const char *oldName, const char *newName) = 0;

  /* void storeImapFlags (in long flags, in boolean addFlags, out nsMsgKey keysToFlag, in long numKeys); */
  NS_IMETHOD StoreImapFlags(PRInt32 flags, PRBool addFlags, nsMsgKey *keysToFlag, PRInt32 numKeys) = 0;

  /* void setImapFlags (in string uids, in long flags, out nsIURI url); */
  NS_IMETHOD SetImapFlags(const char *uids, PRInt32 flags, nsIURI **url) = 0;

  /* void replayOfflineMoveCopy (out nsMsgKey keys, in long numKeys, in boolean isMove, in nsIMsgFolder aDstFolder, in nsIUrlListener aUrlListener, in nsIMsgWindow aWindow); */
  NS_IMETHOD ReplayOfflineMoveCopy(nsMsgKey *keys, PRInt32 numKeys, PRBool isMove, nsIMsgFolder *aDstFolder, nsIUrlListener *aUrlListener, nsIMsgWindow *aWindow) = 0;

  /* void playbackOfflineFolderCreate (in wstring folderName, in nsIMsgWindow aWindow, out nsIURI url); */
  NS_IMETHOD PlaybackOfflineFolderCreate(const PRUnichar *folderName, nsIMsgWindow *aWindow, nsIURI **url) = 0;

  /* void liteSelect (in nsIUrlListener aUrlListener); */
  NS_IMETHOD LiteSelect(nsIUrlListener *aUrlListener) = 0;

  /* attribute boolean verifiedAsOnlineFolder; */
  NS_IMETHOD GetVerifiedAsOnlineFolder(PRBool *aVerifiedAsOnlineFolder) = 0;
  NS_IMETHOD SetVerifiedAsOnlineFolder(PRBool aVerifiedAsOnlineFolder) = 0;

  /* attribute boolean explicitlyVerify; */
  NS_IMETHOD GetExplicitlyVerify(PRBool *aExplicitlyVerify) = 0;
  NS_IMETHOD SetExplicitlyVerify(PRBool aExplicitlyVerify) = 0;

  /* attribute wchar hierarchyDelimiter; */
  NS_IMETHOD GetHierarchyDelimiter(PRUnichar *aHierarchyDelimiter) = 0;
  NS_IMETHOD SetHierarchyDelimiter(PRUnichar aHierarchyDelimiter) = 0;

  /* attribute long boxFlags; */
  NS_IMETHOD GetBoxFlags(PRInt32 *aBoxFlags) = 0;
  NS_IMETHOD SetBoxFlags(PRInt32 aBoxFlags) = 0;

  /* attribute string onlineName; */
  NS_IMETHOD GetOnlineName(char * *aOnlineName) = 0;
  NS_IMETHOD SetOnlineName(const char * aOnlineName) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGIMAPMAILFOLDER \
  NS_IMETHOD RemoveSubFolder(nsIMsgFolder *folder); \
  NS_IMETHOD CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter, PRInt32 flags); \
  NS_IMETHOD List(void); \
  NS_IMETHOD RenameLocal(const char *newname, nsIMsgFolder *parent); \
  NS_IMETHOD PrepareToRename(void); \
  NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD RecursiveCloseActiveConnections(nsIImapIncomingServer *aImapServer); \
  NS_IMETHOD RenameClient(nsIMsgWindow *msgWindow, nsIMsgFolder *msgFolder, const char *oldName, const char *newName); \
  NS_IMETHOD StoreImapFlags(PRInt32 flags, PRBool addFlags, nsMsgKey *keysToFlag, PRInt32 numKeys); \
  NS_IMETHOD SetImapFlags(const char *uids, PRInt32 flags, nsIURI **url); \
  NS_IMETHOD ReplayOfflineMoveCopy(nsMsgKey *keys, PRInt32 numKeys, PRBool isMove, nsIMsgFolder *aDstFolder, nsIUrlListener *aUrlListener, nsIMsgWindow *aWindow); \
  NS_IMETHOD PlaybackOfflineFolderCreate(const PRUnichar *folderName, nsIMsgWindow *aWindow, nsIURI **url); \
  NS_IMETHOD LiteSelect(nsIUrlListener *aUrlListener); \
  NS_IMETHOD GetVerifiedAsOnlineFolder(PRBool *aVerifiedAsOnlineFolder); \
  NS_IMETHOD SetVerifiedAsOnlineFolder(PRBool aVerifiedAsOnlineFolder); \
  NS_IMETHOD GetExplicitlyVerify(PRBool *aExplicitlyVerify); \
  NS_IMETHOD SetExplicitlyVerify(PRBool aExplicitlyVerify); \
  NS_IMETHOD GetHierarchyDelimiter(PRUnichar *aHierarchyDelimiter); \
  NS_IMETHOD SetHierarchyDelimiter(PRUnichar aHierarchyDelimiter); \
  NS_IMETHOD GetBoxFlags(PRInt32 *aBoxFlags); \
  NS_IMETHOD SetBoxFlags(PRInt32 aBoxFlags); \
  NS_IMETHOD GetOnlineName(char * *aOnlineName); \
  NS_IMETHOD SetOnlineName(const char * aOnlineName); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGIMAPMAILFOLDER(_to) \
  NS_IMETHOD RemoveSubFolder(nsIMsgFolder *folder) { return _to RemoveSubFolder(folder); } \
  NS_IMETHOD CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter, PRInt32 flags) { return _to CreateClientSubfolderInfo(folderName, hierarchyDelimiter, flags); } \
  NS_IMETHOD List(void) { return _to List(); } \
  NS_IMETHOD RenameLocal(const char *newname, nsIMsgFolder *parent) { return _to RenameLocal(newname, parent); } \
  NS_IMETHOD PrepareToRename(void) { return _to PrepareToRename(); } \
  NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow) { return _to PerformExpand(aMsgWindow); } \
  NS_IMETHOD RecursiveCloseActiveConnections(nsIImapIncomingServer *aImapServer) { return _to RecursiveCloseActiveConnections(aImapServer); } \
  NS_IMETHOD RenameClient(nsIMsgWindow *msgWindow, nsIMsgFolder *msgFolder, const char *oldName, const char *newName) { return _to RenameClient(msgWindow, msgFolder, oldName, newName); } \
  NS_IMETHOD StoreImapFlags(PRInt32 flags, PRBool addFlags, nsMsgKey *keysToFlag, PRInt32 numKeys) { return _to StoreImapFlags(flags, addFlags, keysToFlag, numKeys); } \
  NS_IMETHOD SetImapFlags(const char *uids, PRInt32 flags, nsIURI **url) { return _to SetImapFlags(uids, flags, url); } \
  NS_IMETHOD ReplayOfflineMoveCopy(nsMsgKey *keys, PRInt32 numKeys, PRBool isMove, nsIMsgFolder *aDstFolder, nsIUrlListener *aUrlListener, nsIMsgWindow *aWindow) { return _to ReplayOfflineMoveCopy(keys, numKeys, isMove, aDstFolder, aUrlListener, aWindow); } \
  NS_IMETHOD PlaybackOfflineFolderCreate(const PRUnichar *folderName, nsIMsgWindow *aWindow, nsIURI **url) { return _to PlaybackOfflineFolderCreate(folderName, aWindow, url); } \
  NS_IMETHOD LiteSelect(nsIUrlListener *aUrlListener) { return _to LiteSelect(aUrlListener); } \
  NS_IMETHOD GetVerifiedAsOnlineFolder(PRBool *aVerifiedAsOnlineFolder) { return _to GetVerifiedAsOnlineFolder(aVerifiedAsOnlineFolder); } \
  NS_IMETHOD SetVerifiedAsOnlineFolder(PRBool aVerifiedAsOnlineFolder) { return _to SetVerifiedAsOnlineFolder(aVerifiedAsOnlineFolder); } \
  NS_IMETHOD GetExplicitlyVerify(PRBool *aExplicitlyVerify) { return _to GetExplicitlyVerify(aExplicitlyVerify); } \
  NS_IMETHOD SetExplicitlyVerify(PRBool aExplicitlyVerify) { return _to SetExplicitlyVerify(aExplicitlyVerify); } \
  NS_IMETHOD GetHierarchyDelimiter(PRUnichar *aHierarchyDelimiter) { return _to GetHierarchyDelimiter(aHierarchyDelimiter); } \
  NS_IMETHOD SetHierarchyDelimiter(PRUnichar aHierarchyDelimiter) { return _to SetHierarchyDelimiter(aHierarchyDelimiter); } \
  NS_IMETHOD GetBoxFlags(PRInt32 *aBoxFlags) { return _to GetBoxFlags(aBoxFlags); } \
  NS_IMETHOD SetBoxFlags(PRInt32 aBoxFlags) { return _to SetBoxFlags(aBoxFlags); } \
  NS_IMETHOD GetOnlineName(char * *aOnlineName) { return _to GetOnlineName(aOnlineName); } \
  NS_IMETHOD SetOnlineName(const char * aOnlineName) { return _to SetOnlineName(aOnlineName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGIMAPMAILFOLDER(_to) \
  NS_IMETHOD RemoveSubFolder(nsIMsgFolder *folder) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveSubFolder(folder); } \
  NS_IMETHOD CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter, PRInt32 flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateClientSubfolderInfo(folderName, hierarchyDelimiter, flags); } \
  NS_IMETHOD List(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->List(); } \
  NS_IMETHOD RenameLocal(const char *newname, nsIMsgFolder *parent) { return !_to ? NS_ERROR_NULL_POINTER : _to->RenameLocal(newname, parent); } \
  NS_IMETHOD PrepareToRename(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->PrepareToRename(); } \
  NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->PerformExpand(aMsgWindow); } \
  NS_IMETHOD RecursiveCloseActiveConnections(nsIImapIncomingServer *aImapServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->RecursiveCloseActiveConnections(aImapServer); } \
  NS_IMETHOD RenameClient(nsIMsgWindow *msgWindow, nsIMsgFolder *msgFolder, const char *oldName, const char *newName) { return !_to ? NS_ERROR_NULL_POINTER : _to->RenameClient(msgWindow, msgFolder, oldName, newName); } \
  NS_IMETHOD StoreImapFlags(PRInt32 flags, PRBool addFlags, nsMsgKey *keysToFlag, PRInt32 numKeys) { return !_to ? NS_ERROR_NULL_POINTER : _to->StoreImapFlags(flags, addFlags, keysToFlag, numKeys); } \
  NS_IMETHOD SetImapFlags(const char *uids, PRInt32 flags, nsIURI **url) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImapFlags(uids, flags, url); } \
  NS_IMETHOD ReplayOfflineMoveCopy(nsMsgKey *keys, PRInt32 numKeys, PRBool isMove, nsIMsgFolder *aDstFolder, nsIUrlListener *aUrlListener, nsIMsgWindow *aWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReplayOfflineMoveCopy(keys, numKeys, isMove, aDstFolder, aUrlListener, aWindow); } \
  NS_IMETHOD PlaybackOfflineFolderCreate(const PRUnichar *folderName, nsIMsgWindow *aWindow, nsIURI **url) { return !_to ? NS_ERROR_NULL_POINTER : _to->PlaybackOfflineFolderCreate(folderName, aWindow, url); } \
  NS_IMETHOD LiteSelect(nsIUrlListener *aUrlListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->LiteSelect(aUrlListener); } \
  NS_IMETHOD GetVerifiedAsOnlineFolder(PRBool *aVerifiedAsOnlineFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVerifiedAsOnlineFolder(aVerifiedAsOnlineFolder); } \
  NS_IMETHOD SetVerifiedAsOnlineFolder(PRBool aVerifiedAsOnlineFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVerifiedAsOnlineFolder(aVerifiedAsOnlineFolder); } \
  NS_IMETHOD GetExplicitlyVerify(PRBool *aExplicitlyVerify) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExplicitlyVerify(aExplicitlyVerify); } \
  NS_IMETHOD SetExplicitlyVerify(PRBool aExplicitlyVerify) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExplicitlyVerify(aExplicitlyVerify); } \
  NS_IMETHOD GetHierarchyDelimiter(PRUnichar *aHierarchyDelimiter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHierarchyDelimiter(aHierarchyDelimiter); } \
  NS_IMETHOD SetHierarchyDelimiter(PRUnichar aHierarchyDelimiter) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHierarchyDelimiter(aHierarchyDelimiter); } \
  NS_IMETHOD GetBoxFlags(PRInt32 *aBoxFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBoxFlags(aBoxFlags); } \
  NS_IMETHOD SetBoxFlags(PRInt32 aBoxFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBoxFlags(aBoxFlags); } \
  NS_IMETHOD GetOnlineName(char * *aOnlineName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOnlineName(aOnlineName); } \
  NS_IMETHOD SetOnlineName(const char * aOnlineName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOnlineName(aOnlineName); } 

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

/* Header file */
class nsMsgImapMailFolder : public nsIMsgImapMailFolder
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGIMAPMAILFOLDER

  nsMsgImapMailFolder();
  virtual ~nsMsgImapMailFolder();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgImapMailFolder, nsIMsgImapMailFolder)

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

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

/* void removeSubFolder (in nsIMsgFolder folder); */
NS_IMETHODIMP nsMsgImapMailFolder::RemoveSubFolder(nsIMsgFolder *folder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createClientSubfolderInfo (in string folderName, in wchar hierarchyDelimiter, in long flags); */
NS_IMETHODIMP nsMsgImapMailFolder::CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter, PRInt32 flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void list (); */
NS_IMETHODIMP nsMsgImapMailFolder::List()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void renameLocal (in string newname, in nsIMsgFolder parent); */
NS_IMETHODIMP nsMsgImapMailFolder::RenameLocal(const char *newname, nsIMsgFolder *parent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void prepareToRename (); */
NS_IMETHODIMP nsMsgImapMailFolder::PrepareToRename()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void performExpand (in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsMsgImapMailFolder::PerformExpand(nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void recursiveCloseActiveConnections (in nsIImapIncomingServer aImapServer); */
NS_IMETHODIMP nsMsgImapMailFolder::RecursiveCloseActiveConnections(nsIImapIncomingServer *aImapServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void renameClient (in nsIMsgWindow msgWindow, in nsIMsgFolder msgFolder, in string oldName, in string newName); */
NS_IMETHODIMP nsMsgImapMailFolder::RenameClient(nsIMsgWindow *msgWindow, nsIMsgFolder *msgFolder, const char *oldName, const char *newName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void storeImapFlags (in long flags, in boolean addFlags, out nsMsgKey keysToFlag, in long numKeys); */
NS_IMETHODIMP nsMsgImapMailFolder::StoreImapFlags(PRInt32 flags, PRBool addFlags, nsMsgKey *keysToFlag, PRInt32 numKeys)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setImapFlags (in string uids, in long flags, out nsIURI url); */
NS_IMETHODIMP nsMsgImapMailFolder::SetImapFlags(const char *uids, PRInt32 flags, nsIURI **url)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void replayOfflineMoveCopy (out nsMsgKey keys, in long numKeys, in boolean isMove, in nsIMsgFolder aDstFolder, in nsIUrlListener aUrlListener, in nsIMsgWindow aWindow); */
NS_IMETHODIMP nsMsgImapMailFolder::ReplayOfflineMoveCopy(nsMsgKey *keys, PRInt32 numKeys, PRBool isMove, nsIMsgFolder *aDstFolder, nsIUrlListener *aUrlListener, nsIMsgWindow *aWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void playbackOfflineFolderCreate (in wstring folderName, in nsIMsgWindow aWindow, out nsIURI url); */
NS_IMETHODIMP nsMsgImapMailFolder::PlaybackOfflineFolderCreate(const PRUnichar *folderName, nsIMsgWindow *aWindow, nsIURI **url)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void liteSelect (in nsIUrlListener aUrlListener); */
NS_IMETHODIMP nsMsgImapMailFolder::LiteSelect(nsIUrlListener *aUrlListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean verifiedAsOnlineFolder; */
NS_IMETHODIMP nsMsgImapMailFolder::GetVerifiedAsOnlineFolder(PRBool *aVerifiedAsOnlineFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetVerifiedAsOnlineFolder(PRBool aVerifiedAsOnlineFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean explicitlyVerify; */
NS_IMETHODIMP nsMsgImapMailFolder::GetExplicitlyVerify(PRBool *aExplicitlyVerify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetExplicitlyVerify(PRBool aExplicitlyVerify)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wchar hierarchyDelimiter; */
NS_IMETHODIMP nsMsgImapMailFolder::GetHierarchyDelimiter(PRUnichar *aHierarchyDelimiter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetHierarchyDelimiter(PRUnichar aHierarchyDelimiter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long boxFlags; */
NS_IMETHODIMP nsMsgImapMailFolder::GetBoxFlags(PRInt32 *aBoxFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetBoxFlags(PRInt32 aBoxFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string onlineName; */
NS_IMETHODIMP nsMsgImapMailFolder::GetOnlineName(char * *aOnlineName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetOnlineName(const char * aOnlineName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgImapMailFolder_h__ */
