Functions > Process >


DllCallbackGetPtr

Obtient le pointeur sur une fonction callback qui peut être transmis à l'API Win32.

DllCallbackGetPtr ( handle )

Paramètre

handle Le handle DllCallback retourné par DllCallbackRegister().

Valeur de retour

Succès: Retourne le pointeur sur la fonction callback.
Échec: Retourne 0.

Remarque

Utilisez DllCallbackGetPtr() pour passer l'adresse d'une fonction callback à l'API Win32 en utilisant DllCall().

En relation

DllCall, DllCallbackFree, DllCallbackRegister

Exemple

#include <MsgBoxConstants.au3>

; Crée une fonction callback.
Local $hHandle = DllCallbackRegister("_EnumWindowsProc", "int", "hwnd;lparam")

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

; Supprime la fonction callback.
DllCallbackFree($hHandle)

; Procédure callback
Func _EnumWindowsProc($hWnd, $lParam)
    ; Si le titre est vide ou si la fenêtre n'est pas visible, alors continue l'énumération.
    If WinGetTitle($hWnd) = "" Or BitAND(WinGetState($hWnd), 2) = 0 Then Return 1

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

    If $iRes <> $IDOK Then Return 0 ; bouton Cancel/Close cliqué, retourne 0 pour arrêter l'énumération.

    Return 1 ;Retour 1 pour continuer l'énumération.
EndFunc   ;==>_EnumWindowsProc