Compartilhar via


Método CHString::FormatMessageW(LPCWSTR,...) (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(
  LPCWSTR lpszFormat,
  ...     
);

Parâmetros

lpszFormat

Um ponteiro para a cadeia de caracteres de controle formal. A cadeia de caracteres de controle é verificada quanto a inserções e formatada adequadamente. A cadeia de caracteres de formato é semelhante à função de runtime, cadeias de caracteres de formato de estilo printf, exceto que printf permite que os parâmetros sejam inseridos em uma ordem arbitrária.

...

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 mais informações e uma descrição dessas sequências de escape e seus significados, consulte o tópico função FormatMessage .

Nota Para reduzir a vulnerabilidade 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