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