質問

を使用していDirectShowLibいう薄いラッパーのための適.私た列挙FBDAデバイスおよびそのCLSIDs.現在ユーザーを選択し、デバイス名をピックアップしました。CLSIDを選択し追加する必要がありこのデバイスマイルフィルタグラフで表示します。

かったので、下

Type type = Type.GetTypeFromCLSID(classid);
object device = Activator.CreateInstance(type);

そこで問題にはどのようなオブジェクトからデバイス?デバッガがで有効なComオブジェクトです。いうキャストでIBaseFilter、例外を"な界面の対応".できるキャストでIMoniker功した。その場合はようにしなければならない。

int hr = graphBuilder.AddSourceFilterForMoniker(
    device, null, filtername, out receivedFilter);

または、エラー:

HRESULT: 0x800401e4 (2147746276)
Name: MK_E_SYNTAX

のを知っている方法AddSourceFilterForMoniker動作を利用した場合、すぐ後は、列挙んでいらっしゃるようでしたらないだけを宣言す。

ここに重要なのは正しい方法を宣言オブジェクトの場合クラスのidであるかをするには会員登録が必要ですのAddSourceFilterForMoniker?

役に立ちましたか?

解決

ただのんですが、表示されませんの作成 IBindCtx 実装されます。すべての作業 IMoniker この見所が必要IBindCtx実装を渡すためのコンテキスト操作に関する宣言.

しているようで AddSourceFilterForMoniker の方法は異なる、そんパッドのコンテキスト宣言.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top