次の方法で共有


IBaseFilter::JoinFilterGraph

JoinFilterGraph メソッドは、フィルタ グラフに参加した、またはフィルタ グラフから離れたことをフィルタに通知する。

構文

  HRESULT JoinFilterGraph(
  IFilterGraph *pGraph,
  LPCWSTR pName
);

パラメータ

pGraph

[in] フィルタ グラフ マネージャの IFilterGraph インターフェイスへのポインタ。または、フィルタがグラフを離れた場合は NULL。

pName

[in, string] フィルタの名前を指定するワイド キャラクタ文字列へのポインタ。

戻り値

成功した場合は S_OK を返す。それ以外の場合は、エラーの発生を示す HRESULT 値を返す。

注意

フィルタ グラフ マネージャがあるフィルタをフィルタ グラフに追加する場合は、自分自身へのポインタでこのメソッドを呼び出す。フィルタのこのインスタンスの名前は、pName 引数を使って割り当てる。名前を取得するには、IBaseFilter::QueryFilterInfo メソッドを呼び出す。

フィルタ グラフ マネージャがグラフからフィルタを削除する場合は、このメソッドを NULL ポインタで呼び出す。

アプリケーションはこのメソッドを決して呼び出してはならない。フィルタをグラフに追加するには、フィルタ グラフ マネージャに対して IFilterGraph::AddFilter を呼び出すこと。

**フィルタ開発者 :**フィルタは、IFilterGraph インターフェイスのポインタを保存して、そのポインタに他のフィルタ グラフ マネージャ インターフェイスを問い合わせられる。ただし、フィルタ グラフ マネージャの参照カウントは決して保持しないこと。保持した場合、フィルタ グラフ マネージャはフィルタの参照カウントを保持するので、循環参照カウントを作成することになる。循環参照カウントがあるとインターフェイスは正しく解放されないので、デッドロックになる可能性がある。IFilterGraph インターフェイスは、フィルタ グラフ マネージャが再びこのメソッドを値 NULL で呼び出すまで有効であることが保証されている。このメソッドの実装の詳細については、「CBaseFilter::JoinFilterGraph」メソッドを参照すること。

参照