N.AES legt einen Cookie mit dem Namen 'nAES' an. Sein Wert ist ein Zeiger auf eine Struktur (readable), die folgendermaßen aufgebaut ist:
typedef struct { unsigned int version; unsigned int date; unsigned int time; unsigned int flags; CNF_VAR **config; unsigned long unused_2; } N_AESINFO;
version: | Die hexadezimal codierte Versionsnummer von N.AES. Ein Wert von
0x0058 würde Versionsnummer 0.5.8 bedeuten, ein Wert von 0x0107 die
Version 1.0.7
| ||||||||||
date/time: | Das Erstelldatum und die Erstellzeit im TOS-Format, d.h so, wie
es Tgetdate und Tgettime liefern.
Hinweis: Die beim Booten von N.AES ausgegebene Zeit entspricht dem Zeitpunkt der Compilation einer bestimmten Quelldatei von N.AES, die Zeitangabe, die man im Cookie vorfindet, wird mittels eines Patchprogrammes gesetzt und ist die eigentlich relevante Angabe. | ||||||||||
flags: | Bitmaske, deren Bits folgende Bedeutung haben:
| ||||||||||
config: | Zeiger auf eine Liste der CNF-Variablen, die während das
System läuft geändert werden können. Der Speicher ist (global)
alloziert. Das mitgelieferte N_CONTRL.CPX macht gebrauch davon.
/* cnf types */ #define CNF_TEND 0 /* Kennzeichnet das Ende der Liste. */ #define CNF_TBOOL 1 /* true/false. */ #define CNF_TWORD 2 /* 16 bit signed wert. */ #define CNF_TLONG 3 /* weitere können folgen! */ typedef enum {false, true} bool; typedef struct { union cnf_typ { bool b; WORD w; LONG l; } val; /* der Inhalt. */ WORD typ; /* Typ, CNF_T... */ BYTE text[22]; /* Name, wie in N_AES.CNF. */ } CNF_INF; typedef struct { BYTE typ[16]; /* Kategorie, Text aus den Strings * * des Dialog-Baums CNF_TREE der * * N_AESSYS.RSC. * * zB. "Fenster" oder "System". */ CNF_INF *cnf_inf; /* Die Variablen eben. */ } CNF_VAR; Das Ende der Liste wird durch einen NULL-Zeiger signalisiert. | ||||||||||
unused_2: | Freiplatz für spätere N.AES-Versionen
|