ビデオ コントロール フィーチャーのアクティブ化 (スクリプト)
このトピックは 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