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


Anmelden zum Antworten