次の方法で共有


ストリーム終了通知の送信

入力ピンがストリーム終了通知を受信すると、その呼び出しをダウンストリーム方向に伝達する。この入力ピンからデータを受信するダウンストリーム フィルタはストリーム終了通知も受け取る必要がある。ここでも、フィルタ ロックではなく、ストリーミング ロックを取る。まだ送信されていないペンディング状態のデータがフィルタにある場合、フィルタはストリーム終了通知を送信する前にすぐそのデータを送信する必要がある。ストリームの終了後、データを送信しないこと。

HRESULT CMyInputPin::EndOfStream()
{
    CAutoLock lock_it(&m_csReceive);

    /* ピンがストリームのすべてのデータを送信していない場合 
       (以前受信したデータに基づく)、ここで送信する。  */

    // 出力ピンを介してダウンストリーム方向に EndOfStream 呼び出しを伝達する。
    for (各出力ピン)
    {    
        hr = pOutputPin->DeliverEndOfStream();
    }
    return S_OK;
}

CBaseOutputPin::DeliverEndOfStream メソッドはダウンストリーム入力ピンの IPin::EndOfStream を呼び出す。