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

class nsIMsgParseMailMsgState; /* forward declaration */


/* starting interface:    nsIMsgImapFolderProps */
#define NS_IMSGIMAPFOLDERPROPS_IID_STR "239472a2-6e8f-46f0-9507-887998da49e5"

#define NS_IMSGIMAPFOLDERPROPS_IID \
  {0x239472a2, 0x6e8f, 0x46f0, \
    { 0x95, 0x07, 0x88, 0x79, 0x98, 0xda, 0x49, 0xe5 }}

class NS_NO_VTABLE nsIMsgImapFolderProps : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IMSGIMAPFOLDERPROPS_IID)

  /* void setFolderType (in wstring folderType); */
  NS_IMETHOD SetFolderType(const PRUnichar *folderType) = 0;

  /* void setFolderTypeDescription (in wstring folderTypeDescription); */
  NS_IMETHOD SetFolderTypeDescription(const PRUnichar *folderTypeDescription) = 0;

  /* void setFolderPermissions (in wstring permissions); */
  NS_IMETHOD SetFolderPermissions(const PRUnichar *permissions) = 0;

  /* void serverDoesntSupportACL (); */
  NS_IMETHOD ServerDoesntSupportACL(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGIMAPFOLDERPROPS \
  NS_IMETHOD SetFolderType(const PRUnichar *folderType); \
  NS_IMETHOD SetFolderTypeDescription(const PRUnichar *folderTypeDescription); \
  NS_IMETHOD SetFolderPermissions(const PRUnichar *permissions); \
  NS_IMETHOD ServerDoesntSupportACL(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGIMAPFOLDERPROPS(_to) \
  NS_IMETHOD SetFolderType(const PRUnichar *folderType) { return _to SetFolderType(folderType); } \
  NS_IMETHOD SetFolderTypeDescription(const PRUnichar *folderTypeDescription) { return _to SetFolderTypeDescription(folderTypeDescription); } \
  NS_IMETHOD SetFolderPermissions(const PRUnichar *permissions) { return _to SetFolderPermissions(permissions); } \
  NS_IMETHOD ServerDoesntSupportACL(void) { return _to ServerDoesntSupportACL(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGIMAPFOLDERPROPS(_to) \
  NS_IMETHOD SetFolderType(const PRUnichar *folderType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderType(folderType); } \
  NS_IMETHOD SetFolderTypeDescription(const PRUnichar *folderTypeDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderTypeDescription(folderTypeDescription); } \
  NS_IMETHOD SetFolderPermissions(const PRUnichar *permissions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderPermissions(permissions); } \
  NS_IMETHOD ServerDoesntSupportACL(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ServerDoesntSupportACL(); } 

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

/* Header file */
class nsMsgImapFolderProps : public nsIMsgImapFolderProps
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGIMAPFOLDERPROPS

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgImapFolderProps, nsIMsgImapFolderProps)

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

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

/* void setFolderType (in wstring folderType); */
NS_IMETHODIMP nsMsgImapFolderProps::SetFolderType(const PRUnichar *folderType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setFolderTypeDescription (in wstring folderTypeDescription); */
NS_IMETHODIMP nsMsgImapFolderProps::SetFolderTypeDescription(const PRUnichar *folderTypeDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setFolderPermissions (in wstring permissions); */
NS_IMETHODIMP nsMsgImapFolderProps::SetFolderPermissions(const PRUnichar *permissions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void serverDoesntSupportACL (); */
NS_IMETHODIMP nsMsgImapFolderProps::ServerDoesntSupportACL()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* 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, in boolean suppressNotification); */
  NS_IMETHOD CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter, PRInt32 flags, PRBool suppressNotification) = 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;

  /* void fillInFolderProps (in nsIMsgImapFolderProps aFolderProps); */
  NS_IMETHOD FillInFolderProps(nsIMsgImapFolderProps *aFolderProps) = 0;

  /* void resetNamespaceReferences (); */
  NS_IMETHOD ResetNamespaceReferences(void) = 0;

  /* void folderPrivileges (in nsIMsgWindow aWindow); */
  NS_IMETHOD FolderPrivileges(nsIMsgWindow *aWindow) = 0;

  /* nsIMsgImapMailFolder findOnlineSubFolder (in string onlineName); */
  NS_IMETHOD FindOnlineSubFolder(const char *onlineName, nsIMsgImapMailFolder **_retval) = 0;

  /* void addFolderRights (in string userName, in string rights); */
  NS_IMETHOD AddFolderRights(const char *userName, const char *rights) = 0;

  /* void refreshFolderRights (); */
  NS_IMETHOD RefreshFolderRights(void) = 0;

  /* nsIURI issueCommandOnMsgs (in string command, in string uids, in nsIMsgWindow aWindow); */
  NS_IMETHOD IssueCommandOnMsgs(const char *command, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval) = 0;

  /* nsIURI fetchCustomMsgAttribute (in string msgAttribute, in string uids, in nsIMsgWindow aWindow); */
  NS_IMETHOD FetchCustomMsgAttribute(const char *msgAttribute, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval) = 0;

  /* nsIURI storeCustomKeywords (in nsIMsgWindow aMsgWindow, in string aFlagsToAdd, in string aFlagsToSubtract, out nsMsgKey aKeysToStore, in long aNumKeys); */
  NS_IMETHOD StoreCustomKeywords(nsIMsgWindow *aMsgWindow, const char *aFlagsToAdd, const char *aFlagsToSubtract, nsMsgKey *aKeysToStore, PRInt32 aNumKeys, nsIURI **_retval) = 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;

  /* attribute unsigned long aclFlags; */
  NS_IMETHOD GetAclFlags(PRUint32 *aAclFlags) = 0;
  NS_IMETHOD SetAclFlags(PRUint32 aAclFlags) = 0;

  /* attribute boolean isNamespace; */
  NS_IMETHOD GetIsNamespace(PRBool *aIsNamespace) = 0;
  NS_IMETHOD SetIsNamespace(PRBool aIsNamespace) = 0;

  /* readonly attribute boolean canIOpenThisFolder; */
  NS_IMETHOD GetCanIOpenThisFolder(PRBool *aCanIOpenThisFolder) = 0;

  /* attribute string adminUrl; */
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl) = 0;
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl) = 0;

  /* readonly attribute boolean hasAdminUrl; */
  NS_IMETHOD GetHasAdminUrl(PRBool *aHasAdminUrl) = 0;

  /* attribute boolean performingBiff; */
  NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff) = 0;
  NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff) = 0;

  /* readonly attribute nsIMsgParseMailMsgState hdrParser; */
  NS_IMETHOD GetHdrParser(nsIMsgParseMailMsgState * *aHdrParser) = 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, PRBool suppressNotification); \
  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 FillInFolderProps(nsIMsgImapFolderProps *aFolderProps); \
  NS_IMETHOD ResetNamespaceReferences(void); \
  NS_IMETHOD FolderPrivileges(nsIMsgWindow *aWindow); \
  NS_IMETHOD FindOnlineSubFolder(const char *onlineName, nsIMsgImapMailFolder **_retval); \
  NS_IMETHOD AddFolderRights(const char *userName, const char *rights); \
  NS_IMETHOD RefreshFolderRights(void); \
  NS_IMETHOD IssueCommandOnMsgs(const char *command, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval); \
  NS_IMETHOD FetchCustomMsgAttribute(const char *msgAttribute, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval); \
  NS_IMETHOD StoreCustomKeywords(nsIMsgWindow *aMsgWindow, const char *aFlagsToAdd, const char *aFlagsToSubtract, nsMsgKey *aKeysToStore, PRInt32 aNumKeys, nsIURI **_retval); \
  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); \
  NS_IMETHOD GetAclFlags(PRUint32 *aAclFlags); \
  NS_IMETHOD SetAclFlags(PRUint32 aAclFlags); \
  NS_IMETHOD GetIsNamespace(PRBool *aIsNamespace); \
  NS_IMETHOD SetIsNamespace(PRBool aIsNamespace); \
  NS_IMETHOD GetCanIOpenThisFolder(PRBool *aCanIOpenThisFolder); \
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl); \
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl); \
  NS_IMETHOD GetHasAdminUrl(PRBool *aHasAdminUrl); \
  NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff); \
  NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff); \
  NS_IMETHOD GetHdrParser(nsIMsgParseMailMsgState * *aHdrParser); 

