Usando buffers de cadeia de caracteres
As funções que retornam cadeias de caracteres contêm um parâmetro de entrada, lpszBuffer, e um parâmetro size, lpdwBufferLength. Embora lpszBuffer possa ser NULL, lpdwBufferLength deve ser um ponteiro válido para uma variável DWORD. Se o buffer de entrada apontado por lpszBuffer for NULL ou muito pequeno para conter a string de saída, a função falhará e GetLastError devolverá ERROR_INSUFFICIENT_BUFFER. A variável apontada por lpdwBufferLength contém um valor que representa a quantidade de bytes que a função precisa para retornar a cadeia de caracteres solicitada, incluindo o terminador nulo . O aplicativo deve alocar um buffer desse tamanho, definir a variável apontada por lpdwBufferLength a esse valor e reenviar a solicitação. Se o tamanho do buffer for suficiente para receber a cadeia de caracteres solicitada, a cadeia de caracteres será copiada para o buffer de saída com um terminador nulo de e a função retornará uma indicação de sucesso. A variável apontada por lpdwBufferLength agora contém o número de caracteres armazenados no buffer, excluindo o null terminator.
Observação
WinINet não suporta implementações de servidor. Além disso, não deve ser usado a partir de um serviço. Para implementações ou serviços de servidor, use Microsoft Windows HTTP Services (WinHTTP).