Active ドキュメント サーバー
Word、Excel、PowerPoint などの Active ドキュメント サーバーは、Active ドキュメントと呼ばれる他のアプリケーションの種類のドキュメントをホストします。 Active ドキュメントは、(別のドキュメントのページ内に表示されるだけの) OLE 埋め込みオブジェクトとは異なり、それを作成するサーバー アプリケーションの完全なインターフェイスと完全なネイティブ機能を提供します。 ユーザーは、お気に入りのアプリケーションを最大限に活用してドキュメントを作成できるうえ (これらが Active ドキュメントに対応する場合)、結果のプロジェクトを単一のエンティティとして扱うことができます。
Active ドキュメントは、複数のページを含むことができ、常にインプレース アクティブです。 Active ドキュメントは、ユーザー インターフェイスの一部を制御し、そのメニューをコンテナーの [ファイル] および [ヘルプ] メニューと結合します。 これらは、コンテナーの編集領域全体を占め、プリンター ページのビューとレイアウト (余白、フッターなど) を制御します。
MFC では、ドキュメントおよびビュー インターフェイス、コマンド ディスパッチ マップ、印刷、メニュー管理、およびレジストリ管理を備えた Active ドキュメント サーバーを実装します。 特定のプログラミング要件については、「Active ドキュメント」で説明されています。
MFC では、CCmdTarget から派生した CDocObjectServer クラス、および COleServerItem から派生した CDocObjectServerItem を使用して Active ドキュメントをサポートしています。 MFC では、COleClientItem から派生した COleDocObjectItem クラスを使用して Active ドキュメント コンテナーをサポートしています。
CDocObjectServer
は、Active ドキュメント インターフェイスをマップし、Active ドキュメントを初期化してアクティブ化します。 MFC には、Active ドキュメントのコマンド ルーティングを処理するマクロも用意されています。 アプリケーションで Active ドキュメントを使用するには、StdAfx.h ファイルに AfxDocOb.h を含めます。
通常の MFC サーバーは、独自の COleServerItem
の派生クラスをフックします。 [Mini-server] (ミニサーバー) または [Full-server] (フルサーバー) チェック ボックスをオンにしてアプリケーション サーバーに複合ドキュメントのサポートを追加した場合は、MFC アプリケーション ウィザードによってこのクラスが生成されます。 また、[Active document server] (Active ドキュメント サーバー) チェック ボックスもオンにした場合、MFC アプリケーション ウィザードによって、代わりに CDocObjectServerItem
から派生したクラスが生成されます。
COleDocObjectItem
クラスを使用すると、OLE コンテナーを Active ドキュメント コンテナーにすることができます。 MFC アプリケーション ウィザードを使用して Active ドキュメント コンテナーを作成するには、MFC アプリケーション ウィザードの [複合ドキュメント サポート] ページで [Active document container] (Active ドキュメント コンテナー) チェックボックスをオンにします。 詳細については、「Active ドキュメント コンテナー アプリケーションの作成」を参照してください。