<Return[MN]><Top>

NotifyChangeEventLog

Declare Function Api_NotifyChangeEventLog& Lib "advapi32" Alias "NotifyChangeEventLog" (ByVal hEventLog&, ByVal hEvent&)

Declare Function NotifyChangeEventLog Lib "advapi32" Alias "NotifyChangeEventLog" (ByVal hEventLog As Long, ByVal hEvent As Long) As Long

指定したイベントログファイルへの書き込みが行われたときに通知を受け取るようにする。イベントログファイルにイベントが書き込まれると、指定したイベントオブジェクトがシグナル状態に設定される。

パラメータ
hEventLog
    イベントログファイルのハンドルを指定する。OpenEventLog 関数または OpenBackupEventLog 関数が返すハンドルを使う。
hEvent
    手動リセットイベントオブジェクトのハンドルを指定する。このイベントオブジェクトは、 関数を使って作成する。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    この関数でリモートハンドルを使うことはできない。hEventLog パラメータにリモートコンピュータ上のイベントログのハンドルを指定すると、0 が

    返る。その直後に GetLastError 関数を呼び出すと、ERROR_INVALID_HANDLE が返る。
    hEventLog で指定したログファイルにイベントが書き込まれると、システムによって 関数が呼び出され、hEvent パラメータで指定したイベント

    がシグナル状態に設定される。PulseEvent 関数が呼び出されたときにイベントを待機していないスレッドは通知を受け取らない。そのため、

    通知を待機するスレッドを別に作成する必要がある。
    PulseEvent 関数は、5 秒間に 2 回以上呼び出されることはない。そのため、イベントログの変更が 5 秒間に 2 回以上行われても、その

    うちの 1 つの通知しか受け取らない。
    変更の通知は、イベントログのハンドルを閉じるまで続く。イベントログを閉じるには、CloseEventLog 関数または DeregisterEventSource   

    関数を使う。