IAsyncReader::WaitForNext メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/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 値を返します。 使用可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
タイムアウトが切れているか、ピンがフラッシュされています。 |
|
ピンがフラッシュ中です。 |
|
読み取りエラーが発生しました。 |
|
成功しました。 |
|
ファイルの末尾に達しました。要求よりも少ないバイト数を取得しました。 |
解説
メソッドが成功した場合、 ppSample パラメーターには、要求されたデータを保持するバッファーを持つメディア サンプルへのポインターが含まれます。 IMediaSample::GetTime メソッドを呼び出し、結果を 10,000,000 で除算して、開始バイトと停止バイトを決定します。 サンプルは順に返される場合があります。 データの処理が完了したら、サンプルをリリースします。
ピンがフラッシュされている場合、メソッドは失敗します。 ただし、 ppSample では空のサンプルが返される場合があります。 *ppSample が NULL 以外の場合は、サンプルを解放して破棄します。 詳細については、「 IAsyncReader::BeginFlush」を参照してください。
読み取りエラーが発生した場合、ソース フィルターはフィルター グラフ マネージャーにエラー イベントを送信します。呼び出し元はエラーを通知する必要はありません。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |