3.3.1 IMS kompatibles Programm entwickeln

Um in einer Anwendung das IMS System benützen zu können, sind folgende Schritte nötig:

  1. Einen neuen Anwendungstyp generieren.
  2. Die Nachrichtendefinitionsdatei schreiben.
  3. Das Programm implementieren und die IMS-Funktionen zur Darstellung der Nachrichten verwenden.
  4. Die Nachrichtendatei und die IMS-API DLL's beim Anwendungssetup installieren.

Um die Schritte konkret zu demonstrieren, wird ein 'Hello World' Programm mit dem IMS realisiert. Das Programm zeigt beim Start einfach die Nachricht 'Hello World':

Schritt 1: Anwendungstyp generieren.

Das SDK enthält dazu das Utility 'imgenapptype.exe'. Das Programm wird über die Konsole aufgerufen und liefert den neuen Anwendungstyp. In diesem konkreten Beispiel ist der Anwendungstyp 'ac2bf570-2c16-11d1-83b8-204c4f4f5020'

WICHTIG: Werden die Nachrichten eines bereits ausgelieferten Programms verändert, muß auch ein neuer Anwendungstyp generiert werden! Damit wird die Konsistenz einer bestehenden Installation gewährleistet.

 

Schritt 2: Eine Nachrichtendefinitionsdatei schreiben

Die Nachrichtendefinitionsdatei wird mit einem ASCII-Editor geschrieben und anschließend mit dem Compiler 'imcompiler.exe' übersetzt. Der vorher generierte Anwendungstyp muß in diese Datei eingesetzt werden. In diesem Beispiel wird nur eine Nachricht benötigt: 'Hello World!'. Wir stellen diese Nachricht in Englisch und Deutsch zur Verfügung.

IMDF "HelloWorld" Version 100
AppType "ac2bf570-2c16-11d1-83b8-204c4f4f5020".

Begin

Message 1 Detail 0
Class INFORMATION
C_ID "IMS_MSG_HELLOWORLD"
GERMAN.HEADING "Eine Nachricht vom IMS"
GERMAN.TEXT "Hello World!"
GERMAN.AUDIO_WAV "helloworld_german.wav"
ENGLISH.HEADING "A message from IMS"
ENGLISH.TEXT "Hello World!"
ENGLISH.AUDIO_WAV "helloworld_english.wav"

End.

Dieser Text wird in einer Datei namens 'helloworld.ims' gespeichert. Die Audiodateien 'helloworld_german.wav' und 'helloworld_english.wav' müssen sich im selben Verzeichnis befinden. Der Compiler wird anschließend mit folgender Kommandozeile gestartet:

imcompiler helloworld.ims

Der Compiler erzeugt eine Datei 'helloworld.imf' mit den Nachrichten und eine Datei 'HelloWorld.h' mit den nötigen Definitionen für ein C-Programm.

 

Schritt 3: Das Programm implementieren

In diesem Beispiel wird ein einfaches Win32-Konsolen Programm verwendet. Der folgende Quelltext ruft die 'Hello World' Nachricht auf.

#include <windows.h>
#include <ims.h>
#include <HelloWorld.h>

void main()
{
   ::IMShowMessage( NULL, pszIMAppType, NULL, IMS_MSG_HELLOWORLD, NULL );
}

Die einfachste Möglichkeit ist die 'IMShowMessage'-Funktion. 'pszIMAppType' wird in der 'HelloWorld.h' Datei deklariert, die vom IMS Compiler erzeugt wird. 'IMS_MSG_HELLOWORLD' ist auch in dieser Header-Datei definiert. Ist mehr Flexibilität gewünscht, können auch die Funktionen 'IMShowMessageEx' und 'IMProcessMessage' zur Nachrichtenanzeige verwendet werden.

Das IMS-SDK enthält nicht die erforderlichen Programme, um Windows Programme zu entwickeln. Dazu sind z.B. Produkte von Microsoft (Visual C++) oder Borland (Borland C++ oder Borland C++ Builder) zu verwenden.

 

Schritt 4: Nachrichten und IMS API-DLL's installieren

Bevor die Anwendung auf der Zielplattform den IMS benutzen kann, muß sie sich und die Nachrichten registrieren. Dazu ist Funktion 'IMInstallApplication' vorhanden. Diese Funktion wird normalerweise vom Installationsprogramm aufgerufen.

In diesem Beispiel müßten die Nachrichten mit folgendem Aufruf installiert werden:

::IMInstallApplication( NULL, pszIMAppType, "Hello World", NULL, "helloworld.imf" );

'pszIMAppType' ist wieder in der Datei 'HelloWorld.h' definiert. 'Hello World' ist der Anwendungsname. Der Name der Nachrichtendatei wird ebenfalls übergeben. Die Funktion liest die Nachrichten aus dieser Datei und installiert diese in der Datenbank.

Damit die Anwendung die API-Befehle verwenden kann, benötigt diese folgende sechs DLL's des IMS-Systems (werden mit dem SDK installiert):