Gestion des erreurs dans WinHTTP

Toutes les fonctions de l’API WinHTTP ne signalent pas les erreurs de la même façon.

Certaines fonctions, telles que WinHttpSetTimeouts, retournent un BOOL qui indique l’échec lorsque false. Si FALSE est retourné, les appelants intéressés par l’erreur doivent appeler GetLastError. Si GetLastError est appelé lorsque la fonction a réussi (retourné quelque chose sauf FALSE), la valeur retournée est imprévisible et peut changer entre les versions de Windows, les Service Packs ou même entre les appels à la même fonction.

Certaines fonctions, telles que WinHttpConnect, retournent un pseudo-handle HINTERNET . Ces fonctions sont exactement les mêmes, sauf que l’échec est indiqué en retournant NULL. Si null est retourné, les appelants intéressés par l’erreur doivent appeler GetLastError. Si GetLastError est appelé lorsque la fonction a réussi (retourné autre chose que NULL), la valeur retournée est imprévisible et peut changer entre les versions de Windows, les Service Packs ou même entre les appels à la même fonction.

Certaines fonctions, telles que WinHttpGetProxyResult, retournent un code d’erreur DWORD et il n’est pas nécessaire d’appeler d’autres fonctions pour obtenir plus d’informations sur l’erreur. Pour ces fonctions, GetLastError ne doit pas être appelé. Si GetLastError est appelé, quelle que soit la réussite ou l’échec de la fonction, la valeur retournée est imprévisible et peut changer entre les versions de Windows, les Service Packs ou même entre les appels à la même fonction.