Funktionsreferenz


DllCallbackRegister

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: Gibt das DLL-Handle zurück, welches für DllCallbackGetPtr und DllCallbackFree verwendet werden kann.
Fehler: Gibt 0 zurück, 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


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

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

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

; Callback Verfahren
Func _EnumWindowsProc($hWnd, $lParam)
    If WinGetTitle($hWnd) <> "" And BitAND(WinGetState($hWnd), 2) Then
        Local $res = MsgBox(1, WinGetTitle($hWnd), "$hWnd=" & $hWnd & @CRLF & "lParam=" & $lParam & @CRLF & "$hWnd(type)=" & VarGetType($hWnd))
        If $res = 2 Then Return 0 ; Wenn Abbrechen geklickt, Rückgabe 0 zum Stoppen der Aufzählung
    EndIf
    Return 1 ; Rückgabe 1 um die Aufzählung fortzusetzten
EndFunc   ;==>_EnumWindowsProc