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 |