Поделиться через


Обработка ошибок в WinHTTP

Не все функции API WinHTTP сообщают об ошибках одинаково.

Некоторые функции, например WinHttpSetTimeouts, возвращают BOOL , указывающее на сбой при значении FALSE. Если возвращается значение FALSE , вызывающие стороны, заинтересованные в ошибке, должны вызвать Метод GetLastError. Если метод GetLastError вызывается при успешном выполнении функции (возвращается ничего, кроме FALSE), то возвращаемое значение непредсказуемо и может меняться между версиями Windows, пакетами обновления или даже между вызовами одной функции.

Некоторые функции, такие как WinHttpConnect, возвращают псевдо дескриптор HINTERNET . Эти функции точно такие же, за исключением того, что сбой обозначается возвращающим значение NULL. Если возвращается значение NULL , вызывающие стороны, заинтересованные в ошибке, должны вызывать GetLastError. Если getLastError вызывается при успешном выполнении функции (возвращается все, что не равно NULL), возвращаемое значение непредсказуемо и может меняться между версиями Windows, пакетами обновления или даже между вызовами одной функции.

Некоторые функции, например WinHttpGetProxyResult, возвращают код ошибки DWORD , и нет необходимости вызывать другие функции для получения дополнительных сведений об ошибке. Для этих функций не следует вызывать GetLastError . При вызове Метода GetLastError независимо от успешного или неудачного выполнения функции возвращаемое значение непредсказуемо и может меняться между версиями Windows, пакетами обновления или даже между вызовами одной и той же функции.