六.COM接口的其他实现方法.ppt

六.COM接口的其他实现方法.ppt

六 . COM接口的其他实现方法 基于表格驱动的接口查询 接口查询的本质 宏 应用 多重继承下的名字冲突 潜在的缺陷 临时的方案 使用复合技术(嵌套类)实现接口 COM主对象和COM子对象 COM 主对象的实现 COM 子对象的实现 基于复合技术的COM对象的内存结构 1.基于表格驱动的接口查询 1.1 接口查询的本质 前面我们使用继承的方式实现接口,使用多重继承的方式实现多个接口. 在这种方式下,接口的查询QueryInterface函数的实现非常的直接且直观. 在多重继承方式下,接口类是基类, IUnkown接口是最上层的基类. 对象类是接口类的派生的子类. 在内存中,子类比基类“大”. 因为子类除了包含基类的成员以外,还包含自己的成员.子类的一个实例中包含有基类的一个“subobject”,子对象. 如果这个基类还有基类,这个子对象中还含有一个更上层的子对象. QueryInterface函数的本质是: 使用statice_cast操作符在子类的对象中加上基类的偏移从而从而得到基类的子对象.转换到不同的基类时,要加上不同的偏移. 所以QueryInterface实际上是在不同的基类和不同的偏移中工作. 我们可以把基类和对应的偏移量抽象出来.作成表格.使得QueryInterface的工作更加形式化. 最终使得COM的编码更加形式化. (这里的工作为向MFC过渡而热身.我

文档评论(0)

1亿VIP精品文档

相关文档