Share via


WinHTTP 中的錯誤處理

並非所有 WinHTTP API 函式都會以相同的方式回報錯誤。

某些函式,例如 WinHttpSetTimeouts,會傳回 BOOL ,指出 FALSE時失敗。 如果傳回 FALSE ,對錯誤的呼叫端應該呼叫 GetLastError。 如果 呼叫 GetLastError 時,函式 (傳回任何非 FALSE) ,則傳回的值無法預測,而且可能會在 Windows 版本、Service Pack 或甚至呼叫相同的函式之間變更。

某些函式,例如 WinHttpConnect,會傳回 HINTERNET 虛擬控制碼。 這些函式完全相同,但失敗是透過傳回 Null來表示。 如果傳回 Null ,對錯誤的呼叫端應該呼叫 GetLastError。 如果呼叫 GetLastError 時,函式 (傳回 Null) 以外的任何專案,則傳回的值無法預測,而且可能會在 Windows 版本、Service Pack 或甚至呼叫相同的函式之間變更。

某些函式,例如 WinHttpGetProxyResult,會傳回 DWORD 錯誤碼,而且不需要呼叫任何其他函式以取得更多錯誤資訊。 針對這些函式,不應呼叫 GetLastError 。 如果呼叫 GetLastError ,不論函式的成功或失敗為何,傳回的值都無法預測,而且可能會在 Windows 版本、Service Pack 或甚至呼叫相同的函式之間變更。