アクティブ ドキュメントコンテインメントは、ドキュメントの種類ごとに複数のアプリケーション フレームを作成して使用する代わりに、ドキュメントを操作する 1 つのフレームを提供するテクノロジです。 OLE は、1 つのコンテンツのみをアクティブにできる複合ドキュメント内の埋め込みオブジェクトと連携するという点で、基本的な OLE テクノロジとは異なります。 作業中のドキュメント包含では、1 つのフレームのコンテキスト内でドキュメント全体 (つまり、関連付けられているメニュー、ツールバーなど、アプリケーション全体) をアクティブ化します。
作業中のドキュメントコンテインメント テクノロジは、もともと Microsoft Office が Office Binder を実装するために開発されました。 ただし、このテクノロジは、Office Binder 以外のアクティブなドキュメント コンテナーをサポートするのに十分な柔軟性があり、Office および Office 互換アプリケーション以外のドキュメント サーバーをサポートできます。
アクティブなドキュメントをホストするアプリケーションは、 アクティブなドキュメント コンテナーと呼ばれます。 このようなコンテナーの例としては、Microsoft Office Binder または Microsoft Internet Explorer があります。
アクティブ ドキュメントコンテインメントは、OLE ドキュメントの複合ドキュメント テクノロジである OLE ドキュメントの拡張機能のセットとして実装されます。 拡張機能は、埋め込み可能なインプレース オブジェクトが、埋め込みコンテンツの 1 つの部分ではなくドキュメント全体を表すことを可能にする追加のインターフェイスです。 OLE ドキュメントと同様に、作業中のドキュメント包含では、アクティブなドキュメントの表示領域を提供するコンテナーと、アクティブなドキュメント自体のユーザー インターフェイスと操作機能を提供するサーバーが使用されます。
アクティブなドキュメント サーバーは、1 つ以上のアクティブなドキュメント クラスをサポートするアプリケーション (Word、Excel、PowerPoint など) です。各オブジェクト自体は、適切なコンテナーでオブジェクトをアクティブ化できる拡張インターフェイスをサポートします。
作業中の文書 (Word や Excel などの作業中の文書サーバーから提供される) は、基本的に、別の作業中の文書コンテナー内にオブジェクトとして埋め込まれた、本格的な従来のドキュメントです。 埋め込みオブジェクトとは異なり、アクティブなドキュメントはページを完全に制御でき、アプリケーションの完全なインターフェイス (基になるすべてのコマンドとツールを含む) をユーザーが編集できます。
作業中の文書は、標準の OLE 埋め込みオブジェクトと区別することによって最もよく理解されます。 OLE 規則に従って、埋め込みオブジェクトは、そのオブジェクトを所有するドキュメントのページ内に表示されるオブジェクトであり、ドキュメントは OLE コンテナーによって管理されます。 コンテナーは、埋め込みオブジェクトのデータをドキュメントの残りの部分と共に格納します。 ただし、埋め込みオブジェクトは、表示されるページを制御しないという点で制限されます。
アクティブなドキュメント コンテナー アプリケーションのユーザーは、お気に入りのアプリケーション (これらのアプリケーションがアクティブなドキュメントが有効な場合) を使用してアクティブなドキュメント (Office Binder のセクションと呼ばれます) を作成できますが、ユーザーは結果のプロジェクトを 1 つのエンティティとして管理できます。このエンティティは、一意の名前付け、保存、印刷などを行うことができます。 同様に、インターネット ブラウザーのユーザーは、ネットワーク全体とローカル ファイル システムを 1 つのドキュメント ストレージ エンティティとして扱い、そのストレージ内のドキュメントを 1 つの場所から参照できます。
サンプル プログラム
- MFCBIND サンプルは、アクティブなドキュメント コンテナー アプリケーションの実装を示しています。