InternetSetStatusCallbackA 函式 (wininet.h)
InternetSetStatusCallback 函式會設定回呼函式,讓 WinINet 函式可在作業期間呼叫為進度。
語法
INTERNET_STATUS_CALLBACK InternetSetStatusCallbackA(
HINTERNET hInternet,
INTERNET_STATUS_CALLBACK lpfnInternetCallback
);
參數
hInternet
設定回呼的句柄。
lpfnInternetCallback
進行進度時要呼叫的回調函式指標,或 為NULL 移除現有的回呼函式。 如需回呼函式的詳細資訊,請參閱 InternetStatusCallback。
傳回值
如果成功,則傳回先前定義的狀態回呼函式、如果沒有先前定義的狀態回呼函式,則傳回 NULL ,如果回呼函式無效,則傳回INTERNET_INVALID_STATUS_CALLBACK。
備註
同步和異步函式都會使用回調函式來指出要求的進度,例如解析名稱、連線到伺服器等等。 異步操作需要回呼函式。 異步要求會使用 INTERNET_STATUS_REQUEST_COMPLETE 來回呼應用程式,以指出要求已完成。
回呼函式可以在任何句柄上設定,並由衍生句柄繼承。 您可以使用 InternetSetStatusCallback 來變更回呼函式,前提是不需要使用先前的回呼值, 不過請注意,變更句柄上的回呼函式並不會變更衍生句柄上的回呼,例如 InternetConnect 所傳回的 。 您必須在每個層級變更回呼函式。
許多 WinINet 函式會在網路上執行數個作業。 每個作業可能需要一段時間才能完成,而且每個作業都可能會失敗。
有時建議您在長期作業期間顯示狀態資訊。 您可以設定無法移除的因特網狀態回呼函式,只要有任何回呼或任何異步函式擱置,您就可以顯示狀態資訊。
起始 InternetSetStatusCallback 之後,可以從任何 WinINet 函式記憶體取回呼函式,以監視需要大量時間的網路作業。
注意當 HttpOpenRequest 的 dwContext 參數設定為零 (INTERNET_NO_CALLBACK) ,或 InternetConnect 的 dwContext 句柄設定為零時,不會在要求句柄的異步操作上呼叫回呼函式,或在 InternetConnect 的 dwContext 句柄設定為零 (INTERNET_NO_CALLBACK) 時呼叫聯機句柄。
就像 WinINet API 所有其他層面一樣,您無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。
注意
wininet.h 標頭會將 InternetSetStatusCallback 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
標頭 | wininet.h |