CHString::FormatMessageW(UINT,...)-Methode (chstring.h)

[Die Klasse CHString ist Teil des WMI-Provider-Frameworks, das nun als endgültig betrachtet wird, und es sind keine weiteren Entwicklungen, Verbesserungen oder Updates für nicht sicherheitsrelevante Probleme verfügbar, die diese Bibliotheken betreffen. Die MI-APIs sollten für alle Neuentwicklungen verwendet werden.]

Die FormatMessageW-Methode formatiert eine Nachrichtenzeichenfolge.

Syntax

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

Parameter

nFormatID

Der Zeichenfolgenressourcenbezeichner, der den unformatierten Nachrichtentext enthält.

...

Argumentliste.

Rückgabewert

CHeap_Exception

Hinweise

Die FormatMessageW-Methode erfordert eine Nachrichtendefinition als Eingabe. Die Nachrichtendefinition wird durch lpszFormat oder aus der durch nFormatID identifizierten Zeichenfolgenressource bestimmt. Die -Methode kopiert den formatierten Nachrichtentext in die CHString-Zeichenfolge und verarbeitet bei Bedarf alle eingebetteten Einfügesequenzen.

Jede Einfügung muss über einen entsprechenden Parameter verfügen, der dem lpszFormat- oder nFormatID-Parameter folgt. Innerhalb des Nachrichtentexts werden mehrere Escapesequenzen zum dynamischen Formatieren der Nachricht unterstützt. Eine Beschreibung dieser Escapesequenzen und ihrer Bedeutung finden Sie im Thema der Windows FormatMessage-Funktion .

Hinweis Verwenden Sie immer eine Formatzeichenfolge für FormatMessageW, um die Gefährdung durch Sicherheitsangriffe zu verringern. Beispielsweise ist FormatMessageW(input) ausnutzbar und FormatMessageW("%s", input) nicht. Verwenden Sie niemals eine vom Benutzer bereitgestellte Zeichenfolge für die Formatzeichenfolge. Wenn Ihre Formatzeichenfolge für einen Zweck wie die Lokalisierung gespeichert wird, stellen Sie sicher, dass die Zeichenfolge vor nicht autorisiertem Schreibzugriff geschützt ist. Wenn Ihre Funktion in eine Zeichenfolge anstatt in eine Standardausgabe schreibt, müssen Sie möglicherweise die Verwendung eines nachgestellten "%s" in der Formatzeichenfolge vermeiden.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sie CHString::FormatMessageW verwenden.

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!");

Anforderungen

Anforderung Wert
Header chstring.h

Weitere Informationen

CHString

CHString::Format