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 (benutzt die DllCall Syntax). |
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
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
$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
$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