Winhttp en mode asynchrone

Description

Bonjour,
WinHttp permet de telecharger des fichiers beaucoup plus rapidement qu'en mode ftp.
C'est le sujet de ce source.
Il utilise le mode asynchrone ce qui n'est pas des plus simple si on n'a pas un
exemple sous la main.
Lisez le fichier lisezmoi.
Quelques macros sont la aussi fort utiles.
La mise au point du source a été un peu laborieuse.
Il vous sera donc nécessaire de procéder a quelques modifs.
Les deux fonctions suivantes ne fonctionnent pas de la meme manière en mode asynchrone
                        • WinHttpQueryDataAvailable
                          • WinHttpReadData

Le lpdwNumberOfBytesRead doit etre remplacé par NULL.
S'il n'est pas NULL on retrouve des détritus dans le fichier téléchargé.

WinHttpCrackUrl est la fonction donnant le numero de port a utilisé dans the WinHttpConnect. (url_components.nPort).
La re-direction des URL échoue si le numéro de port est incorrect.
Dans ce cas WINHTTP_CALLBACK_STATUS_REQUEST_ERROR donne le bon conseil,connection_error.
Pour chaque question posé au serveur,il n'ya réellement qu'un seul évènement a utilisé,c'est a dire:
WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE WinHttpQueryDataAvailable
WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE WinHttpReceiveResponse
WINHTTP_CALLBACK_STATUS_READ_COMPLETE WinHttpReadData
WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE WinHttpSendRequest
WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE WinHttpWriteData
WINHTTP_CALLBACK_STATUS_REQUEST_ERROR Any of the above functions when an error occurs.

La fonction WinHttpReadData utilisé dans WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE doit pouvoir
séxécuter aussi vite que possible et on ne doit pas rajouter trop de code à l'intérieur de l'évènement.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.