インプロセス サーバー

OLE サーバー アプリケーションを、ローカル サーバー (独自のプロセス領域で実行される EXE) としてではなく、インプロセス サーバー (コンテナー アプリケーションのプロセス領域で実行される DLL) として実装すると、コンテナーとサーバー間のコミュニケーションが簡素化されます。2 つの間のコミュニケーションは、通常の関数呼び出しの形式をとることができます。 2 つのアプリケーションが同じプロセス空間で実行されるため、リモート プロシージャ コールは必要ありません。 ご想像のとおり、パラメーターのマーシャリングを管理するオブジェクトも不要ですが、コンテナーとサーバー間の通信を妨げることなく DLL 内に集約できます。

OLE サーバー アプリケーションがインプロセス サーバーとして実装されている場合、サーバー自体はクライアントのプロセス空間に存在するため、別個のオブジェクト ハンドラーは必要ありません。 インプロセス サーバーとオブジェクト ハンドラーの主な違いは、サーバーは実行状態のオブジェクトを管理できるのに対し、ハンドラーは管理できないことです。 この違いの結果の 1 つは、サーバーは実行中のオブジェクトを操作するためのユーザー インターフェイスを提供する必要があるのに対し、ハンドラーはこの要件をオブジェクトのサーバーに委任することです。 インプロセス サーバーの作成では、OLEの既定のハンドラを集約して、表示、保存、通知などの基本的な処理をハンドラーに任せ、ハンドラーが提供しない、または必要な方法で実装されていないサービスだけを実装することができます。

詳細については、次のトピックを参照してください。

複合ドキュメント