次の方法で共有


CMsgThread.ThreadMessageProc メソッド

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

要求を処理します。 これは純粋な仮想メンバー関数です。

構文

virtual LRESULT ThreadMessageProc(
   UINT     uMsg,
   DWORD    dwFlags,
   LPVOID   lpParam,
   CAMEvent *pEvent
);

パラメーター

uMsg

要求コード。

dwFlags

要求する省略可能なフラグ パラメーター。

lpParam

追加データまたは戻りデータ ブロックへの省略可能なポインター。

pEvent

イベント オブジェクトへの省略可能なポインター。

戻り値

0 以外の戻り値を指定すると、スレッドは終了します。 終了要求が最近処理されていない限り、0 を返します。

解説

この純粋仮想関数は、派生クラスでオーバーライドする必要があります。 これは、CMsgThread::P utThreadMsg メンバー関数の呼び出しによってキューに入れる要求ごとに 1 回呼び出されます。

メンバー関数は、4 つのパラメーターを定義します。 通常、 uMsg パラメーターを使用して要求を示します。他の 3 つのパラメーターはオプションの追加パラメーターになります。 呼び出し元のアプリケーションは、アプリケーションで必要な場合は、pEvent パラメーターの CAMEvent オブジェクトへのポインターを指定できます。 次のような式を使用して、イベントの処理後にこのイベントを設定する必要があります。

pEvent->SetEvent

ワーカー スレッドに終了を指示するには、1 つの要求コードを確保する必要があります。 この要求を受信したら、このメンバー関数から 1 を返します。 ワーカー スレッドを終了しない場合は、0 を返します。

要件

要件
ヘッダー
Msgthrd.h (Streams.h を含む)
ライブラリ
Strmbase.lib (製品版ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

CMsgThread クラス