Delphi下的COM编程技术简介

组件对象模型(Component Object Model,以下简称COM)是组件对象之间相互接口的规范,凡是遵循COM接口规范的对象彼此之间能相互通信和交互,即使这些对象是由不同的厂商、用不同的语言、在不同的Windows版本甚至不同的机器上编写和建立的。Delphi支持COM接口规范,Object Pascal语言增加了对象接口的方法。用Delphi创建的COM对象还可以工作在MTS(Microsoft Transaction Server)环境中。

软件重用是业界追求的目标,人们一直希望能够像搭积木一样随意“装配”应用程序,组件对象就充当了积木的角色。所谓组件对象,实际上就是预定义好的、能完成一定功能的服务或接口。问题是,这些组件对象如何与应用程序、如何与其他组件对象共存并相互通信和交互?这就需要制定?个规范,让这些组件对象按统一的标准方式工作。

COM是个二进制规范,它与源代码无关。这样,即使COM对象由不同的编程语言创建,运行在不同的进程空间和不同的操作系统平台,这些对象也能相互通信。COM既是规范,也是实现,它以COM库(OLE32.dll和贴OLEAut32.dll)的形式提供了访问COM对象核心功能的标准接口以及一组API函数,这些API函数用于创建和管理COM对象。COM本质上仍然是客户服务器模式。客户(通常是应用程序)请求创建COM对象并通过COM对象的接口操纵COM对象。服务器根据客户的请求创建并管理COM对象。客户和服务器这两种角色并不是绝对的。

组件对象与一般意义上的对象既相似也有区别。一般意义上的对象是一种把数据和操纵数据的方法封装在一起的数据类型的实例,而组件对象则使用接口(Interface)而不是方法来描述自己并提供服务。所谓接口,其精确定义是“基于对象的一组语义上相关的功能”,实际上是一个纯虚类,真正实现接口的是接口对象)(Interface Object)。一个COM对象可以只有一个接口,例如Wndows 95/98外壳扩展;也可以有许多接口,例如Ac咖ex控件一般就有多个接口,客户可以从很多方面来操纵ActiveX控件。接口是客户与服务器通信的唯一途径。如果一个组件对象有多个接口,则通过一个接口不能直接访问其他接口。但是,COM允许客户调用COM库中的QueryInterface()去查询组件对象所支持的其他接口。从这个意义上讲,组件对象有点像接口对象的经纪人。

时间: 2024-09-17 04:44:50

Delphi下的COM编程技术简介的相关文章

解析.Net框架下的XML编程技术

.net框架|xml|编程 一.前言: XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web服务的基石,所以掌握.Net框架下的XML技术自然显得非常重要了.本文将指导大家如何运用C#语言完成.Net框架下的XML文档的读写操作.首先,我会向大家介绍.Net框架中与XML相关的命名空间和其中的重要类.其次,我还会给出有关的实例以使读者更进一步的了解XML文档的读写操作的具体方法. 二.XML命名空间和相关类简介: 在深入进行.Net框架下的XML文档的操作之前,我想很有必要向大

.Net框架下的XSLT转换技术简介

.net框架|转换 一.前言: XSLT转换技术是XML中的一项重要技术,本文将向XML开发者介绍.Net框架下的一些不同的XSLT转换技术.同时,本文还将介绍如何运用各种不同的输入数据源以完成一个XSLT转换.在.Net框架下,System.Xml.Xsl.XslTransform类能根据一个XSLT样式表文件转换一个XML文档,它是XSLT转换中最重要的一个类,同时它能够支持W3C的XSLT 1.0的语法,其运用的命名空间是http://www.w3.org/1999/XSL/Transfo

超线程多核心下Java多线程编程技术分析

一.Java环境下的多线程技术 构建线程化的应用程序往往会对程序带来重要的性能影响.例如,请考虑这样一个程序,它从磁盘读取大量数据并且在把它们写到屏幕之前处理这些数据(例如一个DVD播放器).在一个传统的单线程程序(今天所使用的大多数客户端程序)上,一次只有一个任务执行,每一个这些活动分别作为一个序列的不同阶段发生.只有在一块已定义大小的数据读取完成时才能进行数据处理.因此,能处理数据的程序逻辑直到磁盘读操作完成后才得到执行.这将导致非常差的性能问题. 在一个多线程程序中,可以分配一个线程来读取

007_《Delphi6数据库深入编程技术》

<Delphi6数据库深入编程技术> Delphi 教程 系列书籍 (007) <Delphi6数据库深入编程技术> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 原书名: 编程宝典2002(6)-Delphi 6数据库深入编程技术 作者: 张龙卿 出版社: 北京希望电子出版社 书号: 7900088083 出版日期:2002年1月 开本: 787*1092 1/16 页码: 316 版次: 2002年1月第一版第一次印刷 内容简介 这是一本面向

018_《Delphi下深入Windows核心编程》

<Delphi下深入Windows核心编程> Delphi 教程 系列书籍 (018) <Delphi下深入Windows核心编程> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3     书名: Delphi下深入Windows核心编程 作者: 飞思科技产品研发中心 出版社: 电子工业出版社 书号: 7505384023 出版日期:2003年1月 开本: 787*1092 1/16 页码: 525 版次: 2003年1

Delphi下汉字输入法的编程及使用

许多Windows应用程序的中西文录入界面中,中西文的录入需要反复切换汉字输入法,这样使用起来非常麻烦,下面来介绍一种比较简便的解决方法.本文的程序设计环境为Delphi Client/Server Suit Ver 3.0(以下简称Delphi 3.0)和中文Windows 95. 1.Delphi下的Imename.Imemode属性 在Delphi 3.0中的Tedit.Tmemo.TmaskEdit等编辑元件在应用程序中经常使用,这三种元件都具有ImeName.ImeMode属性.其中I

032_《Delphi下用Intraweb开发WEB程序应用实战(第二版)》

<Delphi下用Intraweb开发WEB程序应用实战第二版> Delphi 教程 系列书籍 (032) <Delphi下用Intraweb开发WEB程序应用实战第二版> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 作 者:高勇 内容简介 IntraWeb是Delphi自带的一套Web开发框架,它由Atozed Software公司(http://www.atozedsoftware.com)在2002年制作,并完美的植入Delphi7中.I

Java 编程技术中汉字问题的分析及解决(转)

编程|汉字|解决|问题 Java 编程技术中汉字问题的分析及解决 段明辉自由撰稿人2000 年 11月 8日内容: 汉字编码的常识 Java 中文问题的初步认识 Java 中文问题的表层分析及处理 Java 中文问题的根源分析及解决 Java Servlet 中文问题的根源 修改 Servlet.jar 中文乱码的处理函数 参考资料 作者简介在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够让那些汉字正确显示呢?Jav

基于Web的交互式数据库查询技术简介

web|交互|数据|数据库 1 概述 Web技术是一项很新的技术,它不仅为Internet的广泛普及起到关键性的作用,而且还在其他相关计算机网络应用技术发展中起到关键作用,例如Intranet.电子商务等,目前它已成为计算机网络应用的一个主要技术,尤其重要的技术是web动态技术,与后台数据库的交互式动态查询技术.本文针对常用的web动态技术,与数据库交互技术作以介绍. 2 实现Web动态技术的几种方法 2.1 利用CGI实现Web动态技术 在Web应用中,与其他动态编程技术相比,CGI技术虽然是