COM是微软提出的第一个构件模型,源于OLE: Object Link and Embedding(动态连接和嵌入)。
1、COM(Component Object Model),组件对象模型,是一种以组件为发布单元的对象模型,这种模型使得各个软件组件可以用一种统一的方式进行交互。
2、COM对象(CLSID)和COM接口(IID),由全局唯一标识符GUID所标识,是一个128位的整形值。
3、使用COM组件时,用户只能通过COM接口去操作,COM接口实际上是一个虚拟函数指针表,指向了拥有特定功能的实例的函数集。一个COM组件可以有多个COM接口,而获取这些COM接口(其实就是获取对象的成员函数),我们需要用到QueryInterface(const IID&,void **ppv)。该函数利用查询的方式获取接口,这里第一个参数是需要获取接口的GUID,第二个参数是接收这些接口的具体对象(类似于返回一个拥有多个成员函数的对象)。
4、IUnknown接口类是最重要的接口类,所有的接口类都直接或间接派生于此。