c0M接口与对象 潘爱民 panaimin@icst.pku.edu.cn
COM接口与对象 潘爱民 panaimin panaimin@icst.pku.edu.cn
内 组件的接口 COM接口 COM IDL 冷COM对象
内容 !组件的接口 !COM接口 !COM IDL COM IDL !COM对象
从历史看CoM 次COM产生的背景 93年因为OLE2的需要而产生 OLE1的缺 冷COM又从OLE中脱颖而出 COM的优势不限于OLE COM成为 Microsoft跟上 Interne的 项重要基础技术 冷今天的 Windows平台上,COM无 处不在
从历史看COM !COM产生的背景 – 93年因为OLE 2的需要而产生 – OLE 1的缺陷 !COM又从OLE中脱颖而出 – COM的优势不限于OLE – COM成为Microsoft Microsoft跟上Internet Internet的 一项重要基础技术 一项重要基础技术 !今天的Windows Windows平台上,COM无 处不在
cOM基础——一几个概念 之COM组件 可独立发布的二进制组件 在WndW平台上为DL或者EXE COM对象 通过COM接口提供服务 符合00中对象的基本概念 COM接口 客户与对象之间的协议,对象实 现COM接口,客户使用COM接口
COM基础——几个概念 !COM组件 – 可独立发布的二进制组件 可独立发布的二进制组件 – 在Windows Windows平台上为DLL或者EXE !COM对象 – 通过COM接口提供服务 – 符合OO中对象的基本概念 中对象的基本概念 !COM接口 – 客户与对象之间的协议,对象实 客户与对象之间的协议,对象实 现COM接口,客户使用 接口,客户使用COM接口
如何设计? cOM组件 为方便起见,只讨论 Windows平台 上DLL类型的组件 COM对象 如何标识一个对象?对象以什么形式 存在?客户如何创建对象? 对象如何暴露接口?一个或是多个? 冷COM接口 要求:跨编译器、跨语言、跨平台
如何设计? !COM组件 – 为方便起见,只讨论 为方便起见,只讨论Windows Windows平台 上DLL类型的组件 !COM对象 – 如何标识一个对象?对象以什么形式 如何标识一个对象?对象以什么形式 存在?客户如何创建对象? 存在?客户如何创建对象? – 对象如何暴露接口?一个或是多个? 对象如何暴露接口?一个或是多个? !COM接口 – 要求:跨编译器、跨语言、跨平台 要求:跨编译器、跨语言、跨平台