OLE 概要 : コンテナーとサーバー
コンテナー アプリケーションとは、それ自身のドキュメントの中に埋め込みアイテムまたはリンク アイテムを組み込むことができるアプリケーションです。 コンテナー アプリケーションが管理するドキュメントでは、アプリケーション自身で作成したデータのほか、OLE ドキュメント コンポーネントも保存し、表示する必要があります。 コンテナー アプリケーションは、ユーザーが新しいアイテムの挿入または既存のアイテムの編集を実行できるよう、必要に応じて、サーバー アプリケーションを起動する必要もあります。 コンテナー アプリケーションのユーザー インターフェイスの要件は、資料ではコンテナー:ユーザー インターフェイスの問題。
サーバー アプリケーションまたはコンポーネント アプリケーションとは、コンテナー アプリケーションで使用する OLE ドキュメント コンポーネントを作成できるアプリケーションのことです。 コンテナー アプリケーションがデータを埋め込みアイテムまたはリンク アイテムとして挿入できるように、通常、サーバー アプリケーションでは、クリップボードへのデータのコピーやドラッグ アンド ドロップを行うことができます。 コンテナーとサーバーの両方の機能を備えたアプリケーションも作成できます。
大部分のサーバーはスタンドアロンのアプリケーション、つまりフル サーバーなので、スタンドアロン アプリケーションとして実行することも、コンテナー アプリケーションから起動することもできます。 ミニサーバーはコンテナーからしか起動できない特殊な形態のサーバー アプリケーションです。 スタンドアロン アプリケーションとしては実行できません。 Microsoft Draw や Microsoft Graph はミニサーバーです。
コンテナーとサーバーが直接通信することはありません。 両者は、OLE システムのダイナミック リンク ライブラリ (DLL: Dynamic Link Library) を介して通信します。 OLE システム DLL には、コンテナーおよびサーバーから呼び出すことのできる関数があります。一方、コンテナーとサーバーには、DLL から呼び出すことのできるコールバック関数があります。
このように通信することで、コンテナー アプリケーションはサーバー アプリケーションの実装の詳細部分がわからなくても通信できます。 通信相手のサーバーの種類を定義せずに、どのサーバーが作成したアイテムでも受け入れることができます。 したがって、コンテナー アプリケーションのユーザーは、将来のアプリケーションとデータ形式も利用できます。 新しいアプリケーションが OLE コンポーネントである場合は、そのアプリケーションで作成したアイテムを複合ドキュメントに取り込むことができます。