DirectShow Quartz.dll オブジェクトについて
Quartz.dll は、Visual Basic ベースのアプリケーションでフィルタおよびピンを管理するオブジェクトを提供する。それらのオブジェクト間には暗黙的な階層が存在する。つまり、多くの場合、オブジェクトを取得するには別のオブジェクトのプロパティにアクセスする必要がある。次の例で、オブジェクトの下に別のオブジェクトがインデントして示されている場合、その下位レベル オブジェクトは、上位レベル オブジェクトのプロパティまたはメソッドから取得する必要がある。
Filter graph object (FilgraphManager)
Filter collection (RegFilterCollection, FilterCollection properties)
Filter Info object (IFilterInfo or IRegFilterInfo in filter collection)
Pin collection (Pins property)
Pin Info object (IPinInfo item in pins collection)
階層の最上位レベル オブジェクトは、フィルタ グラフ オブジェクト、つまり FilgraphManager オブジェクトであり、フィルタ グラフ全体を表す。FilGraphObject オブジェクトの 2 つのプロパティにアクセスすることによって、フィルタ オブジェクトのコレクションを取得できる。FilgraphManager.RegFilterCollection プロパティは、システムに登録されているフィルタを表す。FilgraphManager.FilterCollection プロパティは、フィルタ グラフの一部であるフィルタを表す。
Visual Basic でアクセス可能な他のコレクションと同様に、Visual Basic の for each...next ステートメントを使ってコレクション内の個々の項目にアクセスできる。コレクション内の項目の数は、コレクションの Count プロパティによって示される。
フィルタ コレクションには、IFilterInfo オブジェクトが含まれている。各 IFilterInfo オブジェクトは、そのフィルタに対して定義されているピンのコレクションを表す Pins プロパティを持つ。
ピン コレクションには、IPinInfo オブジェクトが含まれている。各 IPinInfo オブジェクトは、メディア タイプや別のピンへの接続など、そのピンに関する詳細情報を含む。
フィルタ グラフ内のフィルタの特定のピンについて調べるには、次の手順を実行する。
- フィルタ グラフ オブジェクトを取得する。
- フィルタ グラフ オブジェクトの FilgraphManager.FilterCollection プロパティを使って、フィルタ グラフ内に存在するフィルタのコレクションを取得する。
- フィルタ コレクション内の特定のフィルタを検索する。
- フィルタ オブジェクトの IFilterInfo.Pins プロパティを使って、そのフィルタに対して定義されているピンのコレクションを取得する。
- ピン コレクション内の特定のピンを検索する。
- ピン オブジェクトのプロパティを調べて、ピンの接続情報およびその他の情報を見つける。