Я наблюдал различное поведение API GetLastError в Windows 2003 и Windows 7.
Ниже приведены мои наблюдения детали
В Windows 2003:
Пример кода:
WinHttpOpen ()
- Успешно завершается
Winhttpconnect()
- Этот API не работает по некоторым причинам, например, с кодом ошибки 12029
GetLastErrorCode()
- возвращает код ошибки 12029, как и ожидалось
WinHttpCloseHandle(hOpen)
; - Закрывающая ручка для HttpOpen, успешно завершена
GetLastErrorCode()
- возвращает код ошибки 12029
В Windows 7
Пример кода:
WinHttpOpen ()
- успешно завершено
Winhttpconnect()
- Этот API не работает по некоторым причинам, например, с кодом ошибки 12029
GetLastErrorCode()
- возвращает код ошибки 12029, как и ожидалось
WinHttpCloseHandle(hOpen);
- закрывающая ручка для HttpOpen, успешно завершается
GetLastErrorCode()
- возвращает код ошибки 0 // см. Разницу с примером Windows 2003, в Windows 2003 этот API возвращает последнюю ошибку, которая составляет 1209