共用方式為


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 函式