 
#ifndef mhfolder_DEFINED
#define mhfolder_DEFINED 1
 
#include <class.h>
/* 
 * This file was generated by the Andrew class system preprocessor.
 * Don't make changes to this file as it is created from mhfolder.ch and will be
 * overwritten.  Make changes to mhfolder.ch instead.
 */ 
 
/* 
 * The following information was copied, as-is, from mhfolder.ch.
 */ 
 







/* 
 * End of information copied from mhfolder.ch.
 */ 
 
/* 
 * Include the superclass information
 */ 
#define dontDefineRoutinesFor_msgfolder
#include "msgfolder.ih"
#undef dontDefineRoutinesFor_msgfolder

 
 
/* 
 * Data structure for mhfolder 
 */ 
struct mhfolder { 
    union {
	struct basicobject_methods *mhfolder_methods;
	struct msgfolder msgfolder;
    } header;
    long lastMessageFileNumber;
    time_t receiveTimeStamp;
    time_t dirTime;
    boolean haveScanned;
    char *path;
    struct extendedlist *messageList;

};

 
/* 
 * End of data structure for mhfolder.
 */ 
 


#ifndef mhfolder_PROGRAMMERVERSION
#define mhfolder_PROGRAMMERVERSION 1
#endif /* mhfolder_PROGRAMMERVERSION */

#ifdef mhfolder_VERSION
#undef mhfolder_VERSION
#endif /* mhfolder_VERSION */
#define mhfolder_VERSION ((((mhfolder_PROGRAMMERVERSION << 16) ^ (66 << 8) ^ sizeof(struct mhfolder)) & 0x7ffff) + 0x80000 + (129 << 20))

#define mhfolder_StaticLoadOnlyThisClass()  \
{ extern struct classinfo *mhfolder__GetClassInfo(); \
  (void) class_EnterInfo(NULL, mhfolder_classheader.name, mhfolder__GetClassInfo, NULL, mhfolder_classheader.namekey); } 
 
#define mhfolder_StaticLoad()  \
    { \
    msgfolder_StaticLoad(); \
    mhfolder_StaticLoadOnlyThisClass();  \
    } 
 
#define mhfolder_StaticEntry  {mhfolder_StaticLoad()} 
 
static struct classheader mhfolder_classheader = {
    mhfolder_VERSION,
    "mhfolder",
    "mhfolder",
    (struct basicobject_methods *) &class_RoutineStruct,
};


#endif /* mhfolder_DEFINED */

#if !defined(mhfolder_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_mhfolder) && !defined(class_StaticEntriesOnly)
#define mhfolder_ROUTINESDEFINED

#define mhfolder_GetName(self) \
    ((* ((char * (*)())((self)->header.mhfolder_methods->routines[0]))) (self))
#define mhfolder_SetName(self,name) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[1]))) (self,name))
#define mhfolder_GetDatabase(self) \
    ((* ((struct msgdatabase * (*)())((self)->header.mhfolder_methods->routines[2]))) (self))
#define mhfolder_SetDatabase(self,database) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[3]))) (self,database))
#define mhfolder_GetDatabaseCollection(self) \
    ((* ((struct msgdatabasecollection * (*)())((self)->header.mhfolder_methods->routines[4]))) (self))
#define mhfolder_NumberOfMessages(self) \
    ((* ((long (*)())((self)->header.mhfolder_methods->routines[5]))) (self))
#define mhfolder_NumberOfSubFolders(self) \
    ((* ((long (*)())((self)->header.mhfolder_methods->routines[6]))) (self))
#define mhfolder_GetListOfSubFolders(self) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[7]))) (self))
#define mhfolder_HasNewMessages(self) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[8]))) (self))
#define mhfolder_PrintNewMessages(self) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[9]))) (self))
#define mhfolder_CheckMailboxes(self) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[10]))) (self))
#define mhfolder_GetProtection(self) \
    ((* ((enum msgprotection (*)())((self)->header.mhfolder_methods->routines[11]))) (self))
#define mhfolder_SetProtection(self,protect) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[12]))) (self,protect))
#define mhfolder_GetExplanationFile(self) \
    ((* ((FILE * (*)())((self)->header.mhfolder_methods->routines[13]))) (self))
