Delphi中的COM编程

Delphi中的COM编程

ID:41032285

大小:63.50 KB

页数:7页

时间:2019-08-14

Delphi中的COM编程_第1页
Delphi中的COM编程_第2页
Delphi中的COM编程_第3页
Delphi中的COM编程_第4页
Delphi中的COM编程_第5页
资源描述:

《Delphi中的COM编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Delphi中的COM编程1.接口1.1定义接口:目的:什么是接口,以及和抽象类的关联以及不同点。抽象类(备注理解接口最简单的方法)永远不能创建一个抽象类的实例;本身不能实现功能,依靠派生类实现;接口被申明为interface类型。接口名从字母I开始。类类型名从T开始。所有的接口从IUnknown继承;不能创建接口实例;不能在接口中指定范围指示。所有的方法都是公有型(public),不能在接口中申明包括范围指示;不能申明变量;接口只能决定提供什么样的功能,对于如何完成功能没有限制。接口中申明的所有函数和过程,概念上讲都是虚(virtual)

2、抽象函数和过程。申明时不能带virtual;接口是不变的;1.2申明一个接口目的:如何声明一个接口GUID(GloballyUniqueIdentifier)全球唯一标示符:CoCreateGuid产生(API)1.3实现接口目的:如何实现接口实现IUnknown:QueryInterface、_AddRef、_Release使用TInterfaceObject来自动实现Iunknown,否则的话自己要实现上面的方法。创建、使用及销毁接口:create;指向接口的指针不访问任何信息;自动释放、强迫销毁一个接口将变量置为nil注:delphi

3、自动创建和销毁接口。获取单个接口的指针:直接分配:类与他们实现的接口类型兼容的varMyInteger:TClass;myNumber:Iinterface;beginmyInteger:=TClass.create;myNumber:=myInteger;end;GetInterface(constIID:TGUID;outobj):判断对象是否支持一个接口VarMyObject:TObject;myInterface:Iinterface;beginmyObject:=TClass.create;ifmyObject.GetInterf

4、ace(Iinterface,myInterface)then…end;as操作符:对象支持特定的接口(对象不支持接口就错的话,可以拦截错误);要使用getinterface和as的话必须要有一个guidas自动调用计数功能; 1.4高级多级接口问题目的:在一个类中实现多个接口在一个类中实现多个接口TXY=class(TInterfacedObject,IXX,IYY):类TXY实现了IXX和IYY接口的所有方法。多个接口不是多重继承:TXY有且只有一个基类TInterfacedObject;方法分辨字句:当接口方法在类中实现时,方法分辨子

5、句可使用改变他的名称TXY=class(TInterfacedObject,IXX,IYY)procedureIXX.pxy=pxy1procedureIYY.pxy=pxy2 接口授权:一个接口的实现授权给另一个类:一个类包含针对另一个类的指针。内部类:实现一个或多个接口的功能性;外部类:简单的将这些方法传递给内部类,而不是重新实现接口; 接口属性:可以定义只读、只写、或者读写属性;但是所有访问都必须通过访问函数,因为接口不能定义存储。 1.5小结目的:如何在delphi应用程序中内部使用接口,了解delphi语言要素的接口。申明一个接口

6、; 在类中实现接口; 实现IUnknown所需要的功能; 自动对象析构的处理; 在类中实现多个接口; 将一个接口的实现授权给一个内部对象; 定义并实现接口属性1.COM/DCOMCOM(ComponentObjectModel)COM/DCOM可以说是windows平台最基本和重要的技术,现在几乎所有microsoft的软件都是以COM/DCOM技术开发而成的。COM/DCOM基本上是一种组件模型,它提供了一些基本的原则方法让程序员在windows平台中使用标准的对象模型来开发软件组件,由于这些软件组件遵循了microsoft定义的标准,因

7、此这些组件可以使用在任何支持COM/DCOM标准的软件中,让这些软件组件提供的服务可以被不同的软件重复的使用。COM/DCOM软件借助接口来提供它的服务,一个COM/DCOM对象可以同时提供数个不同的接口,并且在不同的接口中提供不同的方法和属性。COM/DCOM至少提供并且实现一个称为IUnknown的接口,这个接口提供了最基本且必要的方法,它是所有其它接口的父借口,其它借口都是从他继承而来的。COM/DCOM对象和他所有的接口都必须有所谓的CoClass(ComponentObjectClass)来加以定义。如果不定义在一个CoClass

8、中就说明COM/DCOM不支持这个接口,客户端也无法取得这个接口提供的服务。CoClass是类别的定义,在使用COM/DCOM对象前,必须先使用一种方法从类别定义建立真正的类别对

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

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

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