DShowNETでSystem.InvalidCastException

以前作ったWebカメラの動画から静止画をキャプチャして保存するプログラムを、ソースをコピーして別のプログラムで使おうとしたらこんなエラーが出た。

型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'DShowNET.ISampleGrabber' にキャストできません。IID '{6B652FFF-11FE-4FCE-92AD-0266B5D7C78F}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。

原因がわからなくてしばらく悩んだのだけど、どうやらシングルスレッドアパートメントだとダメらしい…

Main()の定義の前の行で、[STAThread]→[MTAThread]に変更したらできるようになった。


新しく会社作りました!

コメント / トラックバック 2 件

  1. 通りすがり より:

    まったく同じ、現象ではまっていました。

    このサイトがなければ、永遠に抜けられなかったでしょう。
    ありがとう!

  2. hotpi より:

    コメントありがとうございます!

    お役に立てて何よりです。

コメントをどうぞ