Active ドキュメント コンテインメント
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 を参照してください。