Partager via


HINTERNET Handles

Cette section contient des informations sur les handles utilisés par les fonctions WinINet et la hiérarchie dans laquelle elles fonctionnent.

À propos des handles HINTERNET

Les handles créés et utilisés par les fonctions WinINet sont de type HINTERNET. Les fonctions WinINet retournent des handles HINTERNET qui ne sont pas interchangeables avec d’autres types de handle. Par conséquent, ils ne peuvent pas être utilisés avec des fonctions telles que ReadFile ou CloseHandle. De même, d’autres types de handle ne peuvent pas être utilisés avec les fonctions WinINet. Par exemple, un handle retourné par CreateFile ne peut pas être passé à InternetReadFile.

La fonction InternetCloseHandle ferme les handles de type HINTERNET. Notez que les valeurs de handle sont rapidement recyclées ; par conséquent, si un handle est fermé et qu’un nouveau handle est généré immédiatement, il y a de bonnes chances que le nouveau handle ait la même valeur que le handle qui vient de se fermer.

Gérer la hiérarchie

Les handles HINTERNET sont conservés dans une hiérarchie d’arborescence. Le handle retourné par la fonction InternetOpen est le nœud racine. Les handles retournés par la fonction InternetConnect occupent le niveau suivant. Les handles retournés par les fonctions FtpOpenFile, FtpFindFirstFile et HttpOpenRequest sont les nœuds feuilles.

Windows XP et Windows Server 2003 R2 et versions antérieures : Les handles retournés par , GopherOpenFile et GopherFindFirstFile sont également des nœuds feuilles.

Le diagramme suivant illustre la hiérarchie des handles HINTERNET . Chaque zone du diagramme représente une fonction qui retourne un handle HINTERNET .

fonctions qui créent des handles

Au niveau supérieur se trouve la fonction InternetOpen , qui crée le handle racine. Le niveau suivant contient les fonctions InternetOpenUrl et InternetConnect . Les fonctions qui utilisent le handle retourné par InternetConnect constituent le dernier niveau.

Le diagramme suivant montre les fonctions qui dépendent du handle créé par InternetOpenUrl. Les zones ombrées représentent des fonctions qui retournent des handles HINTERNET , tandis que les zones simples représentent des fonctions qui utilisent le handle HINTERNET créé par la fonction associée.

fonctions qui utilisent le handle internetopenurl

Les fonctions InternetQueryDataAvailable, InternetReadFile et InternetSetFilePointer utilisent le handle HINTERNET créé par InternetOpenUrl.

Hiérarchie FTP

Le diagramme suivant montre les fonctions FTP qui dépendent du handle de session FTP retourné par InternetConnect. Les zones ombrées représentent des fonctions qui retournent des handles HINTERNET , tandis que les zones simples représentent des fonctions qui utilisent le handle HINTERNET créé par la fonction dont elles dépendent.

fonctions qui utilisent le handle de session ftp

Les fonctions FtpCreateDirectory, FtpDeleteFile, FtpGetCurrentDirectory, FtpGetFile, FtpPutFile, FtpRemoveDirectory, FtpRenameFile et FtpSetCurrentDirectory utilisent toutes le handle HINTERNET créé par InternetConnect.

Le diagramme suivant montre les deux fonctions FTP qui retournent des handles et les fonctions qui en dépendent. Les zones ombrées représentent des fonctions qui retournent des handles HINTERNET , tandis que les zones simples représentent des fonctions qui utilisent le handle HINTERNET créé par la fonction dont elles dépendent.

fonctions qui utilisent le handle de ftpopen et ftpfindfirstfile

La fonction InternetFindNextFile dépend du handle créé par FtpFindFirstFile, tandis qu’InternetReadFile et InternetWriteFile utilisent le handle créé par FtpOpenFile.

Hiérarchie HTTP

Le diagramme suivant montre les relations entre les fonctions utilisées pour le protocole HTTP. Les zones ombrées représentent des fonctions qui retournent des handles HINTERNET , tandis que les zones simples représentent des fonctions qui utilisent le handle HINTERNET créé par la fonction dont elles dépendent.

fonctions qui utilisent le handle de httpopenrequest

Les fonctions HttpAddRequestHeaders, HttpQueryInfo, HttpSendRequest, HttpSendRequestEx et InternetErrorDlg dépendent du handle créé par HttpOpenRequest.

Le diagramme suivant montre les fonctions qui utilisent le handle HINTERNET créé par HttpOpenRequest après son envoi par HttpSendRequest. Les zones ombrées représentent des fonctions qui retournent des handles HINTERNET , tandis que les zones simples représentent des fonctions qui utilisent le handle HINTERNET créé par la fonction dont elles dépendent.

fonctions qui utilisent le handle après httpsendrequest

Une fois que HttpSendRequest a utilisé le handle retourné par HttpOpenRequest, il peut être utilisé par InternetQueryDataAvailable, InternetReadFile et InternetSetFilePointer.

fonctions qui utilisent le handle après httpsendrequestex

Une fois que HttpSendRequestEx a utilisé le handle retourné par HttpOpenRequest, le handle peut être utilisé par HttpEndRequest, InternetReadFileEx et InternetWriteFile. Une fois HttpEndRequest appelé, le handle peut être utilisé par InternetReadFile, InternetSetFilePointer et InternetQueryDataAvailable.

Notes

WinINet ne prend pas en charge les implémentations de serveur. En outre, il ne doit pas être utilisé à partir d’un service. Pour les implémentations de serveur ou les services, utilisez Microsoft Windows HTTP Services (WinHTTP).