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」メソッドを参照すること。
参照