Метод CHString::FormatMessageW(LPCWSTR,...) (chstring.h)

[Класс CHString является частью платформы поставщика WMI, которая теперь рассматривается в окончательном состоянии, и никакие дальнейшие разработки, улучшения или обновления не будут доступны для проблем, не связанных с безопасностью, влияющих на эти библиотеки. API mi mi следует использовать для всех новых разработок.]

Метод FormatMessageW форматирует строку сообщения.

Синтаксис

void  throw(CHeap_Exception) FormatMessageW(
  LPCWSTR lpszFormat,
  ...     
);

Параметры

lpszFormat

Указатель на формальную строку элемента управления. Строка элемента управления сканируется на наличие вставок и соответствующим образом отформатирована. Строка формата похожа на функцию времени выполнения, строки формата в стиле printf, за исключением того, что printf позволяет вставлять параметры в произвольном порядке.

...

Список аргументов.

Возвращаемое значение

CHeap_Exception

Комментарии

Метод FormatMessageW требует определения сообщения в качестве входных данных. Определение сообщения определяется с помощью lpszFormat или из строкового ресурса, определяемого nFormatID. Метод копирует отформатированный текст сообщения в строку CHString, обрабатывая все внедренные последовательности вставки по запросу.

Каждая вставка должна иметь соответствующий параметр, следующий за параметром lpszFormat или nFormatID . В тексте сообщения поддерживается несколько escape-последовательностей для динамического форматирования сообщения. Дополнительные сведения и описание этих escape-последовательностей и их значения см. в разделе Функция FormatMessage .

Примечание Чтобы снизить уязвимость системы безопасности, всегда используйте строку форматирования для FormatMessageW. Например, FormatMessageW(input) можно использовать, а FormatMessageW("%s", input) — нет. Никогда не используйте предоставленную пользователем строку для строки форматирования. Если строка формата хранится для таких целей, как локализация, убедитесь, что она защищена от несанкционированного доступа на запись. Если функция выполняет запись в строку, а не в стандартные выходные данные, может потребоваться избежать использования в строке форматирования символа "%s".

Примеры

В следующем примере кода показано, как использовать 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!");

Требования

Требование Значение
Заголовок chstring.h

См. также раздел

CHString

CHString::Format