Functions > Process >


DllCallbackRegister

Crée une fonction Callback DLL définie par l'utilisateur.

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

Paramètres

function Le nom défini par l'utilisateur de la fonction à appeler.
return type Le type de retour et de convention d'appel de la fonction (Voir DllCall).
params Un point-virgule sépare la liste des paramètres qui seront passés à cette fonction. Voir Remarques.

Valeur de retour

Succès: Retourne le "handle" DLL qui sera utilisé avec les fonctions DllCallbackGetPtr() et DllCallbackFree().
Échec: Retourne 0 en cas d'erreur.

Remarque

Utilisez tous les types de DllCall() excepté "struct".
Lorsque vous en avez terminé avec un Callback, appelez la fonction DllCallbackFree() pour le fermer. AutoIt ferme normalement tous les fichiers lorsqu'un script se termine, mais un appel explicite à DllCallbackFree() est toujours une bonne idée.

En relation

DllCall, DllCallbackFree, DllCallbackGetPtr

Exemple

#include <MsgBoxConstants.au3>

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

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

; Supprime la fonction de rappel.
DllCallbackFree($hHandle)

; Procédure de rappel
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