Compartilhar via


Método CHString::GetBufferSetLength (chstring.h)

[A classe CHString faz parte do WMI Provider Framework que agora é considerado em estado final e nenhum desenvolvimento, melhoria ou atualização adicional estará disponível para problemas não relacionados à segurança que afetarem essas bibliotecas. As APIs de MI devem ser usadas em todos os novos desenvolvimentos.]

O método GetBufferSetLength retorna um ponteiro para o buffer de caracteres interno para o objeto CHString , truncando ou aumentando seu comprimento, se necessário, para corresponder exatamente ao comprimento especificado em nNewLength.

Sintaxe

LPWSTR  throw(CHeap_Exception) GetBufferSetLength(
  int nNewLength
);

Parâmetros

nNewLength

Tamanho exato do buffer de caracteres CHString , medido em caracteres.

Retornar valor

Retorna um ponteiro LPWSTR para o buffer de caracteres do objeto (terminado em NULL).

Comentários

O ponteiro LPWSTR retornado, que não é const, permite a modificação direta do conteúdo CHString .

Se você usar o ponteiro retornado por GetBuffer para alterar o conteúdo da cadeia de caracteres, deverá chamar ReleaseBuffer antes de usar qualquer outro método CHString .

Após uma chamada para ReleaseBuffer, o endereço retornado por GetBufferSetLength pode não ser válido porque operações adicionais de CHString podem fazer com que o buffer CHString seja realocado. Se você não alterar o comprimento da cadeia de caracteres CHString , o buffer não será reatribuído. A memória do buffer é liberada automaticamente quando o objeto CHString é destruído.

Observe que, se você manter o controle do comprimento da cadeia de caracteres por conta própria, não deverá acrescentar o caractere NULL de terminação. No entanto, você deve especificar o comprimento final da cadeia de caracteres ao liberar o buffer com ReleaseBuffer. Se você acrescentar um caractere NULL de terminação ao chamar ReleaseBuffer, deverá passar –1 (o padrão) para o comprimento. O método ReleaseBuffer chama a função wcslen no buffer para determinar seu comprimento.

Exemplos

O exemplo de código a seguir mostra o uso de CHString::GetBufferSetLength.

CHString str;
LPWSTR pstr = str.GetBufferSetLength(3);
pstr[0] = 'I';
pstr[1] = 'c';
pstr[2] = 'e';

// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for you.

str += " hockey is best!";
printf( "str: %S\n", (LPCWSTR)str );

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho chstring.h (inclua FwCommon.h)
Biblioteca FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll

Confira também

CHString

CHString::GetBuffer

CHString::ReleaseBuffer