/* 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, PRBool suppressNotification) { return _to CreateClientSubfolderInfo(folderName, hierarchyDelimiter, flags, suppressNotification); } \
  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 FillInFolderProps(nsIMsgImapFolderProps *aFolderProps) { return _to FillInFolderProps(aFolderProps); } \
  NS_IMETHOD ResetNamespaceReferences(void) { return _to ResetNamespaceReferences(); } \
  NS_IMETHOD FolderPrivileges(nsIMsgWindow *aWindow) { return _to FolderPrivileges(aWindow); } \
  NS_IMETHOD FindOnlineSubFolder(const char *onlineName, nsIMsgImapMailFolder **_retval) { return _to FindOnlineSubFolder(onlineName, _retval); } \
  NS_IMETHOD AddFolderRights(const char *userName, const char *rights) { return _to AddFolderRights(userName, rights); } \
  NS_IMETHOD RefreshFolderRights(void) { return _to RefreshFolderRights(); } \
  NS_IMETHOD IssueCommandOnMsgs(const char *command, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval) { return _to IssueCommandOnMsgs(command, uids, aWindow, _retval); } \
  NS_IMETHOD FetchCustomMsgAttribute(const char *msgAttribute, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval) { return _to FetchCustomMsgAttribute(msgAttribute, uids, aWindow, _retval); } \
  NS_IMETHOD StoreCustomKeywords(nsIMsgWindow *aMsgWindow, const char *aFlagsToAdd, const char *aFlagsToSubtract, nsMsgKey *aKeysToStore, PRInt32 aNumKeys, nsIURI **_retval) { return _to StoreCustomKeywords(aMsgWindow, aFlagsToAdd, aFlagsToSubtract, aKeysToStore, aNumKeys, _retval); } \
  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); } \
  NS_IMETHOD GetAclFlags(PRUint32 *aAclFlags) { return _to GetAclFlags(aAclFlags); } \
  NS_IMETHOD SetAclFlags(PRUint32 aAclFlags) { return _to SetAclFlags(aAclFlags); } \
  NS_IMETHOD GetIsNamespace(PRBool *aIsNamespace) { return _to GetIsNamespace(aIsNamespace); } \
  NS_IMETHOD SetIsNamespace(PRBool aIsNamespace) { return _to SetIsNamespace(aIsNamespace); } \
  NS_IMETHOD GetCanIOpenThisFolder(PRBool *aCanIOpenThisFolder) { return _to GetCanIOpenThisFolder(aCanIOpenThisFolder); } \
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl) { return _to GetAdminUrl(aAdminUrl); } \
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl) { return _to SetAdminUrl(aAdminUrl); } \
  NS_IMETHOD GetHasAdminUrl(PRBool *aHasAdminUrl) { return _to GetHasAdminUrl(aHasAdminUrl); } \
  NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff) { return _to GetPerformingBiff(aPerformingBiff); } \
  NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff) { return _to SetPerformingBiff(aPerformingBiff); } \
  NS_IMETHOD GetHdrParser(nsIMsgParseMailMsgState * *aHdrParser) { return _to GetHdrParser(aHdrParser); } 

/* 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, PRBool suppressNotification) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateClientSubfolderInfo(folderName, hierarchyDelimiter, flags, suppressNotification); } \
  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 FillInFolderProps(nsIMsgImapFolderProps *aFolderProps) { return !_to ? NS_ERROR_NULL_POINTER : _to->FillInFolderProps(aFolderProps); } \
  NS_IMETHOD ResetNamespaceReferences(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetNamespaceReferences(); } \
  NS_IMETHOD FolderPrivileges(nsIMsgWindow *aWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->FolderPrivileges(aWindow); } \
  NS_IMETHOD FindOnlineSubFolder(const char *onlineName, nsIMsgImapMailFolder **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindOnlineSubFolder(onlineName, _retval); } \
  NS_IMETHOD AddFolderRights(const char *userName, const char *rights) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddFolderRights(userName, rights); } \
  NS_IMETHOD RefreshFolderRights(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RefreshFolderRights(); } \
  NS_IMETHOD IssueCommandOnMsgs(const char *command, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IssueCommandOnMsgs(command, uids, aWindow, _retval); } \
  NS_IMETHOD FetchCustomMsgAttribute(const char *msgAttribute, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->FetchCustomMsgAttribute(msgAttribute, uids, aWindow, _retval); } \
  NS_IMETHOD StoreCustomKeywords(nsIMsgWindow *aMsgWindow, const char *aFlagsToAdd, const char *aFlagsToSubtract, nsMsgKey *aKeysToStore, PRInt32 aNumKeys, nsIURI **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->StoreCustomKeywords(aMsgWindow, aFlagsToAdd, aFlagsToSubtract, aKeysToStore, aNumKeys, _retval); } \
  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); } \
  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 GetIsNamespace(PRBool *aIsNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsNamespace(aIsNamespace); } \
  NS_IMETHOD SetIsNamespace(PRBool aIsNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsNamespace(aIsNamespace); } \
  NS_IMETHOD GetCanIOpenThisFolder(PRBool *aCanIOpenThisFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanIOpenThisFolder(aCanIOpenThisFolder); } \
  NS_IMETHOD GetAdminUrl(char * *aAdminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdminUrl(aAdminUrl); } \
  NS_IMETHOD SetAdminUrl(const char * aAdminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAdminUrl(aAdminUrl); } \
  NS_IMETHOD GetHasAdminUrl(PRBool *aHasAdminUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHasAdminUrl(aHasAdminUrl); } \
  NS_IMETHOD GetPerformingBiff(PRBool *aPerformingBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPerformingBiff(aPerformingBiff); } \
  NS_IMETHOD SetPerformingBiff(PRBool aPerformingBiff) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPerformingBiff(aPerformingBiff); } \
  NS_IMETHOD GetHdrParser(nsIMsgParseMailMsgState * *aHdrParser) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHdrParser(aHdrParser); } 

#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()
{
  /* 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, in boolean suppressNotification); */
