HomeProtokolleView protocolXAcc

15.12 Virtual-Screen-Protokoll

Ein echtes Problem bei Benutzung einer Großbildschirm-Emulation ist, daß Dialog- und Alertboxen oft außerhalb des sichtbaren Bildschirmausschnitts erscheinen. Daran können auch Programme wie BigScreen nichts ändern. Als Lösung bietet sich eine Möglichkeit an, mit der man sich darüber informieren kann, welcher Teil des Bildschirms zur Zeit sichtbar ist.

Dazu wird der Cookie-Jar benutzt, der genau für solche Zwecke vorgesehen ist. In unserem Fall heißt der Cookie VSCR, was für Virtual-Screen steht. Er zeigt auf eine Struktur, die insbesondere Informationen über den dargestellten Bildschirmausschnitt enthält. Anwendungsprogramme können diese Information beispielsweise dazu benutzen, um Dialogboxen auf dem tatsächlich sichtbaren Teil des Bildschirms zu zentrieren. Die Struktur ist wie folgt definiert:

typedef struct
{
  int32_t cookie;   /* muß 'VSCR' sein                       */
  int32_t product;  /* Analog zur XBRA-Kennung               */
  int16_t version;  /* Version des VSCR-Protokolls           */
  int16_t x,y,w,h;  /* Sichtbarer Ausschnitt des Bildschirms */
} INFOVSCR;

Zur Beschreibung der einzelnen Komponenten: cookie muß den Wert $56534352 ('VSCR') haben. Sinn der Sache ist, daß ein Großbildschirm-Simulator die Informationsstruktur auf 'ungültig' setzen kann, ohne erst den Cookie entfernen zu müssen. BigScreen beispielsweise kann je nach gewählter Auflösung aktiv oder inaktiv sein und benutzt diesen Mechanismus, um beim Auflösungswechsel die Struktur ein- oder auszuschalten.

In product kann ein Großbildschirm-Simulator eine eigene Kennung eintragen. Die vier Bytes sollten genauso wie bei einer XBRA-Kennung aus vier druckbaren Zeichen (ASCII-Code 32 bis 126) bestehen.

Programm Kennung
BigScreen BIGS
LaceScan LEmu
NOVA VDI IMNE

Die Komponente version kennzeichnet die Version des VSCR-Protokolls und soll es erlauben, später einmal die Struktur um neue Felder zu ergänzen. x, y, w und h schließlich geben Position, Breite und Höhe des sichtbaren Ausschnitts an. Das Protokoll ist absichtlich so ausgelegt, daß es auch von anderen Simulatoren benutzt und bei Bedarf erweitert werden kann.


HomeProtokolleView protocolXAcc