Das Document-History-(DHST-) Protokoll dient dazu, eine globale Liste der zuletzt benutzten Dokumente zu verwalten (ähnlich dem Abruf-Menü in z.B. Texel) und an einer einheitlichen Stelle (hier: Start-Me-Up- Menü) schnell abrufbar zu machen.
Dazu ein kurzer Auszug der Struktur in C-Notation:
#define DHST_ADD 0xdadd #define DHST_ACK 0xdade typedef struct { int8_t *appname, *apppath, *docname, *docpath; } DHSTINFO;
Jedesmal wenn der Anwender eine Datei öffnet, sucht die Applikation nach dem Cookie 'DHST'. Ist dieser vorhanden, gibt das untere Word des Cookie-Wertes die AES-ID des DHST-Servers an, an den die Nachricht DHST_ADD geschickt wird. Die Applikation legt also im globalen Spei- cher eine DHSTINFO-Struktur an und füllt sie entsprechend auf:
appname: Name der Applikation (z.B. "Texel") apppath: absoluter Pfad der Applikation (z.B. "c:\program\texel.app") docname: Name des Dokuments (z.B. "balmer.txl") docpath: absoluter Pfad des Dokuments (z.B. "d:\daten\balmer.txl")
Dann schickt sie dem DHST-Server folgende Nachricht:
msg[0] DHST_ADD (0xdadd) msg[1] ap_id der Anwendung msg[2] 0 msg[3] und msg[4] Pointer auf DHSTINFO-Struktur msg[5] 0 msg[6] 0 msg[7] 0
Als Antwort erhält die Applikation folgende Message, mit der sie den globalen Speicher wieder freigeben kann:
msg[0] DHST_ACK (0xdade) msg[1] ap_id des DHST-Servers msg[2] 0 msg[3] and msg[4] Pointer auf DHSTINFO-Struktur (wie bei DHST_ADD übergeben) msg[5] 0 msg[6] 0 msg[7] 0=Fehler, sonst: OK
In der ST-Computer 10/98 findet sich ein ausführlicher Artikel zu diesem Thema.