Bagikan melalui


File Pesan

Setiap sumber peristiwa harus mendaftarkan file pesan yang berisi string deskripsi untuk setiap pengidentifikasi peristiwa, kategori peristiwa, dan parameter. Daftarkan file-file ini di nilai registri EventMessageFile, CategoryMessageFile, dan ParameterMessageFile untuk sumber peristiwa.

Anda dapat membuat satu file pesan yang berisi deskripsi untuk pengidentifikasi peristiwa, kategori, dan parameter, atau membuat tiga file pesan terpisah. Pengidentifikasi pesan untuk semua pesan Anda harus unik apakah Anda menentukan pesan dalam satu file atau tiga file. Beberapa aplikasi dapat berbagi file pesan yang sama. Untuk informasi selengkapnya tentang file pesan, lihat Pengkompilasi Pesan. Untuk detail tentang sintaks file pesan, lihat File Teks Pesan.

Contoh File Pesan

Berikut ini adalah contoh file pesan.

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

Aplikasi tampilan peristiwa dapat menggunakan prosedur berikut untuk mendapatkan akses ke string pesan di DLL pesan.

Untuk mendapatkan string deskripsi

  1. Panggil fungsi RegOpenKey untuk membuka sumber kejadian.
  2. Panggil fungsi RegQueryValueEx untuk mendapatkan konten nilai EventMessageFile untuk sumber peristiwa, yang merupakan nama DLL pesan.
  3. Panggil fungsi LoadLibraryEx untuk memuat DLL pesan yang ditentukan oleh langkah 2.
  4. Panggil fungsi FormatMessage dengan pengidentifikasi pesan untuk mendapatkan deskripsi dari DLL. (Perhatikan bahwa pengidentifikasi pesan ditentukan dalam . File H yang dihasilkan oleh pengkompilasi pesan.) Fungsi FormatMessage akan menggantikan string penyisipan menggunakan nilai argumen yang Anda lewati tetapi tidak akan menggantikan string penyisipan parameter; Anda harus mengganti string penyisipan parameter sendiri sebelum menampilkan string.