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

更新 : 2007 年 11 月

コンテナ アプリケーションとは、それ自身のドキュメントの中に埋め込みアイテムまたはリンク アイテムを組み込むことができるアプリケーションです。コンテナ アプリケーションが管理するドキュメントでは、アプリケーション自身で作成したデータのほか、OLE ドキュメント コンポーネントも保存し、表示する必要があります。コンテナ アプリケーションは、ユーザーが新しいアイテムの挿入または既存のアイテムの編集を実行できるよう、必要に応じて、サーバー アプリケーションを起動する必要もあります。コンテナ アプリケーションに必要なユーザー インターフェイスについては、「コンテナ : ユーザー インターフェイスの問題」を参照してください。

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

大部分のサーバーはスタンドアロンのアプリケーション、つまりフル サーバーなので、スタンドアロン アプリケーションとして実行することも、コンテナ アプリケーションから起動することもできます。ミニサーバーはコンテナからしか起動できない特殊な形態のサーバー アプリケーションです。スタンドアロン アプリケーションとしては実行できません。Microsoft Draw や Microsoft Graph はミニサーバーです。

コンテナとサーバーが直接通信することはありません。両者は、OLE システムのダイナミック リンク ライブラリ (DLL: Dynamic Link Library) を介して通信します。OLE システム DLL には、コンテナおよびサーバーから呼び出すことのできる関数があります。一方、コンテナとサーバーには、DLL から呼び出すことのできるコールバック関数があります。

このように通信することで、コンテナ アプリケーションはサーバー アプリケーションの実装の詳細部分がわからなくても通信できます。通信相手のサーバーの種類を定義せずに、どのサーバーが作成したアイテムでも受け入れることができます。したがって、コンテナ アプリケーションのユーザーは、将来のアプリケーションとデータ形式も利用できます。新しいアプリケーションが OLE コンポーネントである場合は、そのアプリケーションで作成したアイテムを複合ドキュメントに取り込むことができます。

参照

概念

OLE の背景知識

OLE の背景知識 : MFC における実装

コンテナ

サーバー

コンテナ : クライアント アイテム

サーバー : サーバー アイテム