HANDLE RegisterEventSource( LPCTSTR ServerName, LPCTSTR SourceName);
本関数はNTで使用可能。
本関数によってオープンしたイベントログをクローズするには、DeregisterEventSourceを使用する。
引数の意味は以下の通り。
ServerName | オープンするイベントログが存在するサーバのUNC名。NULLを指定した場合、ローカルマシンが指定されたものとみなされる。 |
SourceName | イベントのソース名。ReportEventによってイベントを書き込む際にこの情報が参照される。 |
戻り値は、オープンした結果のイベントログのハンドルである。関数の実行に失敗した場合、NULLが返される。
-------------------------------- test.mc -------------------------------- LanguageNames = (English=0x409:MSG00409) LanguageNames = (Japanese=0x411:MSG00411) MessageId = 1 Severity = Error Facility = Application SymbolicName = MSG_MEMORY_ERROR Language = English Memory Error. . Language = Japanese メモリエラー。 . MessageId = 2 Severity = Informational Facility = Application SymbolicName = MSG_FILE_NOT_FOUND Language = English File %1 is not equal to %2. . Language = Japanese ファイル"%1"は"%2"と異なる。 . -------------------------------- test.c -------------------------------- #include "test.h" /* イベントログへ書き込み */ void WriteLog(void) { HANDLE hEventLog; BOOL bResult; char *FileNotFoundArgs[] = { "src.dat", "dest.dat" }; /* イベントログのオープン */ hEventLog = RegisterEventSource(NULL, "Test"); if(hEventLog == NULL) printf("event log can not open.\n"); /* イベントログへ書き込みその1 */ bResult = ReportEvent( hEventLog, EVENTLOG_ERROR_TYPE, 0, MSG_MEMORY_ERROR, NULL, 0, 0, NULL, NULL); if(!bResult) printf("event1 can not write.\n"); /* イベントログへ書き込みその2 */ bResult = ReportEvent( hEventLog, EVENTLOG_INFORMATION_TYPE, 0, MSG_FILE_NOT_FOUND, NULL, 2, 0, FileNotFoundArgs, NULL); if(!bResult) printf("event2 can not write.\n"); /* イベントログのクローズ */ DeregisterEventSource(hEventLog); }