home *** CD-ROM | disk | FTP | other *** search
-
- XSSINST.PRG V1.4
-
- Copyright (c) 1997-99
- by
-
- RUN! Software
- friendly applications
- Ulli Gruszka & Holger Herzog
-
- Vorgartenstr. 9
- D-66424 Homburg
- www.run-software.de
-
- ===========================================================================
-
- Dieses Programm war ursprünglich ein Bestandteil des Software-Archives des
- Bildschirmschoners BUBBLES. Sofern RUN! Software formlos darüber informiert
- wird, ist seit der Version 1.4 nun auch die gesonderte Verwendung im Rahmen
- anderer Produkte gestattet. Zu diesem Zweck können die Programmdatei
- XSSINST.PRG und der Text XSSINST.TXT dem BUBBLES-Archiv entnommen und dem
- Produkt beigefügt werden. Sofern dieser Text nicht beigefügt wird, ist an
- anderer, geeigneter Stelle ein Hinweis auf RUN! Software anzubringen.
-
- ===========================================================================
-
- XSSINST.PRG installiert eine Software-Schnittstelle zur Kommunikation
- zwischen Programmen, die unter Nichtbeachtung der Fenster-Rechtecklisten auf
- den Bildschirm ausgeben. Hierbei kann es sich z. B. um Bildschirmschoner
- handeln, um Tools für Zeit/Datums-Anzeigen, für Speicher- oder diverse
- Objekt-Informationen, und natürlich auch um Applikationen, die Hilfe-Texte
- zu ihren Funktionen beispielsweise in der Menüzeile anbieten.
-
- Sofern die genannten Programme interessiert sind, bietet ihnen die
- Schnittstelle eine einfache Möglichkeit, ihre Ausgaben mit denen anderer
- Tools zu koordinieren.
-
- Der Bildschirmschoner BUBBLES benutzt die Schnittstelle zusätzlich zur
- Kommunikation mit seinen Modulen. Ohne diese Schnittstelle ist das Modul-
- Schonen nicht möglich.
-
- Zur Installation der Schnittstelle mu₧ XSSINST.PRG im AUTO-Ordner gestartet
- werden. Bitte stellen Sie zunächst sicher, da₧ die Schnittstelle nicht
- bereits von einem anderen Tool in einer Version kleiner als 1.01 installiert
- wurde.
-
- Wird XSSINST.PRG manuell erneut gestartet, so führt es einen Schnittstellen-
- Reset durch, bei dem alle Vektoren initialisiert werden.
-
- ===========================================================================
-
- Hinweise für Programmierer:
- ===========================
-
- XSSINST installiert die XSSI-Schnittstelle in der Version 0x101. Zunächst
- wird geprüft, ob die Schnittstelle bereits vorhanden ist. Ist dies der Fall
- und liegt die Schnittstelle in einer Version >= 1.01 vor, so terminiert
- XSSINST.PRG mit einem entsprechenden Hinweis.
-
- Ist die Schnittstelle in einer Version < 1.01 vorhanden, so wird die
- Installation mit einer Fehlermeldung abgebrochen.
-
- Existiert noch kein Cookie-Jar, so wird dieser erstmals mit Platz für
- insgesamt 16 Cookies angelegt.
-
- Ist im Cookie-Jar kein Platz mehr für einen weiteren Cookie, so wird
- globaler Speicher für den bestehenden Jar und 16 weitere Cookies reserviert,
- der Jar dorthin kopiert und _p_cookies umgesetzt.
-
- Nun wird der XSSI-Cookie angelegt, dessen Wert ein Zeiger auf die folgende
- Struktur ist:
-
- typedef struct {
- LONG id; /* Analog zum Vorgehen beim XBRA-Verfahren
- die ID des Bildschirmschoners -> BBLS */
- WORD version; /* Version des XSSI-Protokolls -> 0x101 */
- WORD save_stat; /* Mitteilung, ob gerade geschont wird. 0=nein */
- WORD prg_stat; /* Status des Programms:
- 0= normal schonen, 1= niemals schonen,
- -1= sofort schonen. */
- LONG vec_stat; /* Bitfeld, in dem der Status der einzelnen
- überwachten Vektoren eingetragen ist.
- Ein gesetztes Bit bedeutet, Vektor aktiv,
- ein nicht gesetztes Bit, Vektor inaktiv. */
- } INFOXSSI;
-
- Die Belegung von vec_stat:
- Bit-Nr. Vektor
- ======= ======
- 0 Tastatur
- 1 Maus
- 2 Joystick (*)
- 3 Midi (*)
- 4 Modem-1 (*)
- 5 Modem-2 (SCC B) (*)
- 6 Serial-1 (*)
- 7 Serial-2 <-> LAN-Port (SCC A) (*)
- 8-14 sonstige Vektoren (*)
- 15 Fensterstapel
-
- (*) Bits werden von BUBBLES ignoriert
-
- Die Bits 0, 1 und 15 werden von BUBBLES nur während des Schonens
- ausgewertet. Module haben also die Möglichkeit, die ansonsten nicht
- konfigurierbaren Weck-Ereignisse (Tastatur, Maus und Änderungen am
- Fenster-Stapel) temporär zu unterdrücken. Somit sind auch interaktive
- Module denkbar, die Benutzereingaben erwarten und auswerten.
-
-
- Unterstützung der Schnittstelle:
- ================================
-
- Jedes Programm, das nicht über die Fenster-Rechtecklisten auf den
- Bildschirm ausgibt, sollte nach dem Cookie suchen. Ist der Cookie
- vorhanden, so mu₧ vor der Ausgabe in save_stat nachsehen werden, ob der
- Bildschirm gerade geschont beziehungsweise anderweitig beschrieben wird
- (<>0). Ist dies der Fall, darf solange keine Ausgabe stattfinden, bis
- save_stat wieder den Wert 0 enthält.
-
- Applikationen können Bildschirmschoner, die das Protokoll kennen, zum
- sofortigen Schonen auffordern, indem sie prg_stat den Wert -1 zuweisen.
- Ein denkbarer Anwendungsfall sind Druckausgaben und längere Such- oder
- Sortieroperationen, deren Ablauf nicht am Bildschirm verfolgt werden
- mu₧. Setzt die Applikation prg_stat wieder auf 0 (darf auf keinen Fall
- vergessen werden!), so beendet der Schoner seine Aktivität.
-
- Im Zweifelsfall kann ein Schnittstellen-Reset durchgeführt werden. Dazu
- ist XSSINST.PRG einfach erneut, diesmal jedoch manuell zu starten.
-
-