Active ドキュメント コンテインメント

更新 : 2007 年 11 月

Active ドキュメント コンテインメントは、複数のドキュメントを単一フレームで操作するための技術です。つまり、異なる種類のドキュメントごとにアプリケーション フレームを作成し、使い分ける必要がありません。これに対し、従来の OLE テクノロジでは、複合ドキュメント内の埋め込みオブジェクトしか操作できませんでした。複合ドキュメント内でアクティブにできるのは、埋め込まれたコンテンツの一部分だけでした。一方、Active ドキュメント コンテインメントでは、同じフレームのコンテキスト内でドキュメント全体、つまりアプリケーション全体 (メニュー、ツール バーなどを含む) をアクティブにできます。

Active ドキュメント コンテインメントは、Microsoft Office に Microsoft Office バインダーを実装する目的で開発されました。しかし、この技術は適応性が高く、バインダー以外の Active ドキュメントのコンテナもサポートします。また、Microsoft Office や Office 互換のアプリケーション以外のドキュメント サーバーもサポートできます。

Active ドキュメントのホスト アプリケーションを Active ドキュメント コンテナと呼びます。Microsoft Office バインダーや Microsoft Internet Explorer などをコンテナにできます。

Active ドキュメント コンテインメントは、OLE の複合ドキュメント テクノロジーである OLE ドキュメントに対する一連の拡張機能として実装されます。拡張機能としては、新しいインターフェイスがあります。これにより、埋め込み可能な 1 つの埋め込み先オブジェクトで、埋め込みコンテンツの一部ではなくドキュメント全体を表すことができるようになりました。Active ドキュメント コンテインメントでは、OLE ドキュメントと同じように、コンテナ側で Active ドキュメントの表示領域が用意され、サーバー側で Active ドキュメント自体を操作するためのユーザー インターフェイスや機能が用意されます。

Active ドキュメント サーバーとは、1 つ以上の Active ドキュメント クラスをサポートするアプリケーション (Word、Excel、PowerPoint など) です。各オブジェクトが拡張インターフェイスをサポートすることにより、適切なコンテナ内でオブジェクトをアクティブにできます。

Word や Excel などの Active ドキュメント サーバーから提供される Active ドキュメントは、基本的に従来のフル スケール ドキュメントであり、1 つのオブジェクトとして別の Active ドキュメント コンテナに埋め込まれます。埋め込みオブジェクトとは異なり、Active ドキュメントは、その埋め込み先のページを完全に制御できます。また、コマンドやツールも含めて、編集に必要なアプリケーションのすべてのインターフェイスを使用できます。

Active ドキュメントは、標準の OLE 埋め込みオブジェクトと区別して考えた方が理解しやすくなります。OLE 規約では、埋め込みオブジェクトは埋め込み先のドキュメントのページ内に表示され、OLE コンテナがドキュメントを管理します。コンテナは、ドキュメントと埋め込みオブジェクトのデータを保存します。ただし、埋め込みオブジェクトは、埋め込まれたページを制御できません。

Active ドキュメント コンテナ アプリケーションで使用する Active ドキュメント (Office バインダーでは "セクション" と呼ばれる) は、Active ドキュメントをサポートしているアプリケーションであれば、どのアプリケーションでも作成できます。また、作成したプロジェクトを 1 つの単位 (エンティティ) として扱い、一意な名前を付けて保存したり印刷したりできます。インターネット ブラウザの場合も同様に、ネットワーク全体やローカル ファイル システムを 1 つのドキュメント ストレージ エンティティとして扱い、ドキュメントを 1 つのストレージに記憶されているかのように参照できます。

サンプル プログラム

  • Active ドキュメント コンテナ アプリケーションの実装については、サンプルの MFCBIND を参照してください。

参照

概念

MFC COM