インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

COM サーバーの基本概念の理解 (Windows*)

このトピックは、Windows* にのみ適用されます。

Fortran COM サーバーウィザードは、Visual Studio* プロジェクトを生成し、COM サーバーのインフラストラクチャーを表す COM 階層ファイルを作成します。COM サーバー階層エディターを使用してこのファイルを変更し、1 つまたは複数のオブジェクト・クラス (インターフェイスとメソッドを含む) の実装を定義することができます。

階層ファイルを保存する際に、Fortran ソースファイルが生成されます。その後、各メソッドのコードを記述する必要があります。

必要な情報

COM サーバー・プロジェクトを作成する場合、実装する COM サーバークラスを記述する必要があります。

クラスには、1 つまたは複数の COM インターフェイスがあります。COM において、インターフェイスは、セマンティクス的に関連した関数のセットです。インターフェイス全体は、クラスによって実装される "機能"、または関連する機能のセットを表します。インターフェイスにはメソッド (メンバー関数としても知られている) が含まれます。メソッドは、機能の一部の処理を実行するルーチンです。Fortran COM サーバーでは、メソッドは、ほかの Fortran 関数のように引数を受け取り、値を返す Fortran 関数です。

Fortran COM サーバーウィザードを使用して作成する AddingMachine という簡単なサンプルクラスについて考えてみます。このクラスには、IAdd というインターフェイスが 1 つあります。慣例により、すべてのインターフェイスの名前は、大文字の "I" で始まります。IAdd インターフェイスでは、次の 3 つのメソッドが定義されています。

これらのメソッドを使用して、COM クライアントをサポートする任意の言語から、IAdd インターフェイスの特定のタスクを実行することができます。Fortran COM サーバーエディターは、クラス (ここでは、AddingMachine クラス) の情報を入力するためのユーザー・インターフェイスを提供します (詳細は、「Fortran COM サーバーの作成」を参照)。

インターフェイスには、プロパティーを含めることもできます。プロパティーは、オブジェクトの状態に関する情報を設定し、返すメソッドのペアです。同じ DISPID で、get_Method および put_Method を使用して、実装する必要があります。

オブジェクトに関連付けられるデータで、オブジェクト指向プログラミングの主要な概念は、カプセル化です。カプセル化とは、使用するデータや処理を実行する際に使用するロジックを含む、オブジェクトの実装方法に関するすべての詳細がクライアントに公開されないことを意味します。クライアントは、オブジェクトがサポートするインターフェイスを介してのみ、オブジェクトにアクセスできます。

オブジェクトが使用するデータを定義して、メソッドのロジックをコーディングする必要があります。データについては、Fortran COM サーバーウィザードで使用されるモデルでは、オブジェクトの各インスタンスが Fortran 派生型に関連付けられているインスタンスを持っています。ウィザードによって生成されるコードは、オブジェクトの作成と破棄にともない、派生型のインスタンスの作成と破棄を行います。

また、派生型のフィールドを定義する必要があります。AddingMachine の例では、AddingMachine の各オブジェクトは、現在の値を格納する必要があります。AddingMachine の各オブジェクトに関連付けられている派生型には、REAL 型のフィールド (ここでは、CurrentValue とします) が 1 つ含まれます。AddingMachine オブジェクトの各インスタンスには、それぞれ派生型のインスタンスと CurrentValue があります。このため、サーバーは同時に複数のクライアントをサポートすることができ、各クライアントはそれぞれの AddingMachine を参照します。つまり、各クライアントは、ほかのクライアントに影響されません。各オブジェクトに関連付けられている派生型についての詳細は、「Fortran COM サーバーの作成」を参照してください。

ユーザーレベルでは、COM サーバーを作成するために、次の操作を行う必要があります。

COM サーバーによって提供されるもの

Fortran COM サーバーエディターは、COM サーバーのすべてのインフラストラクチャーを実装するためのソースファイルを生成します。生成されるファイルは、次のことを行います。

これらのソースファイルのほとんどは、Fortran COM サーバーエディターによって生成され、変更する必要はありません。それ以外のファイルには、派生型およびメソッドの骨組みやテンプレートが含まれています。これらの Fortran ソースファイルは、実装に組み込むために編集します。AddingMachine サンプルの手順を実行することで、COM サーバーの作成方法を理解することができます。