COM学习笔记 参考书籍《COM原理与应用》

学习书籍:《COM原理与应用》

======================================================================

UUID生成方式:

1.UUIDGen.exe命令行工具

2.GUIDGen.exe对话框应用程序

3.HRESULT  CoCreateGuid(GUID * pguid);//成功返回S_OK

GUID guid;

HRESULT hr1 = CoCreateGuid( &guid );

cout<<hex<<guid.Data1<<"-";//long 4     #include<iomanip>

cout<<guid.Data2<<"-";//short 2

cout<<guid.Data3<<"-";//short 3

for(int i=0;i<8;++i)

cout<<(int)guid.Data4[i];

cout<<endl;

======================================================================

__cdecl__stdcall:

__cdeclC语言特有的可变参数列表的函数调用方式,如printf(const char * format , ...);其他语言可能不支持这种方式。

__stdcall是标准函数调用方式,即普通的函数参数个数确定的情况下使用。

======================================================================

IDL(Interface Discription Language,接口描述语言):


可由MIDL编译工具转换成标准*.h文件。idict.idl => idict.h

======================================================================

接口的继承性:

1.接口只能单继承

2.接口继承的目的是为了拓展接口,命名规范为IInterface,继承它的接口应命名为IInterface2或者IInterfaceEx(Exextension的意思)

3.COM规定,所有接口都必须直接或间接派生自IUnknown

COMJava技术的约定

1.接口之间只能单继承

2.实现类可以多继承接口

3.实现类之间可以多继承

======================================================================

IUnknown的作用:

1.提供接口查询。可以知道对象是否存在

2.生命周期的管理。内部使用引用计数(参照Qt中隐式共享技术,boost中的shared_ptr等智能指针的引用计数)

3.


4.




5.AddRef用来增加引用计数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值