1Dies ist nur eine blitz-fassung der bisher unterst�tzten Funktionen der 2PKTAPI32.DLL: 3 4Funktionen: 5 6PktApiOpen(struct _minf *); 7 8Muss vor dem Aufruf der API-Funktionen passieren. 9MsgApiOpen() ist dann nicht mehr n�tig ! 10 11 12PktApiClose(); 13 14Schliesst die Api. MsgCloseApi() ist nicht mehr n�tig. 15 16 17HPKT PktOpenPkt(char *name, word mode, word type); 18 19�ffnet ein PKT zum Lesen ODER schreiben. 20 21Mode: PKTMODE_READ 22 PKTMODE_WRITE 23 24Type: PKTTYPE_2 25 26 27PktClosePkt(HPKT hp); 28 29Schliesst ein PKT. 30 31 32PktReadMsg(HPKT hp, XMSG *xmsg, dword textlen, char *text); 33 34Liesst eine Nachricht aus einem PKT was mit PKTMODE_READ ge�ffnet wurde. 35XMSG enth�lt den Nachrichtenheader. Ist text == NULL oder textlen = 0, wird 36der Messagetext nicht gelesen und kann sp�ter eingelesen werden indem xmsg auf 37NULL gesetzt wird. 38Rueckgabewerte: 0 - Die Nachricht wurde komplett eingelesen 39 1 - Die Nachricht wurde nicht komplett eingelesen. 40 Durch einen weiteren Aufruf mit xmsg = NULL, wird der 41 n�chste Teil der Nachricht eingelesen. 42 -1 - Es ist ein Fehler aufgetreten. (EOF oder BAD-Packet) 43 44 45PktReadMsgComplete(HPKT hp, XMSG *xmsg, char **text); 46 47Liesst eine Nachricht komplett ein. Dazu alloziert die API ein genuegend 48grossen Speicherbereich, der mit PktFreeText() freigegeben werden muss. 49PktReadMsgComplete ist nicht in allen F�llen die effizienteste L�sung, aber 50meistens die einfachste ! ;) 51 52 53PktWriteMsg(HPKT hp, XMSG *xmsg, word fAppend, char *text); 54 55Schreibt eine Nachricht in ein mit PKTMODE_WRITE ge�ffnetes Packet. 56fAppend gibt an, ob dem Nachrichtentext noch weiterer Text folgt. Ist 57fAppend = 1, dann kann weiterer Text geschrieben werden indem xmsg = NULL 58gesetzt wird. Die API beginnt eine neue Mail in jedem fall, wenn xmsg != NULL 59ist. 60 61 62sword MAPIENTRY PktCopyPktHdr(HPKT dest, HPKT src) 63 64Kopiert die Informationen des PKT-Headers von SRC nach DEST. Diese Funktion 65ist n�tzlich f�r Pkt-Filter u.�. Tools. 66 67 68sword MAPIENTRY PktCreateCtrlBuf(char *sztext, PKTCTRLBUF *ctrlbuf) 69 70Erzeugt aus einer vorliegenden Mail aus den Seen-By und Path-Lines einen 71Ctrl-Buffer, der die Informationen in bin�rer Form enth�lt. 72Der CtrlBuffer muss mit PktFreeCtrlBuf() wieder frei gegeben werden. 73 74sword MAPIENTRY PktFreeCtrlBuf(PKTCTRLBUF *ctrl) 75 76Gibt den Speicher frei den ein Ctrl-Buffer belegt. 77 78 79char * MAPIENTRY PktConvertCtrlToText(PKTCTRLBUF *ctrl) 80 81Erzeugt aus einem Ctrl-Buffer einen lesbaren String laut FTS004. Der String hat 82die Form: 83 84SEEN-BY: <....> 85\001PATH: <....> 86 87ggf. werden mehrere SEEn-BY: und PATH: Zeilen eingef�gt. Keine Zeile ist 88l�nger als 80 Zeichen. Der String kann so an eine Mail geh�ngt werden. 89 90 91sword MAPIENTRY PktCtrlAddSeenby(PKTCTRLBUF *ctrl, NETADDR *addr) 92 93F�gt eine Adresse in die Liste der Seen-By Adressen hinzu, falls 94sie nicht vorhanden ist. 95 96Return: 0 wenn die Adresse hinzugef�gt wurde 97 1 die Adresse war bereits in den Seen-By's vorhanden 98 99 100sword MAPIENTRY PktCtrlAddPath(PKTCTRLBUF *ctrl, NETADDR *addr) 101 102F�gt eine Adresse in die Path-Lines hinzu. 103 104 105sword MAPIENTRY PktCtrlChkPath(PKTCTRLBUF *ctrl, NETADDR *addr) 106 107Pr�ft ob eine Adresse in den Path-Lines vorhanden ist. 108 109Return: 0 wenn sie nicht vorhanden ist 110 1 wenn sie vorhanden ist 111 112 113Supportet Packet-Types: 114 115Packet 2 (StoneAge) (FTS001) 116Packet 2+ (FSC038/045) 117Packet 2.2 (FSC048) 118 119Planned Packet-Types: 120Packet 3 (FSC077) 121 122 123 124