Crée une fonction DLL Callback définie par l'utilisateur.
DllCallbackRegister ( "function", "return type", "params" )
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. |
Succès: | Retourne le handle DLL qui sera utilisé avec les fonctions DllCallbackGetPtr() et DllCallbackFree(). |
Échec: | Retourne 0 en cas d'erreur. |
DllCall, DllCallbackFree, DllCallbackGetPtr
#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