com_study

来源:互联网 发布:办公室软件培训 编辑:程序博客网 时间:2024/04/30 16:47
com_study
1.在client要调用某个com对象的方法的时候,他通过一个128位的GUID去找到相应的com对象
接口的指针,通过该接口指针去调用相应的函数集合。
2.clent只与接口打交道
3.客户通过classid来获得com对象,在系统一定要有该com对象的相关信息,就可以通过相关的
com对象所在的模块文件以及com对象在代码的入口点,客户就可以通过clsid来创建com对象
4.所以说当client在创建一个com对象的时候,他同时获得了至少一个接口指针的guid,然后client
可以通过该guid来调用该接口的方法,一个com对象至少实现一个接口。
5.一个com对象可能实现了多个接口,他可以通过某个接口指针来获得其他所有接口
6.com中的结构,包容和聚合,见书14
7.可重用性在c++对象与com对象有着本质的不同,前者是通过继承的方式来重用父类的非
私用的方法,而后者是通过包容和聚合的形式来使用包含着的对象的接口方法。并且com对象
的重用的动态的,也就是说但com对象B进行更新了之后,com对象A仍然可以使用com对象B的方法
并且不需要重新编译,但在c++中显示是不可能的。
8.com对象的多态性是通过接口表现出来的。而c++中是通过带有virtual修饰符的方法来得以表现其多态性的。
9.接口同样通过唯一标识来获得其相应的内存地址,就获得接口指针,其实通过IID来进行标识的。
10.将idl接口描述文件转换为常用的*.h头文件可以使用vc中的MIDL工具
11.com中接口只能单继承,而类却可以多重继承。
12.通过接口来控制对象的生命周期和接口查询
13.IUnknown引入了“引用计数”方法,可以有效的控制对象的生存周期,着是不是和
java的垃圾回收机制是一回事情
14.接口查询是用来同过一个接口指针来获得其他接口函数的一种方法。
15.任何实现IUnknown接口的com的对象自动获得了一下方法
iterface IUnknown
{
 HRESULT QueryInterface([in]REFIIDiid,[out]void **ppv);
 ULONG AddRef(void);
 ULONG Release(void);
原创粉丝点击