DllCallbackGetPtr
Возвращает указатель функции обратного вызова callback, который может быть передан Win32 API.
DllCallbackGetPtr ( handle )
Параметры
handle | Дескриптор DllCallback возвращаемый функцией DllCallbackRegister(). |
Возвращаемое значение
Успех: | Возвращает указатель функции обратного вызова. |
Ошибка: | Возвращает 0. |
Примечания
Используйте DllCallbackGetPtr(), чтобы передать адрес функции обратного вызова в Win32 API при использовании DllCall().См. также
DllCall, DllCallBackRegister, DllCallbackFreeПример
; Создаёт функцию обратного вызова
$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