COleDocument

CObject
 └CCmdTarget
    └CDocument
       └COleDocument


COleDocument是OLE文档的基类,它支持可视化编辑。
COleDocument从CDocument派生来,这使你的OLE应用程序能够使用由微软基础类库提供的文档/视结构。
COleDocument将文档当作一个处理OLE项的CDocItem对象的集合。容器和服务器应用都需要这样的结构,因为它们的文档必须能够包容OLE项。类COleServerItem和类COleClientItem都从CDocItem派生而来,它们管理应用程序与OLE项之间的相互作用。
如果你正在编写一个简单的容器应用程序,最好从COleDocument派生出你的文档类。如果你正在编写一个支持链接到文档包含的嵌入项的容器应用程序,最好从COleLinkingDoc派生出你的文档类。如果你正在编写一个服务器应用程序或者是组合容器/服务器,最好从COleServerDoc派生出你的文档类。COleLinkingDoc和COleServerDoc是从COleDocument派生而来的,因此这些类继承了所有在COleDocument和CDocument中具有的服务。
要使用COleDocument,可以从它派生出一个类,并添加一些功能用来管理应用中除嵌入或链接项外的其它非OLE数据。如果你将从CDocItem派生而来的类定义为用来保存应用的内部数据,你可以使用由COleDocument定义的工具来保存你的OLE数据和非OLE数据。也可以设计你自己的数据结构来保存你的非OLE数据,以区别于你的OLE 项。更多的信息,参见“Visual C++程序员指南”一书中的文章“容器:复合文件”。
如果提供了邮件支持(MAPI)的话,CDocument支持将你的文档通过邮件发送。COleDocument已经更新了OnFileSendMail,可以正确处理捆绑在一起的文档。更多的信息,参见“Visual C++程序员指南”一书中的文章“MAPI主题”和“MFC中的MAPI支持”。
#include <afxole.h>


COleDocument类成员

构造
COleDocument构造一个COleDocument对象

操作
HasBlankItems检查文档中的空项
EnableCompoundFile使文档能够被用OLE结构保存文件格式来保存
GetInPlaceActiveItem返回当前正处于活动状态的OLE项
GetStartPosition获得开始重复的初始位置
GetNextItem获取下一个要重复的文档项
GetNextClientItem获取下一个要重复的客户项
GetNextServerItem获取下一个要重复的服务器项
UpdateModifiedFlag如果任何一个被包容的OLE项被修改,则标记该文档为已被修改
ApplyPrintDevice为文档中的所有客户项设置打印目标设备
AddItem向文档保持的项列表中添加一个项
RemoveItem从文档保持的项列表中移走一个项

重载
GetPrimarySelectedItem返回文档中最初选择的OLE项
OnShowViews在文档变为可见和不可见时被调用

邮件函数
OnFileSendMail发送一个附着有文档的邮件消息

消息处理
OnEditChangeIcon处理Change Icon菜单命令中的事件
OnEditConvert处理一个嵌入或链接对象从一种类型到另一种类型的转换
OnEditLinks处理Edit菜单上的Links命令中的事件

消息处理
OnUpdateEditChangeIcon由框架调用来更新Edit/Change Icon菜单选项的命令UI
OnUpdateEditLinksMenu由框架调用来更新Edit/Links菜单选项的命令UI
OnUpdateObjectVerbMenu由框架调用来更新Edit/Object Name菜单选项和从Edit/ObjectName访问的Verb子菜单的命令UI

消息处理
OnUpdatePasteLinkMenu由框架调用来更新Paste Special菜单选项的命令UI
OnUpdatePasteMenu由框架调用来更新Paste菜单选项的命令UI