次の方法で共有


IPinConnection::NotifyEndOfStream メソッド (strmif.h)

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

メソッドは NotifyEndOfStream 、次のストリームの終了条件が発生したときに、ピンから通知を要求します。

構文

HRESULT NotifyEndOfStream(
  [in] HANDLE hNotifyEvent
);

パラメーター

[in] hNotifyEvent

ピンが通知するイベント オブジェクトを処理します。

戻り値

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

リターン コード 説明
S_FALSE
イベント ハンドルは NULL ですが、リセットする既存のイベント ハンドルはありませんでした。
S_OK
イベント ハンドルが設定されました。 (イベント ハンドルが NULL の場合、イベント通知は取り消されました)。

注釈

このメソッドを使用すると、呼び出し元は、このピンで終わるフィルター グラフの一部を介してデータをプッシュできます。

たとえば、呼び出し元が、あるフィルターの "A" という出力ピンから、別のフィルターの "B" という入力ピンにデータをプッシュしているとします。中間フィルターが接続されている可能性があります。 次の一連のイベントが発生します。

  1. 呼び出し元は、ピン A でデータ フローをブロックします。
  2. ピン B で を呼び出します NotifyEndOfStream
  3. A ピンに接続されている入力ピンで IPin::EndOfStream を呼び出します。
  4. 残りのデータが中間フィルターを経由して下流に移動すると、これらのフィルターによってストリームの終了通知が伝達されます。
  5. ピン B は、ストリームの終了通知を受信すると、 hNotifyEvent パラメーターで指定されたイベントを通知します。 その時点で、呼び出し元は、ピン A とピン B の間でグラフを安全に再構成できます。
このメソッドの目的は、呼び出し元がグラフを動的に再構築し、接続を再起動できるようにすることであるため、ストリームの終了通知はストリームの実際の終了を表しません。 したがって、ピン B はストリームの終わりの状態や信号のEC_COMPLETEを伝達しません。 これは、フィルター グラフ内のデータ フローの通常のルールの例外です。

呼び出し元は、 NULL イベント ハンドルを使用してこのメソッドを再度呼び出して通知を取り消す必要があります。

フィルター グラフは 、IGraphConfig::Reconnect メソッド内でこのメソッドを呼び出します。 アプリケーションまたはフィルターが ( IGraphConfig::Reconfigure メソッドを使用して) グラフに対して特殊化された動的再構成を行う場合は、再構成されるグラフの部分を介してデータをプッシュするために、最初にこのメソッドを呼び出す可能性があります。

要件

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

こちらもご覧ください

動的再接続

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

IPinConnection インターフェイス