组件对象模型.doc

组件对象模型.doc

ID:59135613

大小:91.50 KB

页数:5页

时间:2020-09-12

组件对象模型.doc_第1页
组件对象模型.doc_第2页
组件对象模型.doc_第3页
组件对象模型.doc_第4页
组件对象模型.doc_第5页
资源描述:

《组件对象模型.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ComponentObjectModel(COM——组件对象模型)组件对象模型,一种面向对象的编程模式。它定义了对象在单个应用程序内部或多个应用程序之间的行为方式。英文为ComponentObjectModel,缩写COM,是微软对于网页服务器与客户端、增益集与Office系列软件之间交互的一项软件组件技术。简单的说组件对象模型(COM)是一种开发应用程序接口的标准。COM把软件应用分成了两大部分:COM服务器和COM客户。具有符合COM标准的接口软件叫做组件。组件类,组件对象,组件服务器由一个或多个抽象

2、类派生出来,并实现了抽象基类的各个纯虚函数的类叫COM类,或组件类。组件类的实例,叫做组件对象或COM对象。含有一个或多个组件类的DLL或EXE叫做COM服务器或组件,当然也可以这样说,可以提供一个或多个组件对象的DLL和EXE叫做COM服务器或组件。在COM技术中使用注册表存储关于组件的信息。客户可以再注册表中搜索它需要的组件。组件吧标识,存放位置等信息登记到系统的注册表中,即得进行注册。COM规定的标准服务COM规定,一个功能完善的组件至少应该有IUnknown,IClassFactory和IDisp

3、atch三个接口(作为约定,COM中所有接口名称都以字母“I”开头)。IUnknown为提供基本服务接口,组件上的其余接口都由IUnknown派生。客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown。所有的COM接口都继承了IUnknown,每个接口的vtbl中的前三个函数都是QueryInterface、AddRef、Release。这样所有COM接口都可以被当成IUnknown接口来处理。1.ClassIUnknown  2.     

4、   {  3.        public:  4.            5.            virtual HRESULT _stdcall QueryInterface(   6.                ConstIID& iid,  void  * *ppv) = 0;  7.              8.            virtual ULONG _stdcall AddRef( void) = 0;  9.              10.            v

5、irtual ULONG _stdcall Release( void) = 0;  11.       12.        }; IUnknown定义了接口查询函数 QueryInterface()HRESULT QueryInterface(constIID& iid,//需要查询接口的IDvoid** ppv//查询后得到的接口指针);参数:iid[in]指明需要查询的接口的IID.ppvObject[out]按第一个参数查询后得到的接口指针,该指针指向了这个接口的虚函数表,而在这个虚函数表中存放

6、的就是该接口中函数的指针IUnknown中AddRef、Release函数是用来控制组件对象生存周期。组件对象内设置了一个计数器,当客户程序在引用组件对象时,客户就调用AddRef()把计数器的值加1;当客户不再引用该组件对象时,客户调用Release,计数器减1.类工厂接口IClassFactory调度接口IDispatch使用ATL设计组件鼠标右键点击工作区间的IFirst,选择AddMethod方法输入名称:AddNumbers输入参数:[in]longNum1,[in]longNum2,[out]

7、long*ReturnVal实现接口函数。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。