Funktionreferenz


DllCallbackRegister

Beschreibung anzeigen in

Erzeugt eine benutzerdefinierte Callback- (Rückruf-)funktion.

DllCallbackRegister ( "function", "return type", "params" )

Parameter

function Name der benutzerdefinierten Funktion, die aufgerufen werden soll.
return type Rückgabetyp und Aufrufkonvention der Funktion (siehe DllCall).
params Durch Semikolons getrennte Liste von Parametern, die an die aufgerufene Funktion weitergereicht werden. Siehe Bemerkungen

Rückgabewert

Erfolg: Das DLL-Handle, welches für DllCallbackGetPtr() und DllCallbackFree() verwendet werden kann.
Fehler: 0 wenn Fehler aufgetreten sind.

Bemerkungen

Verwendet alle DllCall() Typen außer "Struct".
Wenn die Benutzung der Callback-Funktion beendet ist, sollte sie mit DllCallbackFree() freigegeben werden. AutoIt schliesst zwar normalerweise alle Dateien bei Beendigung des Skripts, sicherheitshalber sollte trotzdem DllCallbackFree() aufgerufen werden.

Verwandte Funktionen

DllCall, DllCallbackFree, DllCallbackGetPtr

Beispiel

#include <MsgBoxConstants.au3>

; Erstellt Callback Funktion
Local $hHandle = DllCallbackRegister("_EnumWindowsProc", "int", "hwnd;lparam")

; EnumWindows aufrufen
DllCall("user32.dll", "int", "EnumWindows", "ptr", DllCallbackGetPtr($hHandle), "lparam", 10)

; Löscht Callback-Funktion
DllCallbackFree($hHandle)

; Callback Verfahren
Func _EnumWindowsProc($hWnd, $lParam)
    ; Falls der Titel leer ist oder das Fenster nicht sichtbar ist, so wird die Aufzählung fortgesetzt.
    If WinGetTitle($hWnd) = "" Or BitAND(WinGetState($hWnd), 2) = 0 Then Return 1

    Local $iRes = MsgBox(($MB_OKCANCEL + $MB_SYSTEMMODAL), _
            WinGetTitle($hWnd), "$hWnd=" & $hWnd & @CRLF & _
            "$lParam=" & $lParam & @CRLF & _
            "$hWnd(type)=" & VarGetType($hWnd))

    If $iRes <> $IDOK Then Return 0 ; Wenn Abbrechen geklickt, Rückgabe 0 zum Stoppen der Aufzählung

    Return 1 ; Rückgabe 1 um die Aufzählung fortzusetzten
EndFunc   ;==>_EnumWindowsProc