Tratamento de erros no WinHTTP
Nem todas as funções da API WinHTTP relatam erros da mesma maneira.
Algumas funções, como WinHttpSetTimeouts, retornam um BOOL que indica falha quando FALSE. Se FALSE for retornado, os chamadores interessados no erro deverão chamar GetLastError. Se GetLastError for chamado quando a função for succeded (retornou tudo menos FALSE), o valor retornado será imprevisível e poderá ser alterado entre versões do Windows, Service Packs ou até mesmo entre chamadas para a mesma função.
Algumas funções, como WinHttpConnect, retornam um pseudo-identificador HINTERNET . Essas funções são exatamente as mesmas, exceto que a falha é indicada retornando NULL. Se NULL for retornado, os chamadores interessados no erro deverão chamar GetLastError. Se GetLastError for chamado quando a função for succeded (retornou qualquer coisa menos NULL), o valor retornado será imprevisível e poderá ser alterado entre versões do Windows, Service Packs ou até mesmo entre chamadas para a mesma função.
Algumas funções, como WinHttpGetProxyResult, retornam um código de erro DWORD e não há necessidade de chamar outras funções para obter mais informações de erro. Para essas funções, GetLastError não deve ser chamado. Se GetLastError for chamado, independentemente do êxito ou falha da função, o valor retornado será imprevisível e poderá ser alterado entre versões do Windows, Service Packs ou até mesmo entre chamadas para a mesma função.