IGraphConfig インターフェイス
フィルタ グラフ マネージャは、グラフを動的に作成する IGraphConfig を公開する。このインターフェイスを使うと、アプリケーションおよびフィルタから、ストリームからのデータを失わずに、実行状態にあるフィルタ グラフを再構成できる。
グラフを動的に再作成する最も直接的な方法は、IGraphConfig::Reconnect メソッドを呼び出す方法である。グラフを動的に再作成するための細かい処理の大半は、メソッド側で実行する。独自の技法を実装する必要がある場合のために、IGraphConfig は IGraphConfig::Reconfigure メソッドも提供する。このメソッドは、フィルタ グラフをロックしたうえで、アプリケーション側のコールバック関数を呼び出し、その関数がグラフを再構成する。このメソッドでは、処理の大半をアプリケーション側で実行する。詳細については、「動的グラフ作成」を参照すること。
フィルタを追加および削除する処理を最適化するために、フィルタ グラフはフィルタのキャッシュを保持する。Reconnect メソッドの呼び出しでは、グラフから削除されるフィルタをキャッシュに追加するように指定できる。また、必要になりそうなフィルタがある場合は、IGraphConfig::AddFilterToCache を呼び出してそのフィルタをキャッシュに直接追加することもできる。IGraphBuilder::Render メソッド、IGraphBuilder::RenderFile メソッド、IGraphBuilder::Connect メソッドは、キャッシュ内のフィルタを優先的に使う。また、Reconnect メソッドでは、再接続にキャッシュ内のフィルタだけを使うように指定することもできる。キャッシュに保持されているフィルタは、実際にはグラフの一部ではないので注意すること。キャッシュ内のフィルタは、ピンには接続されない状態で停止している。
IGraphConfig インターフェイスは、IUnknown から継承するメソッド以外に以下のメソッドも公開する。
メソッド | 説明 |
Reconnect | 2 つのピンの間の動的な再接続を実行する。 |
Reconfigure | フィルタ グラフをロックし、アプリケーションまたはフィルタのコールバック関数を呼び出して、動的な再構成を実行する。 |
AddFilterToCache | フィルタ キャッシュにフィルタを追加する。 |
RemoveFilterFromCache | フィルタ キャッシュからフィルタを削除する。 |
EnumCacheFilter | フィルタ キャッシュ内のフィルタを列挙する。 |
GetStartTime | フィルタ グラフが最後に実行状態に切り替わったときに使われた基準タイムを取得する。 |
PushThroughData | 指定されたピンにフィルタ グラフを通じてデータを引き渡す。 |
SetFilterFlags | フィルタの構成情報を設定する。 |
GetFilterFlags | フィルタの構成情報を取得する。 |
RemoveFilterEx | フィルタ グラフからフィルタを削除する。 |