#define mhfolder_ReleaseExplanationFile(self,fp) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[14]))) (self,fp))
#define mhfolder_DeleteMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.mhfolder_methods->routines[15]))) (self,message))
#define mhfolder_UndeleteMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.mhfolder_methods->routines[16]))) (self,message))
#define mhfolder_AppendMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.mhfolder_methods->routines[17]))) (self,message))
#define mhfolder_AddMessage(self,message) \
    ((* ((boolerror (*)())((self)->header.mhfolder_methods->routines[18]))) (self,message))
#define mhfolder_Purge(self) \
    ((* ((boolerror (*)())((self)->header.mhfolder_methods->routines[19]))) (self))
#define mhfolder_NeedsToBePurged(self) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[20]))) (self))
#define mhfolder_CanPrefetch(self) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[21]))) (self))
#define mhfolder_Prefetch(self) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[22]))) (self))
#define mhfolder_GetAllMessages(self) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[23]))) (self))
#define mhfolder_GetMessages(self,include,rock) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[24]))) (self,include,rock))
#define mhfolder_ForEachMessage(self,stopFunc,rock) \
    ((* ((struct mssg * (*)())((self)->header.mhfolder_methods->routines[25]))) (self,stopFunc,rock))
#define mhfolder_GetMessagesSinceMessage(self,message) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[26]))) (self,message))
#define mhfolder_AreMessagesSinceMessage(self,message) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[27]))) (self,message))
#define mhfolder_AreMessagesSince(self,messageNumber) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[28]))) (self,messageNumber))
#define mhfolder_GetMessagesSince(self,messageNumber) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[29]))) (self,messageNumber))
#define mhfolder_AreMessagesSinceReceiveTime(self,time) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[30]))) (self,time))
#define mhfolder_GetMessagesSinceReceiveTime(self,time) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[31]))) (self,time))
#define mhfolder_GetMessageNumberSinceReceiveTime(self,time) \
    ((* ((long (*)())((self)->header.mhfolder_methods->routines[32]))) (self,time))
#define mhfolder_AreMessagesSinceTime(self,time) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[33]))) (self,time))
#define mhfolder_GetMessagesSinceTime(self,time) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[34]))) (self,time))
#define mhfolder_GetMessageNumberSinceTime(self,time) \
    ((* ((long (*)())((self)->header.mhfolder_methods->routines[35]))) (self,time))
#define mhfolder_GetNthMessage(self,num) \
    ((* ((struct mssg * (*)())((self)->header.mhfolder_methods->routines[36]))) (self,num))
#define mhfolder_GetMessageByID(self,id) \
    ((* ((struct mssg * (*)())((self)->header.mhfolder_methods->routines[37]))) (self,id))
#define mhfolder_SetLastReadMessage(self,message) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[38]))) (self,message))
#define mhfolder_GetLastReadMessage(self) \
    ((* ((struct mssg * (*)())((self)->header.mhfolder_methods->routines[39]))) (self))
#define mhfolder_GetLastReadMessageNumber(self) \
    ((* ((long (*)())((self)->header.mhfolder_methods->routines[40]))) (self))
#define mhfolder_SetSubscription(self,subscription) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[41]))) (self,subscription))
#define mhfolder_GetSubscription(self) \
    ((* ((enum msgsubscription (*)())((self)->header.mhfolder_methods->routines[42]))) (self))
#define mhfolder_SetIsPersonal(self,value) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[43]))) (self,value))
#define mhfolder_IsPersonal(self) \
    ((* ((boolean (*)())((self)->header.mhfolder_methods->routines[44]))) (self))
#define mhfolder_SetOrderPriority(self,value) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[45]))) (self,value))
#define mhfolder_GetOrderPriority(self) \
    ((* ((long (*)())((self)->header.mhfolder_methods->routines[46]))) (self))
#define mhfolder_RemoveAll(self) \
    ((* ((boolean /* error */ (*)())((self)->header.mhfolder_methods->routines[47]))) (self))
#define mhfolder_Remove(self) \
    ((* ((boolean /* error */ (*)())((self)->header.mhfolder_methods->routines[48]))) (self))
