1.1 COM的起源
1.1.1 OLE的发展历史
1.1.2 组件的产生
1.1.3 面向对象的组件模型 – COM
1.2 COM结构
1.2.1 对象与接口
1.2.2 客户/服务器模型
1.2.3 COM库
1.3 COM特性
1.3.1 语言无关性
1.3.2 进程透明特性
1.3.3 可重用性
1.4 COM的发展前景
1.4.1 COM与Windows操作系统
1.4.2 COM与数据库
1.4.3 COM与Intranet应用
1.4.4 COM与Internet
“COM组件”为“COM对象”提供了活动的空间,“COM对象”以“COM接口”的方式提供服务。
使用“COM对象”的应用(或另一个对象)称为客户,有时也称为“COM对象”的用户。
接口是一组逻辑上相关的函数集合,其函数也被称为接口成员函数。
在COM模型中,对象本身是对于客户来说是不可见的,客户请求服务时,只能通过接口进行。
每一个接口都由一个128位的全局唯一标识符(GUID)来标识。客户通过GUID获得接口的指针,再通过接口指针,客户就可以调用其相应的成员函数。
与接口类似,每个对象也用一个128位GUID来标识,称为CLSID。
根据COM规范,一个COM对象如果实现了多个接口,则可以从某个接口得到该对象的所有其他接口。
COM中两种对象重用结构:包容,聚合。
COM对象的进程模型:
1. 进程内服务程序。通常以DLL的形式实现。
2. 本地服务程序。通常是一个exe文件。
3. 远程服务程序。服务程序运行在与客户不同的机器上。
客户程序在使用组件对象时不需要区别COM对象的不同进程模型,但实现COM时应该慎重选择进程模型。
对于COM对象的客户程序来说,它只是通过接口使用对象提供的服务,它并不知道对象内部的实现过程,因此,组件对象的重用性建立在组件对象的行为方式上,而不是具体的实现上。