Come scaricare un file a wininet.dll

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.

istruzione

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;
}