OLE Document Objects

OLE文档对象来源自OLE2.0标准,并演化而来。

OLE1.0时候,嵌入的文档如果显示,必须谈出一个新窗口,然后内嵌文档显示在新窗口中。

OLE2.0时候,嵌入的文档可以显示在Container中,但是内嵌文档和Container的交互性很差。Container可以控制内嵌文档,但内嵌文档不能控制Container。

OLE Document Objects解决了上述问题,是用户感觉不到内嵌文档的存在。

How Everything Works Together

1.Initialization

Container调用OLE Document Object的IOleObject::DoVerb()

Server Application会调用Container提供的IOleDocumentSite::ActivateMe()

对于Container又会通过IOleDocumentSite::ActivateMe()调用IUnknown::QueryInterface,得到IOleDocument接口。

2.Creating Views

3.Enumerating Views

Container实现

IOleClientSite接口和IOleInPlaceSite接口   

Container嵌入OLE Document Objects过程

先得到一个IOleObject的接口,然后调用IOleObject::SetClientSite。

转载于:https://www.cnblogs.com/fanzi2009/archive/2009/08/21/1551428.html

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页