Registers callback function that WinINet functions can call as progress is made during an operation
#include <FTPEx.au3>
_FTP_SetStatusCallback ( $hInternetSession, $sFunctionName )
The callback function is called with the following parameters (see InternetStatusCallback Windows API):
$hInternet, $iContext, $iInternetStatus, $pStatusInformation, $iStatusInformationLength
_FTP_Command, _FTP_Connect, _FTP_DecodeInternetStatus, _FTP_DirPutContents, _FTP_FileGet, _FTP_FileOpen, _FTP_FilePut, _FTP_FindFileFirst, _FTP_ListToArray, _FTP_ListToArray2D, _FTP_ListToArrayEx, _FTP_Open
Search InternetSetStatusCallback in MSDN Library.
#include <Debug.au3>
#include <FTPEx.au3>
#include <WinAPIHOBj.au3>
#include <WinAPIMem.au3>
_DebugSetup (StringTrimRight (@ScriptName ,StringLen (".exe"))&' example',True )
;~ Local $sServer = 'ftp.cs.brown.edu' ; Brown Computer Science
Local $sServer= 'speedtest.tele2.net'; Tele2 Speedtest Service
Local $sUsername= ''
Local $sPass= ''
Local $hOpen= _FTP_Open ('MyFTP Control')
Local $pCallback= _FTP_SetStatusCallback ($hOpen,'FTPStatusCallbackHandler')
Local $hConn= _FTP_Connect ($hOpen,$sServer,$sUsername,$sPass,0,$INTERNET_DEFAULT_FTP_PORT,$INTERNET_SERVICE_FTP,0,$pCallback)
Local $iFtpc= _FTP_Close ($hConn)
Local $iFtpo= _FTP_Close ($hOpen)
Func FTPStatusCallbackHandler($hInternet,$iContext,$iInternetStatus,$pStatusInformation,$iStatusInformationLength)
#forceref$hInternet,$iContext
If $iInternetStatus= $INTERNET_STATUS_REQUEST_SENTOr $iInternetStatus= $INTERNET_STATUS_RESPONSE_RECEIVEDThen
Local $iBytesRead
Local $tStatus= DllStructCreate ('dword')
_WinAPI_ReadProcessMemory (_WinAPI_GetCurrentProcess (),$pStatusInformation,$tStatus,$iStatusInformationLength,$iBytesRead)
_DebugOut (_FTP_DecodeInternetStatus ($iInternetStatus)&' | Size = '&DllStructGetData ($tStatus,1)&' Bytes Bytes read = '&$iBytesRead)
Else
_DebugOut (_FTP_DecodeInternetStatus ($iInternetStatus))
EndIf
EndFunc ;==>FTPStatusCallbackHandler