Control de errores en WinHTTP
No todas las funciones de api winHTTP notifican errores de la misma manera.
Algunas funciones, como WinHttpSetTimeouts, devuelven un BOOL que indica un error cuando FALSE. Si se devuelve FALSE, los autores de llamadas interesados en el error deben llamar a GetLastError. Si se llama a GetLastError cuando se realiza la operación con éxito (se devuelve algo pero FALSE), el valor devuelto es impredecible y puede cambiar entre versiones de Windows, Service Packs o incluso entre llamadas a la misma función.
Algunas funciones, como WinHttpConnect, devuelven un pseudoadministrador HINTERNET. Estas funciones son exactamente iguales, salvo que el error se indica devolviendo NULL. Si se devuelve NULL, los autores de llamadas interesados en el error deben llamar a GetLastError. Si se llama a GetLastError cuando se recupera la función (se devuelve algo pero NULL), el valor devuelto es impredecible y puede cambiar entre versiones de Windows, Service Packs o incluso entre llamadas a la misma función.
Algunas funciones, como WinHttpGetProxyResult, devuelven un código de error DWORD y no es necesario llamar a ninguna otra función para obtener más información de error. Para estas funciones, no se debe llamar a GetLastError. Si se llama a GetLastError, independientemente del éxito o error de la función, el valor devuelto es impredecible y puede cambiar entre versiones de Windows, Service Packs o incluso entre llamadas a la misma función.