User manual - システムライブラリマニュアルver.1.09(2014年2月12日)

161
3.122 SysWaitForEvent
ドライバ等で発生させるイベントを待機します。
この関数は、Windows API WaitForSingleObject 関数に相当する機能を、Visual Basic および C#でも
利用できるように用意されているものです。このため、C++からは呼び出せません。
[Visual Basic]
Public Shared Function SysWaitForEvent( _
ByVal
EventHandle
As System.IntPtr, _
ByVal
EventName
As String, _
ByVal
TimeOut
As Int32 _
) As Int32
[C#]
public static Int32 SysWaitForEvent(
System.IntPtr
EventHandle
,
string
EventName
,
Int32
TimeOut
)
解説
本関数は、ドライバ等で発生するイベントを待機します。イベントが発生するか、指定したタイムアウト
時間が経過するまで、この関数は戻りません。アプリケーションのメインスレッドとは別のスレッドで呼び
出してください。
待機状態を強制終了させるには、アプリケーションのメインスレッドから SysTerminateWaitEvent関数
を呼
び出してください。強制終了されると、この関数から戻ってきますが、強制終了されたのかどうかは、
戻り値だけでは判別できません。イベントの状態を調べて確認してください。
この関数が必要になるのは、入出力の完了をイベントとして受け取りたい場合です。具体的には、レー
ザスキャナライブラリの OBRSetScanningNotification 関数で、完了通知の方法として「イベント通知」を
指定した場合です。
パラメータ
EventHandle
待機するイベントのハンドルを指定します。EventName で指定する場合は、System.IntPtr.Zero を指
定してください。
EventName
待機するイベントの名前を指定します。EventHandle System.IntPtr.Zero 以外を指定した場合は、
このパラメータは無視されます。
TimeOut
この関数で待機するときのタイムアウト時間を、1 ミリ秒単位で指定します。無限に待機する場合は、
Def.INFINITE-1)」を指定してください。