次の方法で共有


メッセージ ファイル

イベント ソース は、各 イベント識別子イベント カテゴリおよびパラメーターの説明文字列を含むメッセージ ファイルを登録する必要があります。 これらのファイルを 、イベント ソースの EventMessageFileCategoryMessageFileおよび ParameterMessageFile レジストリ値に登録します。

イベント識別子、カテゴリ、およびパラメーターの説明を含むメッセージ ファイルを 1 つ作成することも、3 つの個別のメッセージ ファイルを作成することもできます。 1 つのファイルまたは 3 つのファイルでメッセージを指定する場合でも、すべてのメッセージのメッセージ識別子は一意である必要があります。 複数のアプリケーションで同じメッセージ ファイルを共有できます。 メッセージ ファイルの詳細については、「 メッセージ コンパイラ」を参照してください。 メッセージ ファイルの構文の詳細については、「メッセージ テキスト ファイル」を参照してください。

メッセージ ファイルの例

メッセージ ファイルの例を次に示します。

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

イベント表示アプリケーションでは、次の手順を使用して、メッセージ DLL 内の メッセージ文字列 にアクセスできます。

説明文字列を取得するには

  1. RegOpenKey 関数を呼び出して、イベント ソースを開きます。
  2. RegQueryValueEx 関数を呼び出して、メッセージ DLL の名前であるイベント ソースの EventMessageFile 値の内容を取得します。
  3. LoadLibraryEx 関数を呼び出して、手順 2 で決定されたメッセージ DLL を読み込みます。
  4. メッセージ識別子を使用して FormatMessage 関数を呼び出して、DLL から説明を取得します。 (メッセージ識別子は で定義されていることに注意してください。メッセージ コンパイラによって生成された H ファイル。 FormatMessage 関数は、渡した引数値を使用して挿入文字列を置き換えますが、パラメーター挿入文字列は置き換えられません。文字列を表示する前に、パラメーター挿入文字列を自分で置き換える必要があります。