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 之间更改,甚至在同一函数的调用之间更改。