OLE 概要 : コンテナーとサーバー

コンテナー アプリケーションは、埋め込み項目またはリンクされた項目を自己のドキュメントに収容するアプリケーションです。 コンテナー アプリケーションによって管理されたドキュメントは、OLE のドキュメント コンポーネントや、アプリケーション自体によって作成されたデータも格納して表示できる必要があります。 コンテナー アプリケーションでは、必要に応じてサーバー アプリケーションをアクティブ化することで、ユーザーが新しい項目を挿入したり、既存の項目を編集したりできる必要があります。 コンテナー アプリケーションのユーザー インターフェイスの要件については、「コンテナー: ユーザー インターフェイスの問題」に記載されています。

サーバー アプリケーションまたはコンポーネント アプリケーションは、コンテナー アプリケーションで使用する OLE ドキュメント コンポーネントを作成できるアプリケーションです。 通常、サーバー アプリケーションでは、コンテナー アプリケーションが埋め込み項目やリンクされた項目としてデータを挿入できるように、データをクリップボードにドラッグ アンド ドロップしたり、コピーしたりすることができます。 アプリケーションは、コンテナーとサーバーの両方にすることができます。

ほとんどのサーバーは、スタンドアロン アプリケーションまたは完全なサーバーであり、スタンドアロン アプリケーションとして実行するか、コンテナー アプリケーションで起動できます。 ミニサーバーは、コンテナーでのみ起動できる特殊な種類のサーバー アプリケーションです。 スタンドアロン アプリケーションとして実行することはできません。 たとえば、Microsoft Draw サーバーや Microsoft Graph サーバーはミニサーバーです。

コンテナーとサーバーは直接通信しません。 代わりに、OLE システム ダイナミック リンク ライブラリ (DLL) を介して通信します。 これらの DLL は、コンテナーとサーバーが呼び出す関数を提供し、コンテナーとサーバーは DLL が呼び出すコールバック関数を提供します。

この通信手段を使用すると、コンテナーはサーバー アプリケーションの実装の詳細を認識する必要が生じしません。 これにより、コンテナーは、作業できるサーバーの種類を定義しなくても、任意のサーバーによって作成された項目を受け入れることができます。 その結果、コンテナー アプリケーションのユーザーは、将来のアプリケーションとデータ形式を活用できます。 これらの新しいアプリケーションが OLE コンポーネントの場合、複合ドキュメントには、それらのアプリケーションによって作成された項目を組み込むことができるようになる可能性があります。

関連項目

OLE の背景知識
OLE の背景知識: MFC における実装
Containers
サーバー
コンテナー: クライアント アイテム
サーバー: サーバー アイテム