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。

posted @ 2009-08-21 15:11  Fan Zhang  阅读(301)  评论(0编辑  收藏  举报