İleti Dosyaları
Her olay kaynağı her olay tanımlayıcısı için açıklama dizeleri içeren ileti dosyalarını, olay kategorisive parametresikaydedmelidir. Bu dosyaları olay kaynağı için EventMessageFile, CategoryMessageFileve ParameterMessageFile kayıt defteri değerlerine kaydedin.
Olay tanımlayıcıları, kategorileri ve parametreleri için açıklamalar içeren bir ileti dosyası oluşturabilir veya üç ayrı ileti dosyası oluşturabilirsiniz. İletileri tek bir dosyada veya üç dosyada belirtmeniz fark etmeksizin tüm iletilerinizin ileti tanımlayıcıları benzersiz olmalıdır. Birkaç uygulama aynı ileti dosyasını paylaşabilir. İleti dosyaları hakkında daha fazla bilgi için bkz. İleti Derleyicisi. İleti dosyasının söz dizimi hakkında ayrıntılı bilgi için bkz. İleti Metin Dosyaları.
Örnek İleti Dosyası
Aşağıda örnek bir ileti dosyası verilmiştir.
; /* --------------------------------------------------------
; 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
.
Olay görüntüleme uygulaması, ileti DLL'sinde ileti dizelerine erişmek için aşağıdaki yordamı kullanabilir.
açıklama dizelerini almak için
- Olay kaynağını açmak için RegOpenKey işlevini çağırın.
- olay kaynağının EventMessageFile değerinin içeriğini (ileti DLL'sinin adı) almak için RegQueryValueEx işlevini çağırın.
- 2. adımla belirlenen ileti DLL'sini yüklemek için LoadLibraryEx işlevini çağırın.
- Açıklamayı DLL'den almak için ileti tanımlayıcısıyla FormatMessage işlevini çağırın. (İleti tanımlayıcılarının içinde tanımlandığını unutmayın. İleti derleyicisi tarafından oluşturulan H dosyası.) FormatMessage işlevi, geçirdiğiniz bağımsız değişken değerlerini kullanarak ekleme dizelerinin yerini alır, ancak parametre ekleme dizelerinin yerini almayacak; dizesini görüntülemeden önce parametre ekleme dizelerini kendiniz değiştirmeniz gerekir.