次の方法で共有


ビデオ コントロール フィーチャーのアクティブ化 (スクリプト)

このトピックは Windows XP にのみ適用。

アプリケーションでは異なる 2 つのフィーチャー コレクションを操作する。1 つのコレクションには使用可能なフィーチャーが含まれ、もう 1 つのコレクションには現在アクティブなフィーチャーが含まれる。使用可能なフィーチャーのコレクションは読み取り専用であり、MSVidCtl オブジェクトの FeaturesAvailable プロパティを使って取得する。そのコレクションには常に、次の表に示すフィーチャーが含まれる。

フィーチャー クラス ID 文字列 フレンドリ名文字列
データ サービス {334125C0-77E5-11D3-B653-00C04F79498E} BDA IPSink
クローズド キャプション {7F9CB14D-48E4-43B6-9346-1AEBC39C64D3} Line 21 デコーダ
エンコード    

アプリケーションではこれらのフィーチャーを列挙し、アクティブ化するフィーチャーを含んだ新しいフィーチャー コレクションを設定する。アプリケーションはこの新しいコレクションを FeaturesActive プロパティでビデオ コントロールに渡す。ビデオ コントロールはこのコレクションを使って新しいフィルタ グラフを作成するか、既存のフィルタ グラフを変更する。1 つ以上のフィーチャーが必要な場合以外は、FeaturesActive コレクションを作成する必要はない。

入力を変更しても FeaturesActive コレクションは有効なままである。フィーチャーは次の表に示すクラス ID 文字列によって識別される。フレンドリ名文字列は、IMSVidDevice.Name プロパティから返される文字列である。

次のコードは、ActiveFeatures コレクションを作成し、それを使ってビデオ コントロールを構成する 1 つの方法を示している。

' GUID を保持する変数を、覚えやすい名前を付けて作成する。
strDS = "{334125C0-77E5-11D3-B653-00C04F79498E}"
strCA = "{1600F101-6666-4F66-B1E2-BF3C9FBB9BA6}"
strCC = "{7F9CB14D-48E4-43B6-9346-1AEBC39C64D3}"

' 2 つの "フィーチャー" コレクションを作成する。
Dim colFeaturesActive
Set colFeaturesActive = CreateObject("MSVidCtl.MSVidFeatures")
Dim colFeaturesAvailable
Set colFeaturesAvailable = objVidCtl.FeaturesAvailable

' ここでデータ サービスを指定
For Each MSVidFeature in colFeaturesAvailable 
    If (MSVidFeature.ClassID = strDS)Then
       colFeaturesActive.Add MSVidFeature
    End if
Next

objVidCtl.FeaturesActive = colFeaturesActive