Meddelandefiler
Varje händelsekälla bör registrera meddelandefiler som innehåller beskrivningssträngar för varje händelseidentifierare, händelsekategorioch parameter. Registrera dessa filer i EventMessageFile, CategoryMessageFileoch ParameterMessageFile registervärden för händelsekällan.
Du kan skapa en meddelandefil som innehåller beskrivningar för händelseidentifierare, kategorier och parametrar eller skapa tre separata meddelandefiler. Meddelandeidentifierarna för alla dina meddelanden bör vara unika oavsett om du anger meddelandena i en fil eller tre filer. Flera program kan dela samma meddelandefil. Mer information om meddelandefiler finns i Message Compiler. Mer information om syntaxen för en meddelandefil finns i Message Text Files.
Exempel på meddelandefil
Följande är en exempelmeddelandefil.
; /* --------------------------------------------------------
; 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
.
Händelsevisningsprogrammet kan använda följande procedur för att få åtkomst till meddelandesträngar i meddelandets DLL.
Hämta beskrivningssträngar
- Anropa funktionen RegOpenKey för att öppna händelsekällan.
- Anropa funktionen RegQueryValueEx för att hämta innehållet i EventMessageFile värde för händelsekällan, som är namnet på meddelandets DLL.
- Anropa funktionen LoadLibraryEx för att läsa in meddelandet DLL som bestäms av steg 2.
- Anropa funktionen FormatMessage med meddelandeidentifieraren för att hämta beskrivningen från DLL:en. (Observera att meddelandeidentifierarna definieras i . H-fil som genereras av meddelandekompilatorn.) Funktionen FormatMessage ersätter insättningssträngarna med de argumentvärden som du skickar, men den ersätter inte parameterinfogningssträngarna. Du måste ersätta parameterinfogningssträngarna själv innan du visar strängen.