#define mhfolder_RemoveAllMessages(self) \
    ((* ((boolean /* error */ (*)())((self)->header.mhfolder_methods->routines[49]))) (self))
#define mhfolder_RemoveAllSubFolders(self) \
    ((* ((boolean /* error */ (*)())((self)->header.mhfolder_methods->routines[50]))) (self))
#define mhfolder_AddMessageToCache(self,message) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[51]))) (self,message))
#define mhfolder_RemoveMessageFromCache(self,message) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[52]))) (self,message))
#define mhfolder_GetReplyList(self,messageID) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[53]))) (self,messageID))
#define mhfolder_GetAllReplies(self,messageID) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[54]))) (self,messageID))
#define mhfolder_GetRelatedMessages(self,messageID) \
    ((* ((struct extendedlist * (*)())((self)->header.mhfolder_methods->routines[55]))) (self,messageID))
#define mhfolder_AddToReplyList(self,replyMessageID,messageID) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[56]))) (self,replyMessageID,messageID))
#define mhfolder_RemoveFromReplyList(self,replyMessageID,messageID) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[57]))) (self,replyMessageID,messageID))
#define mhfolder_GetPath(self) \
    ((* ((char * (*)())((self)->header.mhfolder_methods->routines[58]))) (self))
#define mhfolder_SetPath(self,path) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[59]))) (self,path))
#define mhfolder_GetReceiveTimeStamp(self) \
    ((* ((time_t (*)())((self)->header.mhfolder_methods->routines[60]))) (self))
#define mhfolder_SetReceiveTimeStamp(self,time) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[61]))) (self,time))
#define mhfolder_GetLastMessageFileNumber(self) \
    ((* ((long (*)())((self)->header.mhfolder_methods->routines[62]))) (self))
#define mhfolder_SetLastMessageFileNumber(self,number) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[63]))) (self,number))
#define mhfolder_Scan(self,force) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[64]))) (self,force))
#define mhfolder_AddMessageFiles(self,fileList) \
    ((* ((void (*)())((self)->header.mhfolder_methods->routines[65]))) (self,fileList))

#define mhfolder_NewFromObject(self) \
    ((* ((struct mhfolder * (*)())((self)->header.mhfolder_methods->info->procs->routines[0]))) (&mhfolder_classheader, (self)->header.mhfolder_methods->info->versionnumber))
#define mhfolder_New() \
    (*((struct mhfolder * (*)()) (mhfolder_classheader.classprocedures->routines[0])))(&mhfolder_classheader,mhfolder_VERSION)
#define mhfolder_Initialize(self) \
    (*((void (*)()) (mhfolder_classheader.classprocedures->routines[2])))(&mhfolder_classheader,self, mhfolder_VERSION)

#define mhfolder_Destroy(self) \
    ((* ((void (*)()) ((self)->header.mhfolder_methods->info->procs->routines[1]))) (&mhfolder_classheader, self))
#define mhfolder_Finalize(self) \
    (*((void (*)()) (mhfolder_classheader.classprocedures->routines[3])))(&mhfolder_classheader,self)

#define mhfolder_InitializeObject(self) \
    (*((boolean (*)()) (mhfolder_classheader.classprocedures->routines[4])))(&mhfolder_classheader,self)
#define mhfolder_FinalizeObject(self) \
    (*((void (*)()) (mhfolder_classheader.classprocedures->routines[5])))(&mhfolder_classheader,self)
#define mhfolder_Get(database,folderName,pathName) \
    (*((struct mhfolder * (*)()) (mhfolder_classheader.classprocedures->routines[6])))(&mhfolder_classheader,database,folderName,pathName)
#define mhfolder_CreateNewFolder(database,folderName,pathName,protection) \
    (*((struct mhfolder * (*)()) (mhfolder_classheader.classprocedures->routines[7])))(&mhfolder_classheader,database,folderName,pathName,protection)


#endif /* !defined(mhfolder_ROUTINESDEFINED) && !defined(dontDefineRoutinesFor_mhfolder ) && !defined(class_StaticEntriesOnly)*/

