Skip to main content.

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

Monday, July 09, 2012

DirectShowをC#から利用する(その1)C#(.NET Framework)からのCOMの利用方法

DirectShowをC#から利用する方法についてです。何回か書いていますが、DirectShowのベースになる技術はCOMです。したがって、テーマとしては、C#(.NET)からCOMを利用するにはどのような方法があるかということです。

まず、COMについてです。COMは、.NET Framework以前の技術です。

「COM を使用すると、オブジェクトの機能をほかのコンポーネントやホスト アプリケーションに公開できます。 COM では、オブジェクト自身を公開する方法と、この公開によるプロセス間およびネットワーク間でのオブジェクトの動作方法を定義しています。」

以上の文章は、以下から引用しました。
MSDN COMの概要

要するに、おおざっぱですが、コンピュータ上の実行モジュール(EXE、DLL等)が、同一コンピュータ上、または、ネットワーク上の他のコンピュータ上の実行モジュールを利用するためのマイクロソフトの技術、仕様と考えていいかと思います。

当然、C#(.NET Framework)からCOMを呼び出すことは可能です。そのためには、COMインターフェイスから、.NET Framework 定義を作成して、組み込む必要があります。この、COMインターフェース定義は通常はタイプライブラリに存在します。つまり、このタイプライブラリがあれば、何とか .NET Framework 定義を作成することが可能ということです。

この、タイプライブラリですが、COMの実行モジュールに含まれている場合とそうでない場合があります。DirectShowの場合は実行モジュールはいくつかに分かれており、タイプライブラリが含まれている実行モジュール(DLL)もあれば、含まれていない実行モジュールもあります。含まれていない場合は、別の形式で、インターフェースが公開されているようです。

次回からは、このタイプライブラリを一つのキーとしてC#(.NET Framework)からのDirectShowの利用方法を考えます。

関連リンク、参考リンク
.NET Framework への COM コンポーネントの公開
タイプ ライブラリのアセンブリとしてのインポート

COM基礎 クラスとインターフェース
ITmediaエンタープライズ Component Object Model COMとは
COM プログラミング入門 - Web/DB プログラミング徹底解説

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