次の方法で共有


IAsyncReader::WaitForNext メソッド (strmif.h)

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

メソッドは WaitForNext 、次の保留中の読み取り要求が完了するまで待機します。

構文

HRESULT WaitForNext(
  [in]  DWORD        dwTimeout,
  [out] IMediaSample **ppSample,
  [out] DWORD_PTR    *pdwUser
);

パラメーター

[in] dwTimeout

タイムアウトをミリ秒単位で指定します。 INFINITE 値を使用して無期限に待機する

[out] ppSample

IMediaSample インターフェイス ポインターを受け取る変数のアドレス。

[out] pdwUser

IAsyncReader::Request メソッドで指定された dwUser パラメーターの値を受け取る変数へのポインター。

戻り値

HRESULT 値を返します。 使用可能な値は次のとおりです。

リターン コード 説明
VFW_E_TIMEOUT
タイムアウトが切れているか、ピンがフラッシュされています。
VFW_E_WRONG_STATE
ピンがフラッシュ中です。
E_FAIL
読み取りエラーが発生しました。
S_OK
成功しました。
S_FALSE
ファイルの末尾に達しました。要求よりも少ないバイト数を取得しました。

解説

メソッドが成功した場合、 ppSample パラメーターには、要求されたデータを保持するバッファーを持つメディア サンプルへのポインターが含まれます。 IMediaSample::GetTime メソッドを呼び出し、結果を 10,000,000 で除算して、開始バイトと停止バイトを決定します。 サンプルは順に返される場合があります。 データの処理が完了したら、サンプルをリリースします。

ピンがフラッシュされている場合、メソッドは失敗します。 ただし、 ppSample では空のサンプルが返される場合があります。 *ppSampleNULL 以外の場合は、サンプルを解放して破棄します。 詳細については、「 IAsyncReader::BeginFlush」を参照してください。

読み取りエラーが発生した場合、ソース フィルターはフィルター グラフ マネージャーにエラー イベントを送信します。呼び出し元はエラーを通知する必要はありません。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

関連項目

エラーコードと成功コード

IAsyncReader インターフェイス