OLE Document Objects

OLE文档对象详解
本文深入解析了OLE2.0标准下的OLE文档对象发展历程,从OLE1.0的窗口嵌入到OLE2.0的Container中显示,再到OLEDocumentObjects如何无缝嵌入并提升交互性。详细介绍了初始化过程、视图创建及枚举,揭示了Container与OLEDocumentObjects之间的复杂关系。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值