Поделиться через


Использование строковых буферов

Функции, возвращающие строки, содержат входной параметр lpszBuffer и параметр size lpdwBufferLength. Хотя lpszBuffer может иметь значение NULL, lpdwBufferLength должен быть допустимым указателем на переменную DWORD . Если входной буфер, на который указывает lpszBuffer , имеет значение NULL или слишком мал для хранения выходной строки, функция завершается ошибкой и GetLastError возвращает ERROR_INSUFFICIENT_BUFFER. Переменная, на которую указывает lpdwBufferLength , содержит число, представляющее количество байтов, необходимых функции для возврата запрошенной строки, включая признак конца null . Приложение должно выделить буфер такого размера, задать для переменной, на которую указывает lpdwBufferLength , это значение, и повторно отправить запрос. Если размер буфера достаточно для получения запрошенной строки, строка копируется в выходной буфер с признаком конца NULL , а функция возвращает указание об успешном выполнении. Переменная, на которую указывает lpdwBufferLength , теперь содержит количество символов, хранящихся в буфере, за исключением признака конца null .

Примечание

WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).