INTERNET_STATUS_CALLBACK funzione di callback (wininet.h)

Prototipo per una funzione di callback di stato definita dall'applicazione.

Il tipo INTERNET_STATUS_CALLBACK definisce un puntatore a questa funzione di callback. InternetStatusCallback è un segnaposto per il nome della funzione definita dall'applicazione.

Sintassi

INTERNET_STATUS_CALLBACK InternetStatusCallback;

void InternetStatusCallback(
  [in] HINTERNET hInternet,
  [in] DWORD_PTR dwContext,
  [in] DWORD dwInternetStatus,
  [in] LPVOID lpvStatusInformation,
  [in] DWORD dwStatusInformationLength
)
{...}

Parametri

[in] hInternet

Handle per il quale viene chiamata la funzione di callback.

[in] dwContext

Puntatore a una variabile che specifica il valore di contesto definito dall'applicazione associato a hInternet.

[in] dwInternetStatus

Codice di stato che indica il motivo per cui viene chiamata la funzione di callback. Questo parametro può avere uno dei valori seguenti.

Valore Significato
INTERNET_STATUS_CLOSING_CONNECTION
Chiusura della connessione al server. Il parametro lpvStatusInformation è NULL.
INTERNET_STATUS_CONNECTED_TO_SERVER
La connessione all'indirizzo del socket (SOCKADDR) a cui punta lpvStatusInformation.
INTERNET_STATUS_CONNECTING_TO_SERVER
Connessione all'indirizzo del socket (SOCKADDR) a cui punta lpvStatusInformation.
INTERNET_STATUS_CONNECTION_CLOSED
La connessione al server è stata chiusa correttamente. Il parametro lpvStatusInformation è NULL.
INTERNET_STATUS_COOKIE_HISTORY
Recupero del contenuto dalla cache. Contiene dati sugli eventi dei cookie precedenti per l'URL, ad esempio se i cookie sono stati accettati, rifiutati, declassati o con guinzaglio.

Il parametro lpvStatusInformation è un puntatore a una struttura InternetCookieHistory .

INTERNET_STATUS_COOKIE_RECEIVED
Indica il numero di cookie accettati, rifiutati, declassati (modificati da cookie persistenti a sessione) o con guinzaglio (verranno inviati solo nel contesto di prima parte). Il parametro lpvStatusInformation è un DWORD con il numero di cookie ricevuti.
INTERNET_STATUS_COOKIE_SENT
Indica il numero di cookie inviati o eliminati quando viene inviata una richiesta. Il parametro lpvStatusInformation è un DWORD con il numero di cookie inviati o soppressi.
INTERNET_STATUS_CTL_RESPONSE_RECEIVED
Non implementato.
INTERNET_STATUS_DETECTING_PROXY
Notifica all'applicazione client che è stato rilevato un proxy.
INTERNET_STATUS_HANDLE_CLOSING
Questo valore di handle è stato terminato. pvStatusInformation contiene l'indirizzo dell'handle da chiudere. Il parametro lpvStatusInformation contiene l'indirizzo dell'handle da chiudere.
INTERNET_STATUS_HANDLE_CREATED
Utilizzato da InternetConnect per indicare che ha creato il nuovo handle. In questo modo l'applicazione chiama InternetCloseHandle da un altro thread, se la connessione richiede troppo tempo. Il parametro lpvStatusInformation contiene l'indirizzo di un handle DELLANET.
INTERNET_STATUS_INTERMEDIATE_RESPONSE
Ricevuto un messaggio di codice di stato intermedio (livello 100) dal server.
INTERNET_STATUS_NAME_RESOLVED
Trovato correttamente l'indirizzo IP del nome contenuto in lpvStatusInformation. Il parametro lpvStatusInformation punta a un PCTSTR contenente il nome host.
INTERNET_STATUS_P3P_HEADER
La risposta contiene un'intestazione P3P.
INTERNET_STATUS_P3P_POLICYREF
Non implementato.
INTERNET_STATUS_PREFETCH
Non implementato.
INTERNET_STATUS_PRIVACY_IMPACTED
Non implementato.
INTERNET_STATUS_RECEIVING_RESPONSE
In attesa che il server risponda a una richiesta. Il parametro lpvStatusInformation è NULL.
INTERNET_STATUS_REDIRECT
Una richiesta HTTP sta per reindirizzare automaticamente la richiesta. Il parametro lpvStatusInformation punta al nuovo URL. A questo punto, l'applicazione può leggere tutti i dati restituiti dal server con la risposta di reindirizzamento e può eseguire query sulle intestazioni di risposta. Può anche annullare l'operazione chiudendo l'handle. Questo callback non viene eseguito se la richiesta originale specificata INTERNET_FLAG_NO_AUTO_REDIRECT.
INTERNET_STATUS_REQUEST_COMPLETE
Operazione asincrona completata. Il parametro lpvStatusInformation contiene l'indirizzo di una struttura INTERNET_ASYNC_RESULT .
INTERNET_STATUS_REQUEST_SENT
La richiesta di informazioni è stata inviata correttamente al server. Il parametro lpvStatusInformation punta a un valore DWORD contenente il numero di byte inviati.
INTERNET_STATUS_RESOLVING_NAME
Ricerca dell'indirizzo IP del nome contenuto in lpvStatusInformation. Il parametro lpvStatusInformation punta a un PCTSTR contenente il nome host.
INTERNET_STATUS_RESPONSE_RECEIVED
È stata ricevuta una risposta dal server.
INTERNET_STATUS_SENDING_REQUEST
Invio della richiesta di informazioni al server. Il parametro lpvStatusInformation è NULL.
INTERNET_STATUS_STATE_CHANGE
Spostato tra un sito sicuro (HTTPS) e un sito non sicuro (HTTP). L'utente deve essere informato di questa modifica; in caso contrario, l'utente è a rischio di divulgazione involontaria di informazioni riservate. Quando questo flag è impostato, il parametro lpvStatusInformation punta a un DWORD di stato che contiene flag aggiuntivi.

