1 /* umapisdm.h - *.MSG messagebase */ 2 3 #ifndef __UMAPISDM_H__ 4 #define __UMAPISDM_H__ 5 6 typedef struct _tSdmMsgHdr 7 { 8 char fromUserName[37]; // 36+1: ensure there really IS a trailing 0 9 char toUserName[37]; 10 char subject[73]; 11 char dateTime[21]; 12 UINT16 timesRead; 13 UINT16 destNode; 14 UINT16 origNode; 15 UINT16 cost; 16 UINT16 origNet; 17 UINT16 destNet; 18 UINT16 destZone; 19 UINT16 origZone; 20 UINT16 destPoint; 21 UINT16 origPoint; 22 UINT16 replyTo; 23 UINT16 attrib; 24 UINT16 nextReply; 25 } tSdmMsgHdr; 26 27 typedef struct _tSdmArea 28 { 29 int dummy; 30 31 } tSdmArea; 32 33 typedef struct _tSdmMsg 34 { 35 int dummy; 36 37 } tSdmMsg; 38 39 #define cSdmMsgFlagPriv 0x0001 40 #define cSdmMsgFlagCrash 0x0002 41 #define cSdmMsgFlagRcvd 0x0004 42 #define cSdmMsgFlagSent 0x0008 43 #define cSdmMsgFlagAttach 0x0010 44 #define cSdmMsgFlagIntrans 0x0020 45 #define cSdmMsgFlagOrphan 0x0040 46 #define cSdmMsgFlagKillSent 0x0080 47 #define cSdmMsgFlagLocal 0x0100 48 #define cSdmMsgFlagHold 0x0200 49 #define cSdmMsgFlagUnused 0x0400 50 #define cSdmMsgFlagFReq 0x0800 51 #define cSdmMsgFlagRcptReq 0x1000 52 #define cSdmMsgFlagRcpt 0x2000 53 #define cSdmMsgFlagAuditReq 0x4000 54 #define cSdmMsgFlagUpdReq 0x8000 55 56 tUmArea *sdmAreaOpen(char *areaName); 57 void sdmAreaClose(tUmArea *area); 58 tUmMsg *sdmAreaEmptyMsg(tUmArea *area); 59 tUmMsgHdr *sdmAreaReadMsgHdr(tUmArea *area, tUmMsgNr msgNr); 60 tUmMsg *sdmAreaReadMsg(tUmArea *area, tUmMsgNr msgNr); 61 CHAR sdmAreaChangeMsgHdr(tUmArea *area, tUmMsgNr msgNr, tUmMsgHdr *msgHdr); 62 CHAR sdmAreaChangeMsg(tUmArea *area, tUmMsgNr msgNr, tUmMsg *msg); 63 tUmMsgNr sdmAreaAppendMsg(tUmArea *area, tUmMsg *msg); 64 CHAR sdmAreaDeleteMsg(tUmArea *area, tUmMsgNr msgNr); 65 CHAR sdmAreaLock(tUmArea *area); 66 CHAR sdmAreaUnlock(tUmArea *area); 67 CHAR sdmAreaLockMsg(tUmArea *area, tUmMsgNr msgNr); 68 CHAR sdmAreaUnlockMsg(tUmArea *area, tUmMsgNr msgNr); 69 tUmMsgNr sdmAreaGetLastread(tUmArea *area, tUmUserNr userNr); 70 CHAR sdmAreaSetLastread(tUmArea *area, tUmUserNr userNr, tUmMsgNr msgNr); 71 tUmMsgNr sdmAreaNumMsgs(tUmArea *area); 72 tUmMsgNr *sdmAreaMsgList(tUmArea *area, tUmMsgNr *numMsgs); // allocates needed memory 73 74 void sdmMsgHdrDispose(tUmMsgHdr *msgHdr); 75 void sdmMsgDispose(tUmMsg *msg); 76 77 #endif 78 79