Auch die application.library muss zuerst geöffnet werden und dann muss das Interface ermittelt werden. Dabei weicht die application.library vom bisherigen Schema ab. Sie stellt zwei Interfaces bereit, wobei das eine mit application bezeichnet wird und das andere mit prefsobjects (Mehrzahl). Ein main-Interface gibt es dagegen nicht (Listing 1). Damit die eigene Applikation überhaupt im System bekannt ist, muss sie zuerst dort registriert werden. Diese Aufgabe übernimmt die Funktion RegisterApplicationA(). Das Gegenstück dazu heißt UnregisterApplicationA(). Diese Funktion sorgt beim Beenden des Programms für die Abmeldung vom System. Wer jetzt neugierig ist und wissen möchte, welche anderen Applikationen sich bereits im System angemeldet haben, findet in GetApplicationList() die passenden Daten. Die Liste geben Sie mit FreeApplicationList() wieder frei. Die Liste selber ist eine einfache MinList mit Einträgen vom Typ struct ApplicationNode *. In den Nodes ist die interne Verwaltungs-ID sowie der Registrationsname zu finden (s. Listing 3). Der Name setzt sich dabei aus <Application>[_counter][.URLIdentifier] zusammen. Somit wird aus dem Programm »TestApp« mit der Domain »myprog.de« die interne Programmbezeichnung TestApp.myprog.de Das zweite gestartete Programm würde TestApp_1.myprog.de lauten. Das geht analog so weiter, falls ein Mehrfachstart zugelassen wird. Die Domainangabe ist dazu gedacht, ggf. gleichlautende Programmnamen wieder eindeutig zu machen. Die Domain hat bisher nichts mit den bekannten Internet-Domains gemeinsam und kann frei vergeben werden. Sie ist nicht Pflicht und kann daher auch ganz weggelassen werden. Nach dem Registrieren muss noch über GetApplicationAttrs() und dem Tag APPATTR_Port der Nachrichtenport erfragt werden. Dieser ist regelmäßig abzufragen, ob Nachrichten eingetroffen sind (Wait, WaitPort). Die dort vorliegenden Nachrichten sind vom Typ struct ApplicationMsg * und im Feld type´ APPLIBMT_xxx Defines enthalten. Eine Übersicht der möglichen Nachrichten finden Sie im Kasten »Nachrichtentypen«. Die
erste Anwendung Danach wird die Anwendung registriert und wartet in der Nachrichtenschleife auf eintreffende Nachrichten. Diese werden ausgegeben und ggf. auch gleich behandelt. Mit der Tastenkombination »CTRL-C« lässt sich das Programm
beenden, wobei es sich zuerst noch beim System abmeldet bzw. deregistriert.
Das Programm lässt sich leicht erweitern und so auch die unterschiedlichen
Tags und deren Bedeutung erforschen. Starten Sie das Programm auch mehrfach
und kontrollieren dabei die registrierten Namen mit dem oben vorgestellten
Programm »printapps.c«. Auch der Praxisteil im nächsten
Heft wird sich der application.library widmen. Dann geht es um das zweite
Interface in der Application-Bibliothek. Mit diesem Interface lassen sich
Prefs-Dateien einfach erzeugen und die Vorgaben später nutzen. lb
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Download: | enthält: |
---|---|
DemoApp.c : Die erste Anwendung printapps.c : Registrierte Applicationen anzeigen OeffneInterface.c : Interface öffnen |
|
os4prog-6-application-src.lha, 62.040 bytes |
Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster
AMIGA schicken.
Zuletzt aktualisiert am 18. Februar 2005, Michael Christoph.