[in] lpvStatusInformation

Puntatore ad altre informazioni sullo stato. Quando il flag INTERNET_STATUS_STATE_CHANGE è impostato, lpvStatusInformation punta a un DWORD che contiene uno o più dei flag seguenti:

Valore Significato
INTERNET_STATE_CONNECTED
Stato connesso. Si escludono a vicenda con stato disconnesso.
INTERNET_STATE_DISCONNECTED
Stato disconnesso. Non è stato possibile stabilire alcuna connessione di rete.
INTERNET_STATE_DISCONNECTED_BY_USER
Disconnesso dalla richiesta dell'utente.
INTERNET_STATE_IDLE
Nessuna richiesta di rete viene effettuata da Windows Internet.
INTERNET_STATE_BUSY
Le richieste di rete vengono effettuate da Windows Internet.
INTERNET_STATUS_USER_INPUT_REQUIRED
La richiesta richiede il completamento dell'input dell'utente.

[in] dwStatusInformationLength

Dimensioni, in byte, dei dati a cui punta lpvStatusInformation.

Valore restituito

nessuno

Osservazioni

Poiché i callback vengono eseguiti durante l'elaborazione della richiesta, l'applicazione deve dedicare poco tempo alla funzione di callback per evitare di ridurre la velocità effettiva dei dati nella rete. Ad esempio, la visualizzazione di una finestra di dialogo in una funzione di callback può essere un'operazione di lunga durata che il server termina la richiesta.

La funzione di callback può essere chiamata in un contesto di thread diverso dal thread che ha avviato la richiesta.

Attenzione Invia sempre una notifica all'utente quando si verifica una modifica dello stato da un sito sicuro (HTTPS) a un sito HTTP (non sicuro), per evitare la divulgazione involontaria di informazioni.
 
Come tutti gli altri aspetti dell'API WinINet, questa funzione non può essere chiamata in modo sicuro da DllMain o dai costruttori e distruttori di oggetti globali.
Nota WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni del server o i servizi, usare i servizi HTTP di Microsoft Windows (WinHTTP).
 

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wininet.h

Vedi anche

Operazione asincrona

Creazione di funzioni di callback di stato

INTERNET_ASYNC_RESULT

Funzioni WinINet