Soubory zpráv
Každý zdroj událostí by měl registrovat soubory zpráv, které obsahují popisovací řetězce pro každý identifikátor události , kategorie událostía parametr. Zaregistrujte tyto soubory v EventMessageFile, CategoryMessageFilea ParameterMessageFile hodnoty registru pro zdroj událostí.
Můžete vytvořit jeden soubor zprávy, který obsahuje popisy identifikátorů událostí, kategorií a parametrů, nebo vytvořit tři samostatné soubory zpráv. Identifikátory zpráv pro všechny zprávy by měly být jedinečné bez ohledu na to, jestli zadáte zprávy v jednom souboru nebo třech souborech. Stejný soubor zpráv může sdílet několik aplikací. Další informace o souborech zpráv naleznete v tématu Message Compiler. Podrobnosti o syntaxi souboru zprávy naleznete v tématu Textové soubory zprávy.
Ukázkový soubor zprávy
Následuje příklad souboru zprávy.
; /* --------------------------------------------------------
; HEADER SECTION
;*/
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
;
;
FacilityNames=(System=0x0:FACILITY_SYSTEM
Runtime=0x2:FACILITY_RUNTIME
Stubs=0x3:FACILITY_STUBS
Io=0x4:FACILITY_IO_ERROR_CODE
)
;
;/* ------------------------------------------------------------------
; MESSAGE DEFINITION SECTION
;*/
MessageIdTypedef=WORD
MessageId=0x1
SymbolicName=CAT_1
Language=English
Category 1
.
MessageId=0x2
SymbolicName=CAT_2
Language=English
Category 2
.
MessageId=0x3
SymbolicName=CAT_3
Language=English
Category 3
.
MessageIdTypedef=DWORD
MessageId=0x100
Severity=Error
Facility=Runtime
SymbolicName=MSG_COMMAND_ERR
Language=English
The command is incorrect.
.
MessageId=0x101
Severity=Success
Facility=System
SymbolicName=MSG_STRIKE_ANY_KEY
Language=English
Press any key to continue . . . %0
.
MessageId=0x102
Severity=Error
Facility=System
SymbolicName=MSG_FILE_BAD_CONTENTS
Language=English
File %1 contains %2, which is in error
.
MessageId=0x103
Severity=Warning
Facility=System
SymbolicName=MSG_RETRYS
Language=English
There have been %1 retrys with %2 success! Disconnect from
the server and retry later.
.
MessageId=0x104
Severity=Informational
Facility=System
SymbolicName=MSG_INSERT_DISK
Language=English
Insert %%1000 in %%1001 and hit any key when ready...
.
;/* Insert string parameters */
;
MessageId=1000
Severity=Success
Facility=System
SymbolicName=DISK
Language=English
disk%0
.
MessageId=1001
Severity=Success
Facility=System
SymbolicName=DRIVE
Language=English
drive%0
.
Aplikace pro zobrazení událostí může pomocí následujícího postupu získat přístup k řetězce zpráv v knihovně DLL zpráv.
Získání popisových řetězců
- Voláním funkce RegOpenKey otevřete zdroj událostí.
- Volání RegQueryValueEx funkce získat obsah EventMessageFile hodnotu pro zdroj události, což je název knihovny DLL zprávy.
- Voláním funkce LoadLibraryEx načtěte knihovnu DLL zpráv určenou krokem 2.
- Volání FormatMessage funkce s identifikátorem zprávy získat popis z knihovny DLL. (Všimněte si, že identifikátory zpráv jsou definovány v . Soubor H vygenerovaný kompilátorem zpráv.) Funkce FormatMessage nahradí řetězce vložení hodnotami argumentů, které předáte, ale nenahradí řetězce vložení parametru; Před zobrazením řetězce musíte nahradit řetězce vložení parametru.