Section courante

A propos

Section administrative du site

 Langage  Elément  Programmation  Compilateur  IDE  Outils  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Type de données
Structures de données
Constantes
EXE, DLL et modules pour Windows
API pour Windows
advapi32.dll
comctl32.dll
dlcapi.dll
gdi32.dll
kernel32.dll
lz32.dll
mpr.dll
opengl32.dll
penwin32.dll
shell32.dll
user32.dll
version.dll
winmm.dll
winspool.drv
Prototype
Géométrie
Treillis
Borland C++
C++Builder
IBM VisualAge C++
MinGW C/C++
Open Watcom C/C++
Visual C++
Visual C++ .NET
Visual Studio
OllyDbg
OSForensics
ProcDump
PSExec
PWDump2
SoftICE
Termes et vocabulaires
Bibliographie
Préface
Notes légal
Dictionnaire
Recherche

FormatMessageA

kernel32.dll Format de message
 

Syntaxe

DWORD FormatMessageA( DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPTSTR lpBuffer, DWORD nSize, va_list * Arguments );

Paramètres

Nom Description
dwFlags Ce paramètre contient un ensemble de drapeaux de bits spécifiant les aspects du processus de formatage et comment interpréter le paramètre lpSource. L'octet de poids faible de dwFlags spécifie comment la fonction gère les sauts de ligne dans le tampon de sortie. L'octet de poids faible peut également spécifier la largeur maximale d'une ligne de sortie formatée. Vous pouvez spécifier une combinaison des drapeaux de bits suivants :
Valeur Description
FORMAT_MESSAGE_ALLOCATE_BUFFER Cette valeur permet d'indiquer que le paramètre lpBuffer est un pointeur sur un pointeur PVOID et que le paramètre nSize spécifie le nombre minimal d'octets (version ANSI) ou de caractères (version Unicode) à allouer à un tampon de message de sortie. La fonction alloue un tampon suffisamment grand pour contenir le message formaté et place un pointeur sur le tampon alloué à l'adresse spécifiée par lpBuffer. L'appelant doit utiliser la fonction LocalFree pour libérer le tampon lorsqu'il n'est plus nécessaire.
FORMAT_MESSAGE_IGNORE_INSERTS Cette valeur permet d'indiquer que les séquences d'insertion dans la définition de message doivent être ignorées et transmises au tampon de sortie sans aucune modification. Ce drapeau est utile pour récupérer un message pour un formatage ultérieur. Si ce drapeau est défini, le paramètre Arguments est ignoré.
FORMAT_MESSAGE_FROM_STRING Cette valeur permet d'indiquer que lpSource est un pointeur sur une définition de message terminée par un zéro. La définition du message peut contenir des séquences d'insertion, tout comme le texte du message dans une ressource de table de messages. Ne peut pas être utilisé avec FORMAT_MESSAGE_FROM_HMODULE ou FORMAT_MESSAGE_FROM_SYSTEM.
FORMAT_MESSAGE_FROM_HMODULE Cette valeur permet d'indiquer que lpSource est un descripteur de module contenant la ou les ressources de la table de messages à rechercher. Si l'identificateur lpSource est NULL, le fichier image d'application du processus en cours sera recherché. Ne peut pas être utilisé avec FORMAT_MESSAGE_FROM_STRING.
FORMAT_MESSAGE_FROM_SYSTEM Cette valeur permet d'indiquer que la fonction doit rechercher le message demandé dans la ou les ressources de la table des messages système. Si ce drapeau est spécifié avec FORMAT_MESSAGE_FROM_HMODULE, la fonction recherche dans la table des messages système si le message n'est pas trouvé dans le module spécifié par lpSource. Ne peut pas être utilisé avec FORMAT_MESSAGE_FROM_STRING. Si ce drapeau est spécifié, une application peut transmettre le résultat de la fonction GetLastError pour extraire le texte du message pour une erreur définie par le système.
FORMAT_MESSAGE_ARGUMENT_ARRAY Cette valeur permet d'indiquer que le paramètre Arguments n'est pas une structure va_list, mais simplement un pointeur sur un tableau de valeurs 32 bits représentant les paramètres.
L'octet de poids faible de dwFlags peut spécifier la largeur maximale d'une ligne de sortie formatée. Utilisez la constante FORMAT_MESSAGE_MAX_WIDTH_MASK et les opérations booléennes au niveau du bit pour définir et récupérer cette valeur de largeur maximale. Le tableau suivant montre comment FormatMessage interprète la valeur de l'octet de poids faible :
Valeur Description
0 Cette valeur permet d'indiquer qu'il n'y a pas de restrictions de largeur de ligne en sortie. La fonction entrepose les sauts de ligne contenus dans le texte de définition du message dans le tampon de sortie.
Une valeur non nulle autre que FORMAT_MESSAGE_MAX_WIDTH_MASK La valeur différente de zéro correspond au nombre maximal de caractères dans une ligne de sortie. La fonction ignore les sauts de ligne réguliers dans le texte de définition du message. La fonction ne divise jamais une chaîne de caractères délimitée par un espace blanc en sauts de ligne. La fonction entrepose les sauts de ligne codés en dur dans le texte de définition du message dans le tampon de sortie. Les sauts de ligne codés en dur sont codés avec la séquence d'échappement %n.
FORMAT_MESSAGE_MAX_WIDTH_MASK Cette valeur permet d'indiquer que la fonction ignore les sauts de ligne réguliers dans le texte de définition du message. La fonction entrepose les sauts de ligne codés en dur dans le texte de définition du message dans le tampon de sortie. La fonction ne génère aucun nouveau saut de ligne.
lpSource Ce paramètre permet d'indiquer l'emplacement de la définition du message. Le type de ce paramètre dépend des paramètres définis dans le paramètre dwFlags :
Valeur Description
FORMAT_MESSAGE_FROM_HMODULE Cette valeur permet d'indiquer que lpSource est un hModule du module contenant la table de messages à rechercher.
FORMAT_MESSAGE_FROM_STRING Cette valeur permet d'indiquer que lpSource est un LPTSTR pointant vers un texte de message non formaté. Il sera analysé pour les insertions et formaté en conséquence.
Si aucun de ces drapeaux n'est défini dans le paramètre dwFlags, le paramètre lpSource est ignoré.
dwMessageId Ce paramètre permet d'indiquer l'identificateur de message 32 bits du message demandé. Ce paramètre est ignoré si dwFlags inclut FORMAT_MESSAGE_FROM_STRING.
dwLanguageId Ce paramètre permet d'indiquer l'identificateur de langue 32 bits du message demandé. Ce paramètre est ignoré si dwFlags inclut FORMAT_MESSAGE_FROM_STRING. Si vous passez un LANGID spécifique dans ce paramètre, FormatMessageA renverra un message pour ce LANGID uniquement. Si la fonction ne peut pas trouver un message pour cette LANGID, elle retourne ERROR_RESOURCE_LANG_NOT_FOUND. Si vous transmettez 0, FormatMessageA recherche un message pour les LANGID dans l'ordre suivant : Langue neutre, LANGID du processus léger, basé sur les paramètres régionaux du processus léger, LANGID par défaut de l'utilisateur, basé sur la valeur des paramètres régionaux par défaut de l'utilisateur, LANGID par défaut du système, basé sur la valeur des paramètres régionaux par défaut du système, et l'anglais américain. Si FormatMessage ne trouve aucun message pour aucun des LANGID ci-dessus, il renvoie toute chaîne de caractères de message de langue présente. Si même cela échoue, il retourne ERROR_RESOURCE_LANG_NOT_FOUND.
lpBuffer Ce paramètre permet de pointeur vers un tampon pour le message formaté (et terminé par un caractère nul). Si dwFlags inclut FORMAT_MESSAGE_ALLOCATE_BUFFER, la fonction alloue un tampon à l'aide de la fonction LocalAlloc et place l'adresse du tampon à l'adresse spécifiée dans lpBuffer.
nSize Ce paramètre permet d'indiquer si le drapeau FORMAT_MESSAGE_ALLOCATE_BUFFER n'est pas défini, ce paramètre spécifie le nombre maximal d'octets (version ANSI) ou de caractères (version Unicode) pouvant être entreposés dans le tampon de sortie. Si FORMAT_MESSAGE_ALLOCATE_BUFFER est défini, ce paramètre spécifie le nombre minimal d'octets ou de caractères à allouer pour un tampon de sortie.
Arguments Ce paramètre permet de pointer vers un tableau de valeurs 32 bits utilisées comme valeurs d'insertion dans le message mis en forme. %1 dans la chaîne de caractères de format indique la première valeur du tableau Arguments; %2 indique le deuxième paramètre;.... L'interprétation de chaque valeur 32 bits dépend des informations de formatage associées à l'insertion dans la définition du message. La valeur par défaut consiste à traiter chaque valeur en tant que pointeur sur une chaîne de caractères terminée par un caractère NULL. Par défaut, le paramètre Arguments est du type va_list *, étant un type de données spécifique au langage et à la mise en oeuvre permettant de décrire un nombre variable de paramètres. Si vous n'avez pas de pointeur de type va_list *, spécifiez le drapeau FORMAT_MESSAGE_ARGUMENT_ARRAY et transmettez un pointeur à un tableau de valeurs 32 bits. Ces valeurs sont entrées dans le message sous la forme de valeurs d'insertion. Chaque insertion doit avoir un élément correspondant dans le tableau.

