COM,魔鬼的艺术

COM,魔鬼的艺术。
真实不好意思,一不小心转到了COM这里。COM的工作方式跟计算机芯片或LEGO块的工作方式类似,互相拼接,然后工作。
我对COM是没有一点点了解了,只知道大多数的COM就是DLL。COM对象提供给用户大量的界面,它算是一个用C++集成出来的类。
当然提供界面也就是为了让大量的用户都能够使用了,提高了代码的重用性,其实更重要的一个应该是为无条件升级提高了效率。
呵呵,在这里虚函数也就派上了用场。
QUERYINTERFACE()对于COM来所非常重要,他是用来申请一个指向你所希望的界面函数的指针。要实现该请求,需要一个界面标识符。
这个标识符是唯一的指定给界面的数字,长度是128位。我想你应该知道能定义多少可能的界面标识符了吧。据说这样的工作让地球上所有的人一起
来做,也要花上1亿年(那也做不完,没人去种田,中间都饿死了,呵呵)。
COM的规则是:如果已经存在了一个界面的话,可以一直从该界面中申请其他的界面,条件是该界面来自于同一个COM对象。
ASSREF是一个古怪的函数,COM对象使用参数计数的技术来跟踪它们的情况。这是由COM的一个声明决定的:该技术和编程语言无关。
如果COM对象使用MALLOC()活着NEW[]函数的话,那就和C/C++语言有关了。当该引用计数递减到0的话,该对象就在函数内部消失。
COM对象是和COM对象兼容的。
以一个次序创建对象,以相反的顺序释放对象。GUID跟IID都可以用来引用COM对象跟他的界面。
DIRECTX,OLE,ACTIVEX都是基于COM技术的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章