1 /* 2 PKTAPI Source, Version 1.00 3 4 (c) & (p) 1999-2000 by Oliver 'Attila' Grimm 5 6 Alle Rechte vorbehalten. 7 */ 8 9 10 #ifndef __PKTAPI_H 11 #define __PKTAPI_H 12 13 #include <prog.h> 14 #include <msgapi.h> 15 16 #define PKTAPI 17 #define PKTAPI_VERSION 0 18 #define PKTAPI_SUBVERSION 0 19 20 #define PERR_BADH 0 21 #define PERR_BADM 1 22 #define PERR_BADSIGN 2 23 #define PERR_BADMSG 3 24 #define PERR_EOF 3 25 #define PERR_NOMEM 4 26 27 struct _pktapi; 28 29 typedef struct _pktapi OS2FAR *HPKT; 30 31 32 /* mode - PktOpenPkt() */ 33 34 #define PKTMODE_READ 1 35 #define PKTMODE_WRITE 2 36 37 #define PKTTYPE_UNKNOWN 0 38 #define PKTTYPE_2 0x01 39 #define PKTTYPE_2_PLUS 0x03 40 #define PKTTYPE_2_2 0x05 41 #define PKTTYPE_3 0x08 42 43 struct _pktapi 44 { 45 #define PKTAPI_ID 0x63630232 46 47 dword id; 48 49 word len; 50 word type; 51 word mode; 52 53 NETADDR orig; 54 NETADDR dest; 55 56 byte password[8]; 57 58 struct _stamp date_written; 59 60 word prod_code; 61 62 word capability; 63 64 struct _papifuncs 65 { 66 sword (*MAPIENTRY ClosePkt)(HPKT ph); 67 sword (*MAPIENTRY ReadMsg)(HPKT ph, XMSG *xmsg, dword len, char *textptr); 68 sword (*MAPIENTRY WriteMsg)(HPKT ph, XMSG *xmsg, word fAppend, char *textptr); 69 sword (*MAPIENTRY ReadMsgComplete)(HPKT ph, XMSG *xmsg, char **textptr); 70 71 } OS2FAR *api; 72 73 void *apidata; 74 75 sword sem; 76 }; 77 78 typedef struct _ADDRBUF 79 { 80 dword num_addr; 81 NETADDR *addr; 82 } ADDRBUF; 83 84 typedef struct _PKTCTRLBUF 85 { 86 ADDRBUF seenby; 87 ADDRBUF path; 88 } PKTCTRLBUF; 89 90 #ifdef OS_2 /* Imported .DLL variables are not in DGROUP */ 91 extern word far _stdc pktapierr; 92 #else 93 extern word _stdc pktapierr; 94 #endif 95 96 97 #define PktClosePkt(ph) (*(ph)->api->ClosePkt)(ph) 98 #define PktReadMsg(ph, x, l, t) (*(ph)->api->ReadMsg)(ph, x, l, t) 99 #define PktWriteMsg(ph, x, f, t) (*(ph)->api->WriteMsg)(ph, x, f, t) 100 #define PktReadMsgComplete(ph, x, t) (*(ph)->api->ReadMsgComplete)(ph, x, t) 101 102 #define PktFreeText(t) free(t) 103 104 cpp_begin() 105 106 sword MAPIENTRY PktOpenApi(struct _minf OS2FAR *minf); 107 sword MAPIENTRY PktCloseApi(void); 108 109 HPKT MAPIENTRY PktOpenPkt(byte far *name, word mode, word type); 110 sword MAPIENTRY PktInvalidPh(HPKT hp); 111 112 sword MAPIENTRY PktCopyPktHdr(HPKT dest, HPKT src); 113 114 sword MAPIENTRY PktCreateCtrlBuf(char *sztext, PKTCTRLBUF *ctrlbuf); 115 sword MAPIENTRY PktFreeCtrlBuf(PKTCTRLBUF *ctrl); 116 117 char * MAPIENTRY PktConvertCtrlToText(PKTCTRLBUF *ctrl); 118 119 sword MAPIENTRY PktCtrlAddSeenby(PKTCTRLBUF *ctrl, NETADDR *addr); 120 sword MAPIENTRY PktCtrlAddPath(PKTCTRLBUF *ctrl, NETADDR *addr); 121 sword MAPIENTRY PktCtrlChkPath(PKTCTRLBUF *ctrl, NETADDR *addr); 122 123 cpp_end() 124 125 #endif 126