Dateigröße per InternetSetFilePointer klappt nicht
-
Hallo,
habe folgendes Problem:
hTmpFile = InternetOpenUrl(m_internetsession,filetodownload.c_str(),NULL,0,0,0); fsize = InternetSetFilePointer(hTmpFile,0,NULL,FILE_END,0); InternetCloseHandle(hTmpFile);also InternetOpenUrl macht er noch, Rückgabewert ist auch ok. Aber bei InternetSetFilePointer will er dann nicht mehr und liefert keinen Wert zurück.
Habe es auch schon mit HTTPQueryInfo o.ä. ausprobiert, unterstützt aber der Server nicht.
-
hast du mehr infos über den server ?
was sagt den der server dazu ?
hTmpFile = InternetOpenUrl(m_internetsession,filetodownload.c_str(),NULL,0,0,0); GetServerResponse(); fsize = InternetSetFilePointer(hTmpFile,0,NULL,FILE_END,0);void GetServerResponse() { DWORD dwInfo; DWORD dwLength; char *pszResponse = NULL; InternetGetLastResponseInfo(&dwInfo, NULL, &dwLength); if(dwLength) { if((pszResponse = (char *)LocalAlloc(LPTR, dwLength))) if(InternetGetLastResponseInfo(&dwInfo, (LPTSTR)pszResponse, &dwLength)) std::cout << "Serverresponse: " << pszResponse << std::endl; else std::cout << "Error: " << GetLastError() << std::endl; } else std::cout << "Error: " << GetLastError() << std::endl; LocalFree(pszResponse); }
-
hallo.. habe das nun mit FtpGetFile gemacht. Kann ich da eigentlich irgendwie abfragen, wieviel ich bereits von der angeforderten Datei runter geladen habe?
bisher habe ich da so:
INTERNET_STATUS_CALLBACK isc = InternetSetStatusCallback(m_hFTPCon,(INTERNET_STATUS_CALLBACK)FTPCallback); FtpGetFile(m_hFTPCon,srcfile.c_str(),randname.c_str(), FALSE,FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY,(DWORD)isc); ... void CALLBACK CAutoUpdate::FTPCallback(HINTERNET hInternet, DWORD_PTR dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength) { }kann ich nun irgendwie bei der Callback abfangen wieviel ich bereits runtergeladen habe?
-
Sieht nich danach aus - bin mir aber nicht sicher

-

wozu gibt es dann diese ****** Callback Funktion, wenn nicht zum checken wieviel mal schon runtergeladen hat

-
Damit du z.B. weißt, wann die Übertragung zu Ende ist
