INTERNET_STATUS_CALLBACK回呼函式 (wininet.h)

應用程式定義狀態回呼函式的原型。

INTERNET_STATUS_CALLBACK類型會定義這個回呼函式的指標。InternetStatusCallback 是應用程式定義函數名稱的佔位元。

語法

INTERNET_STATUS_CALLBACK InternetStatusCallback;

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

參數

[in] hInternet

呼叫回呼函式的句柄。

[in] dwContext

變數的指標,指定與 hInternet 相關聯的應用程式定義內容值。

[in] dwInternetStatus

狀態代碼,指出呼叫回呼函式的原因。 此參數可以是下列其中一個值。

值 意義
INTERNET_STATUS_CLOSING_CONNECTION
關閉與伺服器的連線。 lpvStatusInformation 參數為 NULL。
INTERNET_STATUS_CONNECTED_TO_SERVER
已成功連線到 sOCKADDR (sOCKADDR) lpvStatusInformation 所指向的套接字位址。
INTERNET_STATUS_CONNECTING_TO_SERVER
連接到 sOCKADDR (SOCKADDR) 由 lpvStatusInformation 指向的套接字位址。
INTERNET_STATUS_CONNECTION_CLOSED
已成功關閉與伺服器的連線。 lpvStatusInformation 參數為 NULL。
INTERNET_STATUS_COOKIE_HISTORY
從快取擷取內容。 包含 URL 過去 Cookie 事件的相關數據,例如是否接受、拒絕、降級或已降級。

lpvStatusInformation 參數是 InternetCookieHistory 結構的指標。

INTERNET_STATUS_COOKIE_RECEIVED
指出已接受、拒絕、降級的 Cookie 數目, (從持續性變更為會話 Cookie) ,或 (只會在第一方內容) 中傳送出。 lpvStatusInformation 参數是收到 Cookie 數目的 DWORD。
INTERNET_STATUS_COOKIE_SENT
指出在傳送要求時,已傳送或隱藏的Cookie數目。 lpvStatusInformation 參數是 DWORD,其中包含傳送或隱藏的 Cookie 數目。
INTERNET_STATUS_CTL_RESPONSE_RECEIVED
未實作。
INTERNET_STATUS_DETECTING_PROXY
通知用戶端應用程式已偵測到 Proxy。
INTERNET_STATUS_HANDLE_CLOSING
此句柄值已終止。 pvStatusInformation 包含正在關閉的句柄位址。 lpvStatusInformation 參數包含所關閉句柄的位址。
INTERNET_STATUS_HANDLE_CREATED
InternetConnect 用來指出它已建立新的句柄。 這可讓應用程式從另一個線程呼叫 InternetCloseHandle ,如果連線花費太長的時間。 lpvStatusInformation 參數包含 HINTERNET 句柄的位址。
INTERNET_STATUS_INTERMEDIATE_RESPONSE
從伺服器收到中繼 (100 層級) 狀態代碼訊息。
INTERNET_STATUS_NAME_RESOLVED
已成功找到 lpvStatusInformation 中包含的名稱 IP 位址。 lpvStatusInformation 參數指向包含主機名的PCTSTR。
INTERNET_STATUS_P3P_HEADER
回應中有 P3P 標頭。
INTERNET_STATUS_P3P_POLICYREF
未實作。
INTERNET_STATUS_PREFETCH
未實作。
INTERNET_STATUS_PRIVACY_IMPACTED
未實作。
INTERNET_STATUS_RECEIVING_RESPONSE
等候伺服器回應要求。 lpvStatusInformation 參數為 NULL。
INTERNET_STATUS_REDIRECT
HTTP 要求即將自動重新導向要求。 lpvStatusInformation 參數會指向新的 URL。 此時,應用程式可以使用重新導向回應來讀取伺服器傳回的任何數據,並可查詢回應標頭。 它也可以藉由關閉句柄來取消作業。 如果指定的原始要求 INTERNET_FLAG_NO_AUTO_REDIRECT,則不會進行此回呼。
INTERNET_STATUS_REQUEST_COMPLETE
異步操作已完成。 lpvStatusInformation 參數包含INTERNET_ASYNC_RESULT結構的位址。
INTERNET_STATUS_REQUEST_SENT
成功將資訊要求傳送至伺服器。 lpvStatusInformation 參數會指向包含已傳送位元元組數目的 DWORD 值。
INTERNET_STATUS_RESOLVING_NAME
查閱 lpvStatusInformation 中所含名稱的IP位址。 lpvStatusInformation 參數指向包含主機名的PCTSTR。
INTERNET_STATUS_RESPONSE_RECEIVED
已成功從伺服器收到回應。
INTERNET_STATUS_SENDING_REQUEST
將資訊要求傳送至伺服器。 lpvStatusInformation 參數為 NULL。
INTERNET_STATUS_STATE_CHANGE
在安全 (HTTPS) 與不安全的 HTTP () 網站之間移動。 用戶必須收到這項變更的通知;否則,使用者可能會不慎公開敏感性資訊。 設定此旗標時, lpvStatusInformation 參數會指向包含其他旗標的狀態 DWORD。

[in] lpvStatusInformation

其他狀態資訊的指標。 設定 INTERNET_STATUS_STATE_CHANGE 旗標時, lpvStatusInformation 會指向包含下列一或多個旗標的 DWORD :

值 意義
INTERNET_STATE_CONNECTED
線上狀態。 與中斷連線狀態互斥。
INTERNET_STATE_DISCONNECTED
已中斷連線的狀態。 無法建立網路連線。
INTERNET_STATE_DISCONNECTED_BY_USER
使用者要求已中斷連線。
INTERNET_STATE_IDLE
Windows 因特網不會提出任何網路要求。
INTERNET_STATE_BUSY
Windows 因特網正在提出網路要求。
INTERNET_STATUS_USER_INPUT_REQUIRED
要求需要完成用戶輸入。

[in] dwStatusInformationLength

lpvStatusInformation 所指向之數據的大小,以位元組為單位。

傳回值

無

備註

因為回呼是在處理要求期間進行,所以應用程式應該花點時間在回呼函式中,以避免降低網路上的數據輸送量。 例如,在回呼函式中顯示對話方塊可能是伺服器終止要求的冗長作業。

回呼函式可以在與起始要求之線程不同的線程內容中呼叫。

謹慎 當狀態從安全 (HTTPS) 網站變更為發生不安全 (HTTP) 網站時,一律通知使用者,以防止非自動資訊洩漏。
 
就像 WinINet API 所有其他層面一樣,您無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。
注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用它。 對於伺服器實作或服務,請使用 Microsoft Windows HTTP Services (WinHTTP) 。
 

規格需求

需求 值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wininet.h

另請參閱

異步操作

建立狀態回呼函式

INTERNET_ASYNC_RESULT

WinINet 函式