MÉTHODE CHString ::FormatMessageW(LPCWSTR,...) (chstring.h)
[La classe CHString fait partie de l’infrastructure du fournisseur WMI, qui est maintenant considérée dans l’état final, et aucun développement, amélioration ou mise à jour supplémentaire ne sera disponible pour les problèmes non liés à la sécurité affectant ces bibliothèques. Les API MI doivent être utilisées pour tout nouveau développement.]
La méthode FormatMessageW met en forme une chaîne de message.
Syntaxe
void throw(CHeap_Exception) FormatMessageW(
LPCWSTR lpszFormat,
...
);
Paramètres
lpszFormat
Pointeur vers la chaîne de contrôle formelle. La chaîne de contrôle est analysée pour les insertions et mise en forme en conséquence. La chaîne de format est similaire à la fonction d’exécution, les chaînes de format de style printf, sauf que printf permet d’insérer les paramètres dans un ordre arbitraire.
...
Liste d’arguments.
Valeur retournée
CHeap_Exception
Remarques
La méthode FormatMessageW nécessite une définition de message comme entrée. La définition du message est déterminée par lpszFormat, ou à partir de la ressource de chaîne identifiée par nFormatID. La méthode copie le texte du message mis en forme dans la chaîne CHString , en traitant toutes les séquences d’insertion incorporées si nécessaire.
Chaque insertion doit avoir un paramètre correspondant qui suit le paramètre lpszFormat ou nFormatID . Dans le texte du message, plusieurs séquences d’échappement sont prises en charge pour la mise en forme dynamique du message. Pour plus d’informations et une description de ces séquences d’échappement et de leurs significations, consultez la rubrique De la fonction FormatMessage .
Note Pour réduire la vulnérabilité de sécurité, utilisez toujours une chaîne de format pour FormatMessageW. Par exemple, FormatMessageW(input) est exploitable, et FormatMessageW(« %s », input) ne l’est pas. N’utilisez jamais de chaîne fournie par l’utilisateur pour la chaîne de format. Si votre chaîne de format est stockée à des fins telles que la localisation, assurez-vous que la chaîne est protégée contre tout accès en écriture non autorisé. Si votre fonction écrit dans une chaîne plutôt que dans une sortie standard, vous devrez peut-être éviter d’utiliser un « %s » de fin dans la chaîne de format.
Exemples
L’exemple de code suivant montre comment utiliser 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!");
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | chstring.h |