com组件、对象、接口
1、com(component object model)组件对象模型。 特点:语言无关、可以重用 应用:DirectX、OLE DB、ADO OLE是com的应用。 2、 一个com组件包括多个com对象,一个com对象实现多个接口。 3、com对象类似于c++中的类,包含属性和方法。在c++中,可以用类来定义com对象。 com组件对客户来说是透明的。 GUID用于标识com组件。 com接口:二进制特性,每个接口必须从IUnknown继承而来。 4、 IUnknown的定义: interface IUnknown { HRESULT QueryInterface( [in] REFIID iid, [out] void **ppv); ULONG AddRef(); ULONG Release(); } 输入参数iid为接口标识符:IID。 输出参数ppv为查询得到的结果接口指针。 IUnknown包含三个函数,分别是 QueryInterface、AddRef、Release。这三个函数是无比重要的,而且它们的排列顺序也是不可改变的。 QueryInetrface:查询com对象的其他接口指针 AddRef和Release用于对引用计数进行操作。 引用计数:每个com对象都记录 一个“引用计数“的数值,该数值记录了有多少个指针在使用com对象