NS_IMETHODIMP nsMsgImapMailFolder::CreateClientSubfolderInfo(const char *folderName, PRUnichar hierarchyDelimiter, PRInt32 flags, PRBool suppressNotification)
{
    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;
}

/* void fillInFolderProps (in nsIMsgImapFolderProps aFolderProps); */
NS_IMETHODIMP nsMsgImapMailFolder::FillInFolderProps(nsIMsgImapFolderProps *aFolderProps)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* void folderPrivileges (in nsIMsgWindow aWindow); */
NS_IMETHODIMP nsMsgImapMailFolder::FolderPrivileges(nsIMsgWindow *aWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIMsgImapMailFolder findOnlineSubFolder (in string onlineName); */
NS_IMETHODIMP nsMsgImapMailFolder::FindOnlineSubFolder(const char *onlineName, nsIMsgImapMailFolder **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addFolderRights (in string userName, in string rights); */
NS_IMETHODIMP nsMsgImapMailFolder::AddFolderRights(const char *userName, const char *rights)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* nsIURI issueCommandOnMsgs (in string command, in string uids, in nsIMsgWindow aWindow); */
NS_IMETHODIMP nsMsgImapMailFolder::IssueCommandOnMsgs(const char *command, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIURI fetchCustomMsgAttribute (in string msgAttribute, in string uids, in nsIMsgWindow aWindow); */
NS_IMETHODIMP nsMsgImapMailFolder::FetchCustomMsgAttribute(const char *msgAttribute, const char *uids, nsIMsgWindow *aWindow, nsIURI **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIURI storeCustomKeywords (in nsIMsgWindow aMsgWindow, in string aFlagsToAdd, in string aFlagsToSubtract, out nsMsgKey aKeysToStore, in long aNumKeys); */
NS_IMETHODIMP nsMsgImapMailFolder::StoreCustomKeywords(nsIMsgWindow *aMsgWindow, const char *aFlagsToAdd, const char *aFlagsToSubtract, nsMsgKey *aKeysToStore, PRInt32 aNumKeys, nsIURI **_retval)
{
    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;
}

/* attribute unsigned long aclFlags; */
NS_IMETHODIMP nsMsgImapMailFolder::GetAclFlags(PRUint32 *aAclFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetAclFlags(PRUint32 aAclFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isNamespace; */
NS_IMETHODIMP nsMsgImapMailFolder::GetIsNamespace(PRBool *aIsNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetIsNamespace(PRBool aIsNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canIOpenThisFolder; */
NS_IMETHODIMP nsMsgImapMailFolder::GetCanIOpenThisFolder(PRBool *aCanIOpenThisFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string adminUrl; */
NS_IMETHODIMP nsMsgImapMailFolder::GetAdminUrl(char * *aAdminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetAdminUrl(const char * aAdminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean hasAdminUrl; */
NS_IMETHODIMP nsMsgImapMailFolder::GetHasAdminUrl(PRBool *aHasAdminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean performingBiff; */
NS_IMETHODIMP nsMsgImapMailFolder::GetPerformingBiff(PRBool *aPerformingBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMsgImapMailFolder::SetPerformingBiff(PRBool aPerformingBiff)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIMsgParseMailMsgState hdrParser; */
NS_IMETHODIMP nsMsgImapMailFolder::GetHdrParser(nsIMsgParseMailMsgState * *aHdrParser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgImapMailFolder_h__ */
