共用方式為


InternetSetStatusCallbackW 函式 (wininet.h)

InternetSetStatusCallback 函式會設定一個回呼函式,WinINet 函式可在作業期間呼叫為進度。

語法

INTERNET_STATUS_CALLBACK InternetSetStatusCallbackW(
  HINTERNET                hInternet,
  INTERNET_STATUS_CALLBACK lpfnInternetCallback
);

參數

hInternet

要為其設定回呼的句柄。

lpfnInternetCallback

在進行進度時要呼叫的回呼函式指標,或 NULL 移除現有的回呼函式。 如需回呼函式的詳細資訊,請參閱 InternetStatusCallback

傳回值

如果成功,則傳回先前定義的狀態回呼函式、如果沒有先前定義的狀態回呼函式,NULL,或如果回呼函式無效,則傳回INTERNET_INVALID_STATUS_CALLBACK。

言論

同步和異步函式都會使用回調函式來指出要求的進度,例如解析名稱、連線到伺服器等等。 異步操作需要回呼函式。 異步要求會使用 INTERNET_STATUS_REQUEST_COMPLETE 回呼應用程式,以指出要求已完成。

回呼函式可以在任何句柄上設定,並由衍生句柄繼承。 您可以使用 InternetSetStatusCallback來變更回呼函式,前提是沒有需要使用先前回呼值的擱置要求。 不過請注意,在句柄上變更回呼函式並不會變更衍生句柄上的回呼,例如 InternetConnect 所傳回的回呼。 您必須在每個層級變更回呼函式。

許多 WinINet 函式會在網路上執行數個作業。 每個作業可能需要一點時間才能完成,而且每個作業都可能會失敗。

在長期作業期間,有時最好顯示狀態資訊。 您可以設定無法移除的因特網狀態回呼函式,只要有任何回呼或任何異步函式擱置,即可顯示狀態資訊。

起始 InternetSetStatusCallback之後,可以從任何 WinINet 函式中存取回呼函式,以監視需要大量時間的網路作業。

注意lpfnInternetCallback 參數中指定的回呼函式,在 dwContext 參數時,不會對要求句柄的異步操作呼叫 當 dwContextInternetConnect 的句柄設為零時,HttpOpenRequest 會設定為INTERNET_NO_CALLBACK零(INTERNET_NO_CALLBACK),或連接句柄。

如同 WinINet API 的其他所有層面,無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。

注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用。 針對伺服器實作或服務,請使用 Microsoft Windows HTTP 服務 (WinHTTP)
 

注意

wininet.h 標頭會根據 UNICODE 預處理器常數的定義,將 InternetSetStatusCallback 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
標頭 wininet.h

另請參閱

Common Functions

InternetStatusCallback

WinINet 函式