Skip to main content.

(2014/07/09)このサイトは更新を終了しました。今しばらく公開は続けたいと思いますが古くなっている情報もありますのでご注意下さい。新しいサイトはこちらです。引き続き株式会社インデペンデンスシステムズ横浜は鋭意営業中です。

Monday, July 09, 2012

DirectShowをC#から利用する(その2)一般的な方法

DirectShowをC#から利用する方法についてです。前回、技術的な基礎について書きまして、COMのタイプライブラリを使うという方針を書きましたが、その詳細については、次回からです。今回は、まずは、一般的と言いますか、よくある方法についてです。

方法1 VC++と併用する方法
.NET Frameworkではない VC++で(Win32、MFC等のアンマネージドコード)DirectShowの機能を実装して(DLLが一般的)、それをC#のGUI機能から利用する方法です。ただし、C#から全くDirectShowを使わないというのは難しいと考えられるので、表示系のみを次回からの方法でC#からDirectShowを直接利用するのがいいかと思います。

このような方法は、よく使うのではないでしょうか。私の場合も、DirectShowではないですが、VC++で、Win32形式のDLLを作成して、C#のGUI機能からそのDLLを呼び出すという方法は実績があります。

ここでは、こういう方法もあるだろうということで、詳細には触れませんのでご了承下さい。以下にそのような例がありました。
今日の高柳: C#でDirectShowその5

方法2 公開されているライブラリを使用する方法
以下の、公開されているdirectshow.net ライブラリを利用する方法です。以下のライブラリでは、既に、DirectShowのインターフェースがC#から呼び出すことが出来るように公開されています。サンプルも公開されているので便利だと思います。インターネット上で公開されているC#でのDirectShowのプログラムは、おおむねこれを利用しているようです。

DirectShow.NETライブラリ

どのように実装されているかというと、以下のページの最後のような方法です。C# コードで、COMインターフェースを記述して呼び出す方法です。詳細は、ライブラリのソースを見ていただければと思います。
COM 相互運用性 - 第 1 部 : C# クライアント チュートリアル

ということで、これを利用すれば簡単ということです。特にこういった公開されているライブラリを使ってはいけないという制約がなければ、これを利用すればいいかと思います。サンプルもいろいろあるので、分かりやすいと思います。

しかしですが、実際の開発業務では、こういったライブラリは使えないという制約がある場合もあるかと思います。そこで、次回からの方法を試しました。

Windowsプログラミング関連記事