•  Back 
  •  OLGA-Protokoll 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
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