次の方法で共有


CAMMsgEvent.WaitMsg メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

メソッドは WaitMsg 、送信されたメッセージのディスパッチ中にイベントが通知されるのを待機します。

構文

BOOL WaitMsg(
   DWORD dwTimeOut = INFINITE
);

パラメーター

dwTimeOut

オプションのタイムアウト値 (ミリ秒単位)。

戻り値

イベントが通知された場合は TRUE 、タイムアウトが発生した場合は FALSE を 返します。

解説

このメソッドは、PeekMessage 関数を呼び出してメッセージを処理します。 イベントの待機中にスレッドがメッセージを処理する必要がある場合は、 CAMEvent::Wait の代わりにこのメソッドを呼び出します。 スレッドがメッセージを処理せず、別のスレッドがメッセージを送信すると、デッドロックが発生する可能性があります。

たとえば、スレッドを作成し、スレッドが初期化されるまでブロックするとします。 スレッドが SendMessage 関数を呼び出してウィンドウにメッセージを送信すると、デッドロックが発生します。 これは、メッセージが処理されるまで SendMessage が返されないためです。 WaitMsg を呼び出すと、SendMessage 呼び出しが返され、デッドロックが回避されます。

要件

要件
ヘッダー
Wxutil.h (include Streams.h)
ライブラリ
Strmbase.lib (小売ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

CAMMsgEvent クラス