HINWEIS
Vergessen Sie nicht, den Puffer vorher zu initialisieren (Space)!
In diesem Zusammenhang sind auch die beiden Praxisbeispiele
»Ein anderes Programm starten«
»Die Systemkonfiguration ermitteln«
ab Seite 873 interessant.
Verwenden von As Any
Für die Übergabe verschiedener Datentypen an ein- und denselben Parameter sollten Sie den Datentyp Any
verwenden. Ein Beispiel zeigt, was damit gemeint ist. Die API-Funktion SendMessage erwartet in Abhängig-
keit des dritten Parameters (wParam) entweder einen Zeiger auf eine Stringvariable oder einen Zeiger auf
einen Long-Wert. Mit folgender Deklaration sind beide Fälle möglich:
Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd&, ByVal wMsg&, ByVal wParam%, lParam As Any) As Long
Welche weiteren Varianten es gibt, die Funktion SendMessage im Programm aufzurufen, zeigt folgende
Tabelle:
Parameter Definition
Null-Pointer SendMessage( ..., ByVal 0&)
Null-Wert SendMessage( ..., 0&)
Stringkonstante SendMessage( ..., ByVal "Stringwert")
Long-Wert SendMessage( ..., ByVal l&)
Pointer auf Variable SendMessage( ..., variable)
Tabelle 13.1 Varianten zum Aufruf von SendMessage
Über die Verwendung von Any kann man geteilter Meinung sein. Der Profi wird die Vorteile zu schätzen
wissen, dem Einsteiger sei empfohlen, mit Alias verschiedene Varianten der Funktion einzuführen, da die
Gefahr besteht, dass man zum Beispiel das ByVal vor einem Null-Pointer vergisst (derartige Fehler sind
schwer zu finden, ist doch die Deklaration zunächst korrekt).
Übergabe von Arrays
Sollen statt einzelner Variablen ganze Arrays übergeben werden, müssen Sie einige Besonderheiten be-
achten:
Deklarieren Sie kein Array, sondern eine einfache Variable des Arraytyps.
Übergeben Sie das erste Feldelement, nicht das Array.
835
API- und DLL-Einbindung

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.