Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File15.8.1 OLGA-Initialisierung TOS Initialisierung und Terminierung bei OLGA Das OLGA-Protokoll entspricht dem OLE-Protokoll, welches Object Embedding mit OEP (Object Exchange Protocol) und Objekt Linking mit OLGA ermöglicht. Da es sehr sinnvoll sein kann, beide Varianten in einer Applikation zu unterstützen, werde beide Protokolle (d.h. OLGA und OEP) mit denselben Nachrichten evtl. gleichzeitig (!) initialisiert. Die notwendigen Routinen um sich an- bzw. abzumelden lauten: ∙ OLE_EXIT Aus dem Protokoll ausklinken. ∙ OLE_INIT Applikation beim Manager anmelden. ∙ OLE_NEW Manager wurde nachgestartet. ∙ OLGA_INIT Bestätigung für Anmeldung per OLE_INIT. Wie bereits erwähnt erfolgt die Kommunikation zwischen den OLGA- Applikationen über einen Manager, dessen AES-ID für den Nachrichtenaustausch ermittelt werden muss. Das Kochrezept hierzu lautet: ∙ Fall 1: Die Applikation benötigt OLE (d.h. OEP und OLGA) (a) Den Manager per appl_find ("OLEMANGR") suchen. War die Suche erfolgreich, so ist man bereits fertig. (b) Ansonsten sollte man die Environmentvariable OLEMANAGER inspizieren, die einen kompletten Zugriffspfad auf den Manager enthalten kann. Aus diesem Pfad extrahiert man dann zunächst den eigentlichen Programmnamen für appl_find, und geht dann wie unter (a) beschrieben vor. Wenn auch dies nicht zum Erfolg führt, sollte man das durch OLEMANAGER spezifizierte Programm per shel_write nachstarten. (c) Wenn alle bisherigen Anstrengungen nicht zum gewünschten Ergebnis geführt haben, gibt es offenbar keinen OLE-Manager, und man muss sich evtl. mit dem reinen OLGA-Protokoll begnügen. In diesem Fall führt man analog zu (a) ein appl_find ("OLGA ") und ein appl_- find ("OEP_SERV") aus; evtl. müssen nämlich nun zwei Manager unterstützt werden! (d) Sollte auch die letzte Aktion keinen Erfolg gebracht haben, so sollten noch die Environmentvariablen OLGAMANAGER und OEPMANAGER (wie unter (b)) ausgewertet werden. ∙ Fall 2: Die Applikation benötigt nur OLGA In diesem Fall geht man wie unter dem ersten Punkt beschrieben vor, allerdings ändert sich die Reihenfolge der Aktionen zu (c),(d),(a) und (b). Natürlich brauchen OEP_SERV und OEPMANAGER in diesem Fall nicht abgefragt zu werden, da es unwahrscheinlich ist, dass ein OEP-Server das OLGA-Protokoll versteht. Querverweis: OLGA-Protokoll AV-Protokoll Drag&Drop-Protokoll