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

#ifndef __gen_nsIMsgImapMailFolder_h__
#define __gen_nsIMsgImapMailFolder_h__

#include "nsISupports.h"
#include "nsIMsgFolder.h"

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); */
  NS_IMETHOD CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter) = 0;

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

  /* void RenameLocal (in string newname); */
  NS_IMETHOD RenameLocal(const char *newname) = 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;

  /* 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); \
  NS_IMETHOD List(void); \
  NS_IMETHOD RenameLocal(const char *newname); \
  NS_IMETHOD PrepareToRename(void); \
  NS_IMETHOD PerformExpand(nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD RecursiveCloseActiveConnections(nsIImapIncomingServer *aImapServer); \
  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) { return _to ## CreateClientSubfolderInfo(folderName, hierarchyDelimiter); } \
  NS_IMETHOD List(void) { return _to ## List(); } \
  NS_IMETHOD RenameLocal(const char *newname) { return _to ## RenameLocal(newname); } \
  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 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); } 

#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); */
NS_IMETHODIMP nsMsgImapMailFolder::CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void RenameLocal (in string newname); */
NS_IMETHODIMP nsMsgImapMailFolder::RenameLocal(const char *newname)
{
    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;
}

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