摘要:
COM的IUnknown接口 COM定义的每一个接口都必须从IUnknown继承过来,因为IUnknown接口提供了两个非常重要的特性:生存期控制和接口查询。当客户程完成对对象的操作后,应该将对象释放掉以提高资源利用率。IUnknown中引入了“引用计数”的方法可以有效控制对象的生存周期。另外一方面如果一个COM对象实现了多个接口,而客户程序一开始只拥有一个接口指针,这时就可以借助IUnknown的“接口查询”方法来完成接口之间的跳转。IUnknown的C++定义如下:class IUnknown{public: virtual HRESULT _stdcall QueryInterfa... 阅读全文
摘要:
COM对象的标识——CLSID 客户程序不直接去访问COM组件,而是通过一个GUID进行对象的创建和初始化工作。COM规范采用了128位全局唯一标识符GUID。一个GUID的例子如下:{54BF6567-1007-11D1-B0AA-444553540000}在C/C++语言中可以用这样的结构描述:typedef struct _GUID{ DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8];}GUID; 于是前面的GUID例子可以定义为:extern “C” const GUID CLSID_MYFRISTCOMGUID ... 阅读全文