インターフェイス マーシャリング

インターフェイスがアパートメント、スレッド、またはプロセスの境界を越えて使用されないことが完全にわかっている場合を除き、インターフェイスにマーシャリング サポートを提供する方法を決定する必要があります。 マーシャリングのサポートを提供するには、次の 3 つの方法があります。

  • COM チャネルを呼び出す独自のプロキシ/スタブ コードを作成し、COM チャネルが RPC ランタイム ライブラリを呼び出します。 理論的にはこれを行うことは可能ですが、実際にはかなりの労力を費やすことなくこれを行うことはほぼ不可能です。
  • インターフェイス定義言語 (IDL) ファイルでインターフェイスを記述し、MIDL コンパイラを使用してプロキシ/スタブ DLL を生成します。 この方法では、最高のパフォーマンスと、許容可能なデータ型の点で最も柔軟性が得られます。 MIDL で生成されたプロキシ スタブを使用すると、メモリ管理だけでなく、さまざまなプラットフォーム間で複雑なデータ型のマーシャリングとアンマーシャリングも制御できます。
  • MIDL を使用して、システムが実行時にマーシャリング サポートを提供するために使用するタイプ ライブラリを生成します。 これは、マーシャリング サポートを実装する最も簡単な方法です。 必要なのは、タイプ ライブラリを生成して登録するだけです。 インターフェイスはオートメーション互換 (oleautomation または dual) である必要があります。このインターフェイスでは、メソッド パラメーターとして使用できるデータ型の種類にいくつかの制限があります。 ただし、ほとんどの場合、Microsoft Visual Basic や Java などの他の言語で作成されたプログラムからインターフェイスにアクセスできることの利点は、データ型の制限を上回ります。

オブジェクト間通信