Topic : ATOS-Magazin März/April 1996 Author : Das ATOS-Team Version : 2/96 (2.4.1996) Subject : ATOS Diskettenmagazine Nodes : 138 Index Size : 3380 HCP-Version : 3 Compiled on : Atari @charset : atarist @lang : @default : @help : ATOS Hilfe @options : -i -s +zz -t2 @width : 75 View Ref-FileOLGA 4/7 Das ATOS-Magazin 2/96 Initialisierung Das OLGA-Protokoll besteht im wesentlichen aus der Kommunikation mit dem OLGA-Manager. Dazu muß man die AES-ID des Managers kennen, die wie folgt ermittelt wird: a) Wenn appl_find("OLGA ") erfolgreich ist, hat man den Manager schon gefunden. b) Ansonsten wird nun die Environmentvariable OLGAMANAGER mit getenv() ausgewertet. Dort kann ein kompletter Zugriffspfad stehen! Zunächst extrahiert man aus diesem Pfad einen Programmnamen für appl_find() und geht entsprechend wie unter a) vor. Konnte auch dieser Name nicht gefunden werden, startet man das Programm, das von OLGAMANAGER bezeichnet wird, mit shel_write() nach. c) Wenn das bisherige nicht zum Erfolg geführt hat, gibt es offen- sichtlich keinen OLGA-Manager, man muß nun nach einem OLE-Manager suchen. Dazu macht man - analog zu a) - ein appl_find("OLEMANGR"). d) Konnte auch dieses Programm nicht gefunden werden, wertet man nun noch die Environmentvariable OLEMANAGER wie unter b) aus. Hat man einen Manager gefunden, schickt man ihm mit appl_write() fol- gende Message: OLE_INIT (App -> Manager) msg[0] $4950 (18768) msg[1] apID msg[2] 0 msg[3] Applikation ist Server (1), Client (2) oder beides (3) msg[4] 0 msg[5] 0 msg[6] 0 msg[7] maschinenlesbarer XAcc-Programmtyp (oder 0): "WP" ($5750) = Textverarbeitung "DP" ($4450) = DTP "ED" ($4544) = Texteditor "DB" ($4442) = Datenbank "SS" ($5353) = Tabellenkalkulation "RG" ($5247) = Rastergrafikprogramm "VG" ($5647) = Vektorgrafikprogramm "GG" ($4747) = allgemeines Grafikprogramm "MU" ($4d55) = Musikanwendung "CD" ($4344) = CAD "DC" ($4443) = Datenkommunikation "DT" ($4454) = Desktop "PE" ($5045) = Programmierumgebung Der OLGA-Manager verschickt als Bestätigung die OLGA_INIT-Message. Applikationen sollten den OLGA-Mechanismus erst verwenden, nach- dem sie folgende Message erhalten haben und diese keinen Fehler sig- nalisiert hat. Für Applikationen, die während der Startphase Doku- mente öffnen, kann es allerdings sinnvoll sein, auch ohne empfangene OLGA_INIT-Message die nötigen OLGA-Messages zu verschicken, nur sollten bei einer solchen Applikation keine Fehlfunktionen auftreten, falls sich der Manager doch nicht meldet. OLGA_INIT (Manager -> App) msg[0] $1236 (4662) msg[1] manID msg[2] 0 msg[3] reserviert msg[4] reserviert msg[5] 0 msg[6] 0 msg[7] 0=Fehler, sonst: OLGA-Manager korrekt initialisiert Beim Programmende wird dem Manager folgende Message geschickt. Wenn sich ein OLGA-Client abmeldet, werden automatisch alle zugehörigen Links und Documents gelöscht. Außerdem verschickt der Manager diese Nachricht an alle angemeldeten Applikationen, wenn er vorzeitig beendet wird. OLE_EXIT (App -> Manager, Manager -> App) msg[0] $4951 (18769) msg[1] apID bzw. manID msg[2] 0 msg[3] 0 msg[4] 0 msg[5] 0 msg[6] 0 msg[7] 0 Wenn ein Manager nachgestartet wird, verschickt er an alle erreich- baren Applikationen folgende Message: OLE_NEW (Manager -> App) msg[0] $4952 (18770) msg[1] manID msg[2] 0 msg[3] reserviert msg[4] reserviert msg[5] reserviert msg[6] reserviert msg[7] reserviert Eine OLGA-fähige Applikation muß daraufhin manID als AES-ID des OLGA- Managers übernehmen und diesem Manager eine OLE_INIT-Message senden. Bei der Programmierung muß man beachten, daß OLE_NEW, OLE_INIT und OLGA_INIT beliebig oft verschickt werden können, da sie auch zur Aktualisierung der Manager- bzw. Applikationsdaten benutzt werden. Hier geht es weiter.