In letzter Zeit hat sich bei einigen WYSIWYG-Programmen das Problem ergeben, daß der Benutzer zur Laufzeit Druckertreiber ändern konnte (z.B. mit dem NVDI-Treiber-CPX), die Applikation davon jedoch nichts mitbekam und dem Anwender teilweise falsche Darstellungen bot. Um ein Programm von Änderungen an einem Druckertreiber (bzw. allgemeiner Gerätetreiber: Plotter, Metafile etc.) zu unterrichten, wurde die Nachricht PRN_CHANGED wie folgt definiert:
msg[0] = PRN_CHANGED $0052 (82) msg[1] = apID msg[2] = 0 msg[3] = Gerätenummer msg[4] = 0=neu, 1=geändert, 2=entfernt msg[5] = 0 msg[6] = 0 msg[7] = 0Die Message PRN_CHANGED wird vom GDOS-Konfigurationsprogramm bzw. -CPX an alle erreichbaren Applikationen verschickt (per Broadcast unter MagiC bzw. MultiTOS, an AES-ID 0 unter SingleTOS).
Wurde ein Gerätetreiber neu installiert, muß die Applikation im Zweifel nicht sehr aufwendig reagieren, da der Anwender diesen Treiber bisher nicht benutzen konnte.
Nützlich ist dieser Opcode (msg[4]=0) vor allem für ein Update einer evtl. im Programm vorhandenen Treiberliste.
Wenn ein Gerätetreiber dagegen entfernt wurde, muß die Applikation den Benutzer entsprechend darauf hinweisen (und natürlich evtl. wieder irgendwelche Listen updaten). Mehr kann dabei eigentlich nicht getan werden.
Am interessantesten ist Opcode 1, wenn also ein Gerätetreiber geändert wurde. Dies ist z.B. dann der Fall, wenn man die Druckauflösung oder das Papierformat (bzw. Hoch-/Querdruck) neu einstellt. Beim Empfang dieses Opcodes kann die Applikation die entsprechende Workstation neu öffnen, um die aktuellen Einstellungen auszulesen.
Man sollte übrigens immer die Gerätenummer auswerten, denn wenn z.B. ein Image-Treiber geändert wird, die Applikation aber nur Plotter unterstützt, kann ihr eine solche Änderung egal sein.
PRN_CHANGED wird z.Z. nur vom NVDI4-Treiber-CPX verschickt, diverse Applikationen werden daran angepaßt.
Hier geht es weiter.