CAMMsgEvent.WaitMsg メソッド
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは WaitMsg
、送信されたメッセージのディスパッチ中にイベントが通知されるのを待機します。
構文
BOOL WaitMsg(
DWORD dwTimeOut = INFINITE
);
パラメーター
-
dwTimeOut
-
オプションのタイムアウト値 (ミリ秒単位)。
戻り値
イベントが通知された場合は TRUE 、タイムアウトが発生した場合は FALSE を 返します。
解説
このメソッドは、PeekMessage 関数を呼び出してメッセージを処理します。 イベントの待機中にスレッドがメッセージを処理する必要がある場合は、 CAMEvent::Wait の代わりにこのメソッドを呼び出します。 スレッドがメッセージを処理せず、別のスレッドがメッセージを送信すると、デッドロックが発生する可能性があります。
たとえば、スレッドを作成し、スレッドが初期化されるまでブロックするとします。 スレッドが SendMessage 関数を呼び出してウィンドウにメッセージを送信すると、デッドロックが発生します。 これは、メッセージが処理されるまで SendMessage が返されないためです。 WaitMsg を呼び出すと、SendMessage 呼び出しが返され、デッドロックが回避されます。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|