Funktionreferenz


DllCallbackGetPtr

Beschreibung anzeigen in

Gibt einen Zeiger auf eine Callback Funktion zurück die an Win32 API übergeben werden kann.

DllCallbackGetPtr ( handle )

Parameter

handle Ein DllCallback Handle, welches von DllCallbackRegister() zurückgegeben wurde.

Rückgabewert

Erfolg: Der Zeiger auf die Callback Funktion.
Fehler: 0.

Bemerkungen

DllCallbackGetPtr() ist zu verwenden, um die Adresse einer Callback Funktion an Win32 API zu übergeben, wenn DllCall() verwendet wird.

Verwandte Funktionen

DllCall, DllCallbackFree, DllCallbackRegister

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