March 1
La libreria di collegamento dinamico WinInet.dll è un modulo che contiene le funzioni correlate a Internet utilizzato da molte applicazioni comuni di Windows per comunicare su Internet. È possibile utilizzare questa DLL nelle proprie applicazioni, sviluppate in qualsiasi ambiente di sviluppo integrato, per scaricare un file di qualsiasi dimensione da un sito web utilizzando alcuni buffer semplici e calcolare correttamente la dimensione del file.
1 Creare una nuova funzione che prende l'URL, il suo unico parametro, utilizzando questo codice:
std :: string getURL (const char * URL)
{
2 Inserire il codice per creare un nuovo buffer costante per memorizzare le dimensioni delle parti che compongono il file:
const int DownloadBufferSize = 1024;
3 Aggiungere questo codice per creare una costante che memorizza gli errori, nel caso in cui il programma genera uno:
const std :: string ErrorString = "ERRORE";
4 Utilizzare la funzione HINTERNET di WinInet per aprire una connessione a Internet, prima di tentare di scaricare il file, inserendo questo codice:
HINTERNET hInternet = InternetOpen ( "GINA: Versione 0.1", INTERNET_OPEN_TYPE_DIRECT, NULL, 0,0);
if (hInternet == null) {
tornare ErrorString;
}
5 Aprire l'URL utilizzando questo codice:
HINTERNET hFile = InternetOpenUrl (hInternet, URL, NULL, 0, 0, 0);
if (hFile == null) {
tornare ErrorString;
}
6 Creare un buffer che contiene le dimensioni del file inserendo questo codice:
DWORD sizeBuffer;
DWORD lunghezza = sizeof (sizeBuffer);
7 Ottenere la dimensione del file utilizzando questo codice:
bool riesce = HttpQueryInfo (hFile, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, e sizeBuffer, e la lunghezza, NULL) == TRUE;
8 Creare una nuova stringa per memorizzare il file inserendo questo codice:
downloadedContents std :: String = "";
9 Inserire questo codice per impostare il buffer di download e contare il numero di byte tuoi programmi download:
char * downloadBuffer = new char [DownloadBufferSize];
DWORD bytesRead = 0;
fare{
InternetReadFile (hFile, downloadBuffer, DownloadBufferSize, e bytesRead);
10 Aggiunge il contenuto del buffer di download del file fino a quando il file è completo utilizzando questo codice:
downloadedContents.append (downloadBuffer, DownloadBufferSize);
} While (bytesRead = 0!);
11 Chiudere le maniglie WinInet e il programma utilizzando questo codice:
InternetCloseHandle (hFile);
InternetCloseHandle (hInternet);
tornare downloadedContents;
}