一、UUID
通过特定的算法将主机和时间印鉴结合起来得到的数值;
组件对UUID的使用得到的叫做GUID;
如果我们用GUID唯一的表示组件的类,又叫做CLSID
如果我们用GUID唯一的表示组件的接口,又叫做IID
…(typedef)
GUID的产生方法:
1.GUIDGEN.exe
2.HRESULT CoCreateGuid (GUID * pguid
二、IDL
是组件的核心部分,用来描述组件接口的语言,定义COM接口。
作用:
剥离了编程语言和平台的限制,促进了建立二进制的组件模型。
COM IDL = = RPC IDL + 继承、多态等性质
IDL由微软的MIDL编译器进行编译
三、接口与IUnknown
import "unknwn.idl"; //作用类似include,表示引入IDL的文档
[
object,//指定该接口是一个COM接口,不是RPC接口
uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx), //UUID唯一的标识
]
//[]中内容的表示属性
interface Imath : IUnknown //关键字interface白表示定义接口,接口继承自IUnkonw接口
{ //
HRESULT Add([in] long op1,[in] long op2,[out,retval] long * pval);
}
MIDL将上面代码映射成C++即为:
#include"unknwn.h"
class Imath:public IUnknown
{
public:
virtual BOOL _stdcall Add(long op1,long