Retour

Valeur Description
0 Cette valeur permet d'indiquer que la fonction a échoué. Pour obtenir des informations d'erreur étendues, appelez la fonction GetLastError.
0 != Ces valeurs permettent d'indiquer que l'opération a réussi. Ces valeurs indique le nombre d'octets (version ANSI) ou de caractères (version Unicode) entreposés dans le tampon de sortie, à l'exclusion du caractère NULL final.

Description

Cette fonction permet de demander un message affecté par un certain format. La fonction nécessite une définition de message en entrée. La définition du message peut provenir d'un tampon transmis à la fonction. Il peut provenir d'une ressource de table de messages d'un module déjà chargé. Ou encore, l'appelant peut demander à la fonction de rechercher la ou les ressources de la table des messages du système pour la définition du message. La fonction trouve la définition du message dans une ressource de table de messages en fonction d'un identifiant de message et d'un identifiant de langue. La fonction copie le texte du message formaté dans un tampon de sortie, en traitant toutes les séquences d'insertion incorporées, si nécessaire.

Remarque

Voir également

Langage de programmation - C pour Windows - API de Windows - LoadStringA
Langage de programmation - C pour Windows - API de Windows - LocalFree

PARTAGER CETTE PAGE SUR
Dernière mise à jour : Dimanche, le 6 décembre 2015