DllCallbackRegister
Создаёт пользовательскую функцию обратного вызова (DLL Callback).
Параметры
function |
Имя пользовательской функции (UDF) для вызова. |
return type |
Тип возвращаемого значения и соглашение вызова функции (смотрите DllCall()). |
params |
Список параметров, разделённый точкой с запятой ';', который будет передан этой функции. См. примечание. |
Возвращаемое значение
Примечания
Используйте все типы DllCall() кроме "struct".
После окончания работы с callback, вызовите функцию DllCallbackFree(), чтобы закрыть его. AutoIt обычно закрывает все файлы по окончании, но вызов DllCallbackFree() все же рекомендуется.
См. также
DllCall, DllCallbackFree, DllCallbackGetPtr
Пример
; Создаёт функцию обратного вызова
$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
; Нажатие кнопки "Отмена" (2), возвращает 0, чтобы остановить перечисление
If MsgBox(1, WinGetTitle($hWnd), _
"$hWnd=" & $hWnd & @LF & _
"lParam=" & $lParam & @LF & _
"$hWnd(type)=" & VarGetType($hWnd)) = 2 Then Return 0
EndIf
Return 1 ; Возвращает 1, чтобы продолжить перечисление
EndFunc
Источник: http://dayzev.ucoz.ru/
|