Windows操作系统经历了从16位到32位的变迁,在16位平台即windows3.x上,除了对OLE的支持,虽然操作系统已经按照组件(DLL)模块的结构建立起来,但模块与模块之间大多并没有采用COM接口,因此这种组件模型的优势并没有充分发挥出来;在32位windows版本中,不管是windows95/98还是NT,很多系统部件是以COM的形式实现,除了考虑与以前版本的SDK兼容之外,一些新增的组件均提供了COM接口,这样做的好处,不仅使各种开发语言可直接调用系统提供的功能,而且也有利于在特殊情况下对组件的单独升级,而这种部分升级对于MS-DOS系统和16位windows系统是很困难的事。
在windows操作系统平台上,有一些用COM形式提供的组件模型极大的丰富了windows的功能,而且也使windows功能扩展的更加灵活。例如
1 DirectX多媒体软件包。它以COM接口的形式为Windows平台提供了强大的多媒体功能,现广泛用于游戏娱乐软件以及其他多媒体软件的开发。
2 RDO(remote data object,远程数据对象)和DAO(data access object,数据访问对象)数据库访问对象库。它以COM自动化对象的形式为数据库应用提供了便捷的操作方法。而数据访问一致接口OLE DB/ADO(active data object,活动数据对象)更淋漓尽致地发挥了COM接口的作用。
3 Internet Client SDK. 它提供了一组COM库,为应用系统增加Internet特性提供了底层透明的一致操作。
其他还有一些组件如MAPI(message API,消息应用编程接口),ADSI(active directory service interface,活动目录服务接口)等,它们都提供了一致、高效的服务。从整个windows操作系统看,COM成了系统的基本软件模型,它带来的是灵活性和高效率,以及应用开发的一致性。
选自潘爱民《com原理与应用》。