FtpCommand erklärung?
-
hi!
irgendwie hab ich ein problem mit dem FtpCommand.
ich verwende es wie folgt:
HINTERNET hFtpCommand = NULL; BOOL resFtpCommandW = FtpCommandW( CFTP::_connectionData.hInternet, //HINTERNET hConnect, TRUE, //BOOL fExpectResponse, FTP_TRANSFER_TYPE_BINARY, //DWORD dwFlags, FTP_TRANSFER_TYPE_ASCII (Type A) | FTP_TRANSFER_TYPE_BINARY (Type I) L"LIST", //LPCTSTR lpszCommand, NULL, //DWORD_PTR dwContext, &hFtpCommand //HINTERNET* phFtpCommand ); // ---- danach ruf ich folgendes auf: if ( !resFtpCommandW ) { CFTP::exit( L"ERROR: Sending Ftp Command LIST failed!" ); } CFTP::Print( L"Ftp response:\n" + CFTP::getLastFTP_Response() );meine Print funktion leitet mir lediglich die ausgabe an die console weiter.
die funktion CFTP::getLastFTP_Response() sieht so aus
const wstring CFTP::getLastFTP_Response() { DWORD le = GetLastError(); WCHAR lpszBuffer[1024]; DWORD lpdwBufferLength = 1024; ZeroMemory(lpszBuffer,sizeof(lpszBuffer)); InternetGetLastResponseInfoW( &le , lpszBuffer, &lpdwBufferLength); std::wostringstream ss; ss << L"ErrorId = " << le << L" Error Message: " << lpszBuffer; return ss.str(); }meine probleme bei dem ganzen:
A) Was bitte ist dieser parameter DWORD_PTR dwContext beim FtpCommand - finde nirgendwo ein beispiel, in dem dieser parameter verwendet oder erklärt wird.
ich bekomme überhaupt keine rückmeldung, ob der server nun den LIST befehl ausgeführt hat. sollte ich das nicht über InternetGetLastResponseInfoW() bekommen? mein text der ausgegeben wird besagt nur ErrorId = 0 Error Message: <<LEER>>C) rufe ich hier nirgendwo
InternetCloseHandle( CFTP::_connectionData.hFtpConnect );
InternetCloseHandle( CFTP::_connectionData.hInternet );
( meine InternetOpen und InternetConnect - handles )
auf - dennoch werden nach der ausführung von FtpCommandW offenbar beide geschlossen - erst dann wird der responsetext ausgegeben. verwende hier aber keinerlei threads. was ist da los !?hoffe, ich bekomme hierzu überhaupt eine antwort. wäre für jeden tipp sehr dankbar !
lg