Funktionreferenz


_FTP_SetStatusCallback

Beschreibung anzeigen in

Registriert eine Callback-Funktion, die von den WinINet-Funktionen aufgerufen werden kann, wenn ein Fortschritt während der Abarbeitung erfolgt

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

Parameter

$hInternetSession Rückgabe von _FTP_Open().
$sFunctionName Name der aufzurufenden benutzerdefinierten Funktion.

Rückgabewert

Erfolg: ein Zeiger zur Callback-Funktion
Fehler: 0 und setzt das @error Flag auf ungleich 0

Bemerkungen

Die Callback-Funktion wird mit folgenden Parametern aufgerufen (siehe InternetStatusCallback Windows API):
$hInternet, $iContext, $iInternetStatus, $pStatusInformation, $iStatusInformationLength

Verwandte Funktionen

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

Siehe auch

Suche nach InternetSetStatusCallback in der MSDN Bibliothek.

Beispiel

#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_SENT Or $iInternetStatus = $INTERNET_STATUS_RESPONSE_RECEIVED Then
        Local $iBytesRead
        Local $tStatus = DllStructCreate('dword')
        _WinAPI_ReadProcessMemory(_WinAPI_GetCurrentProcess(), $pStatusInformation, DllStructGetPtr($tStatus), $iStatusInformationLength, $iBytesRead)
        _DebugOut(_FTP_DecodeInternetStatus($iInternetStatus) & ' | Größe = ' & DllStructGetData($tStatus, 1) & ' Bytes    Bytes gelesen = ' & $iBytesRead)
    Else
        _DebugOut(_FTP_DecodeInternetStatus($iInternetStatus))
    EndIf
EndFunc   ;==>FTPStatusCallbackHandler