函数参考


DllCallbackFree

清空先前由 DllCallbackRegister 创建的句柄.

DllCallbackFree ( 句柄 )

参数

句柄 DllCallback(DLL回调) 句柄, 调用 DllCallbackRegister 时所返回.

返回值

None.

注意/说明

终止前(Upon termination,汗,没说什么终止前), AutoIt 会自动关闭打开的句柄,尽管如此,使用 DllCallbackFree 仍然是一个好主意.

相关

DllCall, DllCallbackGetPtr, DllCallbackRegister

示例/演示



; 创建回调函数
Local $handle = DllCallbackRegister("_EnumWindowsProc", "int", "hwnd;lparam")

; 调用 EnumWindows
DllCall("user32.dll", "int", "EnumWindows", "ptr", DllCallbackGetPtr($handle), "lparam", 10)

; 删除回调函数
DllCallbackFree($handle)

; 回调函数
Func _EnumWindowsProc($hWnd, $lParam)
    If WinGetTitle($hWnd) <> "" And BitAND(WinGetState($hWnd), 2) Then
        Local $res = MsgBox(1, WinGetTitle($hWnd), "$hWnd=" & $hWnd & @CRLF & "lParam=" & $lParam & @CRLF & "$hWnd(type)=" & VarGetType($hWnd))
        If $res = 2 Then Return 0   ; "取消"被点击, 返回 0 并停止枚举
    EndIf
    Return 1    ; 返回 1 继续枚举
EndFunc