若应用程序要支持OLE功能和特性,其文档类需要继承自COleServerDoc.
在OLE的应用中有如下三个名词:
OLE条目 插入到服务器中的一个OLE对象,有时简称为条目
包容器 可以装在OLE对象的应用程序
服务器 提供条目的程序为服务器
OLE的应用可以分为:包容器和服务器。
当在一应用程序中嵌入其他应用程序,如画笔时,那么该应用程序就充当包容器的角色;
当其他应用程序,如Word,嵌入某应用程序文件时,此时,该应用程序就充当服务器的角色。
如下对包容器和服务器的应用分别作些简略描述。
一、包容器
应用程序作为包容器时,当插入其他应用程序,也就是OLE对象时,对插入的OLE客户条目类做的处理过程大致如下:
1.打开OLE对象插入窗口
2.创建COleClientItem(pDoc)对象到COleDocument文档类内.
3.COleClientItem对象装载文件:
pItem->CreateFromFile(m_szFileName);
4.pItem->UpdateLink()函数,对引入的OLE对象进行更新处理时调用OnChange虚方法,该方法可以响应如下两消息
1)OLE_CHANGED消息:
得到OLE的大小GetCachedExtent后,相应地设置视口大小:
GetCachedExtent(&size)
KmSize sizeNew(((double)size.cx)/100, ((double)size.cy)/100);
2)OLE_CLOSED消息
将pItem信息填充到CXXOle2Frame(定位点和大小)对象中,然后保存到应用数据库中。
5.OLE数据存取
先将OLE二进制数据序列化到临