Delen via


Berichtbestanden

Elke gebeurtenisbron moet berichtbestanden registreren die beschrijvingstekenreeksen bevatten voor elke gebeurtenis-id, gebeurteniscategorieen parameter. Registreer deze bestanden in de EventMessageFile, CategoryMessageFileen ParameterMessageFile registerwaarden voor de gebeurtenisbron.

U kunt één berichtbestand maken dat beschrijvingen bevat voor de gebeurtenis-id's, categorieën en parameters, of drie afzonderlijke berichtbestanden maken. De bericht-id's voor al uw berichten moeten uniek zijn, ongeacht of u de berichten in één bestand of drie bestanden opgeeft. Verschillende toepassingen kunnen hetzelfde berichtbestand delen. Zie Message Compilervoor meer informatie over berichtbestanden. Zie Message Text Filesvoor meer informatie over de syntaxis van een berichtbestand.

Voorbeeldberichtbestand

Hier volgt een voorbeeld van een berichtbestand.

; /* --------------------------------------------------------
; 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
.

De toepassing voor gebeurtenisweergave kan de volgende procedure gebruiken om toegang te krijgen tot de berichtreeksen in het bericht-DLL.

Beschrijvingstekenreeksen verkrijgen

  1. Roep de RegOpenKey functie aan om de gebeurtenisbron te openen.
  2. Roep de regQueryValueEx- functie aan om de inhoud van de EventMessageFile waarde voor de gebeurtenisbron te verkrijgen. Dit is de naam van het dll-bestand van het bericht.
  3. Roep de functie LoadLibraryEx aan om het dll-bestand van het bericht te laden dat is bepaald door stap 2.
  4. Roep de FormatMessage--functie aan met de bericht-id om de beschrijving van het DLL-bestand te verkrijgen. (Houd er rekening mee dat de berichten-id's zijn gedefinieerd in de . H-bestand gegenereerd door de berichtcompilator.) De functie FormatMessage vervangt de invoegtekenreeksen met behulp van de argumentwaarden die u doorgeeft, maar vervangt niet de tekenreeksen voor parameterinvoeging; u moet de tekenreeksen voor de parameterinvoeging zelf vervangen voordat u de tekenreeks weergeeft.