COMComponent Object Model (组件对象模型)的缩写,它是微软提出的组件化软件软件模型(官方站点:http://www.microsoft.com/com),目前已在Windows平台下广泛应用。
 
COM提供了一个组件与应用程序、其它组件之间通信的规范,该规范与编程语言和操作系统无关,就是说COM是二进制兼容的,它具有进程透明和可重用的特性。所谓进程透明说的不专业点,就是调用者看不出来组件运行在哪儿(本进程或者其他独立进程中)。可重用性是指COM对象的包容和聚合特性。
 
在COM规范中,要求接口必须满足规定的内存模型,且必须从IUnknown接口派生,IUnknown接口主要提供接口查询功能。为了准确的控制COM对象的生存期,IUnknown接口还实现了引用计数功能。
 
在系统中,COM对象使用GUID和ProgId作为标识,并保存在Windows注册表的HKEY_CLASSES_ROOT\CLSID分支下。
 
在编程时,接口的定义使用专门的IDL语言来描述,这便于实现COM的语言无关性,当然,VC++的向导功能会自动为我们生成接口定义的 IDL文件。
 
无论是MFC或者ATL都提供了对COM编程的支持(ATL无疑是更好的选择),在不彻底理解COM本质的前提下,仍然可以设计出强大的COM组件。
 
 

本文链接地址: COM.1 COM编程简介
https://blog.qingfengju.com/index.asp?id=82

上一篇: COM.3 用VC++生成接口的COleDispatchDriver包装类来调用COM组件
下一篇: COM.5 COM学习之不使用框架(ATL或MFC)创建COM组件

分类:Win32/C++ 查看次数:6076 发布时间:2009/6/15 23:49:46