COM(Component Object Model)是一种用来建立组件的二进制和网络规范(标准)。COM的中文名称是组件对象模型。
COM规范说明了如何建立可以动态替换更新的组件。只要组件遵守COM规定,不同的组件开发者就可以把不同的组件组装起来,并且在必要时更换或者升级相应的组件。COM还提供了允许任意两个组件之间互相通信的标准。这里所提到的“任意”组件可以处于联网的不同计算机上。COM只是一个二进制的标准,它和语言无关,不要把它和C++、Basic等同起来。COM和语言的关系可以用一句话来体现——使用某种语言,遵守COM规范,才能实现COM组件。
COM组件即遵守了COM规范的软件模块,是可独立发布的二进制单元。
COM组件是以动态链接库(DLL)或可执行(EXE)等文件形式发布的一些相对较小的二进制代码。这些代码是动态链接的,运行后处于组件对象当中,所以COM组件像积木块一样是以完整的实体展现在用户面前。
COM对象是COM组件模块内组件类的运行实例。(www.xing528.com)
组件是我们对以文件形式出现在二进制代码群的称呼。实际上,为了实现目标功能,一个组件往往包含一个或多个类来实现这些功能,它们包含在组件这个模块中,称之为“组件类”。当COM组件代码被链接运行时,组件类的运行实例就称为COM对象。COM对象包含属性和方法,对象的属性状态反映了对象的存在,也是区别于其它对象的要素;对象的方法就是COM对象提供给外界的接口,接口是对象与用户交互的惟一途径,因此,封装性是COM对象的基本特性。
COM接口是COM组件与外界进行交互的方法集。
对象的方法就是函数,一个接口也就是一套函数和它们参数的定义。每个COM对象至少具有一个接口,但它们经常提供很多接口,每个接口都是逻辑上相关的一些函数的集合。在COM规范中,COM接口是最重要的部分,因为组件对象与用户之间通过接口进行交互,用户或者客户请求服务必须通过接口才能进行。COM规范中核心内容就是关于接口的定义,其中涉及到接口标识符、接口函数命名、函数调用习惯、参数处理等很多细节规定。
全局惟一标识符GUID是全球范围内惟一的128位的随机数。用于标识组件对象的GUID称为CLSID(class identifier,类标识符或类ID),用于标识接口的GUID称为IID(interface identifier,接口标识符或接口ID)。组件对象和接口的使用是通过它们的GUID进行的,对于分布在不同地域不同机器上的组件对象,GUID的惟一性保证了它们不会发生冲突。GUID是由比较复杂的算法产生的随机数,它的全球惟一性是概率意义上的惟一性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。