Функция _FTP_SetStatusCallback

         Описание функции


_FTP_SetStatusCallback

Регистрирует callback функцию, это WinINet функция может вызываться как прогресс сделанный в ходе операции.

#include <FTPEx.au3>
_FTP_SetStatusCallback($l_InternetSession, $sFunctionName)

Параметры

$l_InternetSession Указатель возвращённый функцией _FTP_Open()
$sFunctionName Имя вызываемой пользовательской функции.

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

Успех:Указатель callback функции
Ошибка:Возвращает 0 и устанавливает @error не равно 0

Примечания

Функция callback вызывается со следующими параметрами (смотрите InternetStatusCallback Windows API):
$hInternet, $dwContent, $dwInternetStatus, $lpvStatusInformation, $dwStatusInformationLength

См. также

_FTP_Open, _FTP_FileOpen, _FTP_Command, _FTP_Connect, _FTP_DirPutContents, _FTP_FileGet, _FTP_FilePut, _FTP_FindFileFirst, _FTP_ListToArray, _FTP_ListToArray2D, _FTP_ListToArrayEx, _FTP_DecodeInternetStatus

См. также

Искать InternetSetStatusCallback в библиотеке MSDN

Пример

#include <FTPEx.au3>
#include <Debug.au3>

_DebugSetup(StringTrimRight(@ScriptName, 4) & ' example', True)

Local $server = 'ftp.mozilla.org'
Local $username = ''
Local $pass = ''

Local $Open = _FTP_Open('MyFTP Control')
Local $Callback = _FTP_SetStatusCallback($Open, 'FTPStatusCallbackHandler')

Local $Conn = _FTP_Connect($Open, $server, $username, $pass, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0, $Callback)

Local $Ftpc = _FTP_Close($Open)

Func FTPStatusCallbackHandler($hInternet, $dwContent, $dwInternetStatus, $lpvStatusInformation, $dwStatusInformationLength)
    #forceref $hInternet, $dwContent
    If $dwInternetStatus = $INTERNET_STATUS_REQUEST_SENT Or $dwInternetStatus = $INTERNET_STATUS_RESPONSE_RECEIVED Then
        Local $Size, $iBytesRead
        $Size = DllStructCreate('dword')
        _WinAPI_ReadProcessMemory(_WinAPI_GetCurrentProcess(), $lpvStatusInformation, DllStructGetPtr($Size), $dwStatusInformationLength, $iBytesRead)
        _DebugOut(_FTP_DecodeInternetStatus($dwInternetStatus) & ' | Size = ' & DllStructGetData($Size, 1) & ' Bytes    Bytes read = ' & $iBytesRead)
    Else
        _DebugOut(_FTP_DecodeInternetStatus($dwInternetStatus))
    EndIf
EndFunc   ;==>FTPStatusCallbackHandler