Главная

Назад к списку функции

 

 

DllCallbackRegister

Создаёт пользовательскую функцию обратного вызова (DLL Callback).

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

Параметры

function Имя пользовательской функции (UDF) для вызова.
return type Тип возвращаемого значения и соглашение вызова функции (смотрите DllCall()).
params Список параметров, разделённый точкой с запятой ';', который будет передан этой функции. См. примечание.

Возвращаемое значение

Успех: Возвращает дескриптор dll для использования с функциями DllCallbackGetPtr() и DllCallbackFree().
Ошибка: Возвращает 0, если произошла ошибка.

Примечания

Используйте все типы DllCall() кроме "struct".
После окончания работы с callback, вызовите функцию DllCallbackFree(), чтобы закрыть его. AutoIt обычно закрывает все файлы по окончании, но вызов DllCallbackFree() все же рекомендуется.

См. также

DllCallDllCallbackFreeDllCallbackGetPtr

Пример

 

; Создаёт функцию обратного вызова
$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/
Категория: Описание функций AutoIt Добавил: Grek (05.01.2015) | | Теги: DllCallbackRegister
Всего комментариев: 0