Utilisation de mémoires tampons de chaîne
Les fonctions qui retournent des chaînes contiennent un paramètre d’entrée, lpszBuffer, et un paramètre de taille, lpdwBufferLength. Bien que lpszBuffer puisse avoir la valeur NULL, lpdwBufferLength doit être un pointeur valide vers une variable DWORD . Si la mémoire tampon d’entrée pointée par lpszBuffer est NULL ou trop petite pour contenir la chaîne de sortie, la fonction échoue et GetLastError retourne ERROR_INSUFFICIENT_BUFFER. La variable pointée vers lpdwBufferLength contient un nombre qui représente le nombre d’octets requis par la fonction pour renvoyer la chaîne demandée, y compris la terminaison null . L’application doit allouer une mémoire tampon de cette taille, définir la variable pointée par lpdwBufferLength sur cette valeur et soumettre à nouveau la demande. Si la taille de la mémoire tampon est suffisante pour recevoir la chaîne demandée, la chaîne est copiée dans la mémoire tampon de sortie avec un terminateur null et la fonction retourne une indication de réussite. La variable pointée par lpdwBufferLength contient désormais le nombre de caractères stockés dans la mémoire tampon, à l’exclusion de la terminaison null .
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).