URLDownloadToFile + ProgressBar?
Ostatnio zmodyfikowano 2016-04-28 13:37
mikson Temat założony przez niniejszego użytkownika |
URLDownloadToFile + ProgressBar? » 2016-04-24 16:26:12 Witam,
Jak wykonać ProgressBara, który będzie nam pokazywał, jaką część pliku funkcja URLDownloadToFile już pobrała? Z góry dziękuję za jakiś przykład.
Pozdrawiam |
|
j23 |
» 2016-04-24 18:58:04 Musisz zaimplementować interfejs IBindStatusCallback i wskaźnik do jego instancji przekazać funkcji. Implementację tego interfejsu bez problemu powinieneś znaleźć w sieci jeśli przeraża Cię pisanie wszystkiego od zera. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2016-04-27 22:43:36 Trzeba robić takie skomplikowane operacje? Ja znam rozmiar swojego pliku i stwierdziłem, że można tylko w innym wątku co chwila sprawdzać, ile waży pobrany odpowiednik i tak aktualizować ProgressBara. Zrobiłem taki kod, jednak coś tu nie działa i funkcja filesize() zwraca cały czas wartość -1. Proszę o pomoc. std::ifstream::pos_type filesize( const char * filename ) { std::ifstream in( filename, std::ifstream::ate | std::ifstream::binary ); return in.tellg(); }
void __cdecl ThreadProcDownload( void * Args ) { while( 1 ) { int set = filesize( "test.txt" ); int procent = set / 2648632; SendMessage( hProgressBar, PBM_SETPOS,( WPARAM ) procent, 0 ); Sleep( 500 ); } }
|
|
j23 |
» 2016-04-28 10:43:27 Trzeba robić takie skomplikowane operacje? |
Trzeba. Twój pomysł jest o tyle kulawy, że URLDownloadToFile najprawdopodobniej ściąga dane do pliku tymczasowego. Dopiero później, gdy wszystko się ściągnie, plik jest kopiowany pod docelową ścieżkę. Jak już pisałem, implementację tego interfejsu spokojnie znajdziesz w sieci. I nie jest to nic skomplikowanego, bo większość metod nie trzeba implementować konkretnym kodem, wystarczy, żeby zwracały wartość E_NOTIMPL. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2016-04-28 13:37:20 Ok, dzięki, znalazłem, działa. :D |
|
« 1 » |