TModule

TModule vereint die Gemeinsamkeiten von Bibliotheks- und Anwendungsmodulen und ist von TStreamableBase abgeleitet.
TModule ist ferner für das Laden und die Freigabe externer Bibliotheken (DLLs) verantwortlich. Normalerweise reicht die von TModule bereitgestellte Funktionalität vollkommen aus. Deshalb wird wohl nur in Spezialfällen eine neue Klasse von TModule abgeleitet.

Eigene Anwendungsklassen werden von der Klasse TApplication abgeleitet, welche die Funktionalität von TModule erbt.

Konstruktoren

TModule(const char far* name, bool shouldLoad = true, bool mustLoad = true);
Konstruiert ein TModule-Objekt als Alias für die in name angegebene DLL. Ist shouldLoad true, wird die DLL automatisch über die Windowsfunktion LoadLibrary geladen und freigeben. Ist shouldLoad false, muß das Instanz-Handle nachträglich durch Verwendung von InitModule gesetzt werden. Ist mustLoad true, wird bei eine Exception (Unable to load library) ausgelöst, wenn das Module nicht geladen werden konnte.

TModule(const char far* name, THandle handle);
Erstellt ein TModule-Objekt als Alias für eine bereits geladene DLL oder ein bereits geladenes Programm über das in handle angegebene Instanz-Handle. Die Angabe name ist optional und kann 0 sein. Da das private Datenelement ShouldDelete auf false gesetzt wird, wird das Module nicht automatisch freigegeben!

TModule(const char far* name, THandle handle, const char far* cmdLine);
Erstellt ein TModule-Objekt für eine OWL-DLL oder OWL-Programm. handle und cmdLine werden durch einen Aufruf von InitModule initialisiert. Das private Datenelement ShouldFree wird auf false gesetzt, d.h. das Module wird nicht automatisch freigegeben!

Destruktor

virtual ~TModule();
Entfernt das Objekt (sofern ShouldDelete true ist und ein gültiges Handle vorliegt) und löscht die Datenelemente Name und lpCmdLine.

wichtige Elementfunktionen

void InitModule(THandle handle, const char far* cmdLine);
Initialisiert das TModule Objekt. Eine nachträgliche Initialisierung ist notwendig, wenn dem shouldLoad Parameter des ersten oben gezeigten Konstruktors false übergeben wurde. Wenn das Modul nicht erzeugt werden kann, wird eine TXInvalidModule Exception ausgelöst.

bool IsLoaded() const;
Gibt true zurück, wenn ein gültiges Instanzhandle vorliegt, ansonsten eben false.

HACCEL LoadAccelerators(TResId id) const;
Lädt die in id bezeichnete Tastenkürzeltabelle. Konnte die Tastenkürzeltabelle nicht gefunden werden, wird 0 zurückgeliefert.

HBITMAP LoadBitmap(TResId id) const;
Lädt die in id angegebene Bitmap-Ressource. Konnte die Bitmap-Ressource nicht gefunden werden, wird 0 zurückgeliefert.

HCURSOR LoadCursor(TResId id) const;
Lädt die in id angegebene Cursor-Ressource. Konnte die Cursor-Ressource nicht gefunden werden, wird 0 zurückgeliefert.

HICON LoadIcon(const char far* name) const;
Lädt das durch name bezeichnete Symbol. name kann auch auf ein von Windows vordefiniertes IDI_XXXX Symbol verweisen. Konnte das Symbol nicht gefunden werden, wird 0 zurückgeliefert.

HMENU LoadMenu(TResId id) const;
Lädt die in id bezeichnete Menüressource. Konnte die Menüressource nicht gefunden werden, wird 0 zurückgeliefert.

Übersicht    

Stand: 26.07.99 18:33:43
© 1998,1999 by Hans Joachim Kiefer, hajokiefer@handshake.de