活动文档服务器(如 Word、Excel 或 PowerPoint)托管其他应用程序类型的文档(称为活动文档)。 与 OLE 嵌入的对象(只是显示在另一个文档的页面内)不同,活动文档提供了创建它们的服务器应用程序的完整界面和完整的本机功能。 用户可以使用自己喜欢的应用程序的完整功能创建文档(如果启用了活动文档),但可以将生成的项目视为单个实体。
活动文档可以有多个页面,并且始终保持在原地活跃状态。 活动文档控制用户界面的一部分,将其菜单与容器的“文件”和“帮助”菜单合并。 它们占据容器的整个编辑区域,并控制打印机页(页边距、页脚等)的视图和布局。
MFC 使用文档/视图接口、命令调度映射、打印、菜单管理和注册表管理实现活动文档服务器。 活动文档中讨论了特定的编程要求。
MFC 支持使用 CDocObjectServer 类(派生自 CCmdTarget)和 CDocObjectServerItem(派生自 COleServerItem)的活动文档。 MFC 支持使用从 COleClientItem 派生的 COleDocObjectItem 类的活动文档容器。
CDocObjectServer 映射活动文档接口并初始化并激活活动文档。 MFC 还提供用于处理 ACTIVE 文档中的命令路由的宏。 若要在应用程序中使用活动文档,请在 StdAfx.h 文件中包括 AfxDocOb.h。
常规 MFC 服务器将挂钩其自己的 COleServerItem 派生类。 如果你选中“袖珍服务器”或“完全服务器”复选框以为你提供应用程序服务器复合文档支持,则 MFC 应用程序向导将为你生成此类。 如果还选中 “活动文档服务器 ”复选框,则 MFC 应用程序向导将生成派生自 CDocObjectServerItem 的类。
类 COleDocObjectItem 允许 OLE 容器成为活动文档容器。 可以使用 MFC 应用程序向导通过选中 MFC 应用程序向导的“复合文档支持”页中的 “活动文档容器”复选框来创建活动文档容器 。 有关详细信息,请参阅 创建活动文档容器应用程序。