Compartilhar via


Método CHString::FormatMessageW(UINT,...) (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 FormatMessageW formata uma cadeia de caracteres de mensagem.

Sintaxe

void  throw(CHeap_Exception) FormatMessageW(
  UINT nFormatID,
  ...  
);

Parâmetros

nFormatID

O identificador de recurso de cadeia de caracteres que contém o texto da mensagem não formatada.

...

Lista de argumentos.

Retornar valor

CHeap_Exception

Comentários

O método FormatMessageW requer uma definição de mensagem como entrada. A definição da mensagem é determinada por lpszFormat ou pelo recurso de cadeia de caracteres identificado por nFormatID. O método copia o texto da mensagem formatada para a cadeia de caracteres CHString , processando todas as sequências de inserção inseridas, se solicitado.

Cada inserção deve ter um parâmetro correspondente que siga o parâmetro lpszFormat ou nFormatID . No texto da mensagem, há suporte para várias sequências de escape para formatar dinamicamente a mensagem. Para obter uma descrição dessas sequências de escape e seus significados, consulte o tópico da função FormatMessage do Windows.

Nota Para reduzir a exposição a ataques de segurança, sempre use uma cadeia de caracteres de formato para FormatMessageW. Por exemplo, FormatMessageW(input) é explorável e FormatMessageW("%s", input) não é. Nunca use uma cadeia de caracteres fornecida pelo usuário para a cadeia de caracteres de formato. Se a cadeia de caracteres de formato estiver armazenada para uma finalidade como localização, verifique se a cadeia de caracteres está protegida contra acesso de gravação não autorizado. Se a função gravar em uma cadeia de caracteres em vez de uma saída padrão, talvez seja necessário evitar o uso de um "%s" à direita na cadeia de caracteres de formato.

Exemplos

O exemplo de código a seguir mostra como usar CHString::FormatMessageW.

CHString str;
int nAsked = 5;
int nAgree = 4;

str.FormatMessageW(L"%1!d! of %2!d! developers agree: Golf is %3%!", 
   nAgree, nAsked, L"Best");
assert(str == L"4 of 5 developers agree: Golf is Best!");

Requisitos

Requisito Valor
Cabeçalho chstring.h

Confira também

CHString

CHString::Format