Использование строковых буферов
Функции, возвращающие строки, содержат входной параметр, lpszBufferи параметр размера, lpdwBufferLength. Хотя lpszBuffer может быть NULL, lpdwBufferLength должен быть допустимым указателем на переменную DWORD. Если входной буфер, на который указывает lpszBuffer, null или слишком мал для хранения выходной строки, функция завершается ошибкой и GetLastError возвращает ERROR_INSUFFICIENT_BUFFER. Переменная, на которую указывает lpdwBufferLength содержит число, представляющее число байтов, которое требуется для возврата запрошенной строки, включая null конца. Приложение должно выделить буфер этого размера, установить значение переменной, на которую указывает указатель lpdwBufferLength, и повторно отправить запрос. Если размер буфера достаточно для получения запрошенной строки, строка копируется в выходной буфер с null и функция возвращает признак успешности. Переменная, на которую указывает lpdwBufferLength, теперь содержит количество символов, хранящихся в буфере, за исключением нулевого символа-заверешителя.
Заметка
WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать в качестве сервиса. Для реализации серверных систем или использования служб воспользуйтесь Microsoft Windows HTTP Services (WinHTTP) .