1.COM简介
COM(Component Object Model ),即组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用统一的方式进行交互。COM即提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间的交互规范不依赖于任何特定的语言,所以COM也可以是不同语言写作开发的一种标准。
2.COM结构
COM标准包括规范和实现两大部分。规范部分定义了组件与组件之间通信机制,不依赖于任何特定的语言和操作系统;实现部分是COM库,COM库为COM规范的实现提供一些核心服务。
2.1.COM对象和接口
类似于C++中对象的概念,COM对象时某个类的一个实例;而类则是一组相关的数据和功能组合在一起的定义。使用对象的应用(或另一个对象)称为客户。
接口是一组逻辑上相关的函数集合,其函数也被称为接口成员函数。对象通过接口成员函数为客户提供各种形式的服务。
在COM模型中,对象本身对于客户是不可见的,客户只能通过接口请求对象提供的服务。每个接口都由一个128位的全局唯一标识符(GUID,Globally Unique Identifier)来标识。客户通过GUID获得接口的指针,再通过接口指针,客户就可以调用其相应的成员函数。对象在内部实现接口提供的函数向用户提供功能。在COM模型中,对象通过接口和接口函数为客户提供服务,对于客户来讲,它只与接口打交道。
与接口类似,每个对象也用一个128位GUID来标识,称为CLSID(class identifier,类标识符或类ID)。客户程序由CLSI