COM原理及应用----统一数据传输

1、概述

COM提供了应用之间数据交换的标准方案,称为统一数据传输(UDT,uniform data transfer)。统一数据传输技术建立在结构化存储技术的基础之上,它通过一个“数据对象”来表达要传输的数据信息,因此,统一数据传输技术的核心在于数据对象的定义和实现。剪贴板和拖-放是统一数据传输的两个典型应用。

2、数据交换标准

早期的OLE1.0版本使用DDE(Dynamic Data Exchange,动态数据交换)作为数据交换标准,但DDE使用的格式比较简单,并且只能用全局内存作为传输介质,所以传输的效率和功能都受限制。OLE2.0版本引入了COM作为其基本的结构模型,使用COM提供的统一数据传输作为其数据交换机制,可直接在不同介质之间进行传输。

3、数据交换与传输协议的分离

在不同应用之间进行数据传输操作包括两方面的内容,首先是数据格式的统一,其次是传输协议的建立。

以前采用DDE方式只能使用简单的数据结构对信息进行描述,COM的统一数据传输机制使用“数据对象”作为信息实体,数据对象通过IDataObject 接口暴露其内部信息。由于数据对象本身是一个COM对象,因此它不仅可以表达一般的结构化信息,也可以表达一些非结构化信息,甚至是动态信息。IDataObject接口为应用程序进行数据传输建立了标准。在Windows平台上,最基本的传输协议为剪贴板、拖-放,应用程序通常利用这两种协议获得数据对象。

在统一数据机制引入到Windows系统之前,Windows提供了许多API函数以及预定义的消息用于应用之间传输数据的桥梁。这些API函数把传输协议和传输数据信息绑在一起,比如用于处理剪贴板数据传送的一组函数:GetClipboardData、SetClipboardData和 CloseClipboard等,而DDE则通过发送消息作为数据传送的手段。

COM提供的统一数据传输机制可很好地避免Windows API函数的数据传输的限制,一方面它定义了两个数据结构FORMATETC和STGMEDIUM,分别用来描述数据格式和存储介质,使新的机制可适应更广泛的数据类型和存储介质;另一方面它为数据对象提供了“数据表化通知”的机制。

数据对象的概念使统一数据传输机制不仅可用于应用之间传输数据,也可以成为组件程序之间的信息交换标准。

4、剪贴板

剪贴板是一个全系统共享的数据缓冲区,每个应用都可以通过系统提供的API函数访问剪贴板。它的三个标准操作是:剪切、复制、粘贴。

Windows系统在引入COM的统一数据传输机制之前,提供了一组API函数以及预定义的CF_***标准格式,这些格式包括文本类型、位图类型、图元文件(metafile)数据等,而且这些数据必须存放在全局内存中。但剪贴板技术与数据对象结合之后,情况有了很大的变化,可用于传输数据对象,比如 OLE文档对象、ActiveX控制对象等,或者是应用程序中自定义的数据对象,只要此对象实现IDataObject接口即可。剪贴板成为数据对象的提供方和接收方之间的通信协议,而且这种通信方式是异步进行的。

5、拖-放

拖-放技术也是基本的传输协议,它的使用方式与剪贴板有所不同,程序采用同步的方式进行。

6、数据结构FORMATETC和STGMEDIUM

FORMATETC结构定义了用于传输的数据格式,它扩充了基本的剪贴板数据格式;STGMEDIUM结构定义了用于传输的介质类型,它即可以描述常用的全局内存,也可以描述其他的存储介质。

7、数据对象和IDataObject接口

统一数据传输中的数据对象是一个COM对象,它实现了IDataObject接口。在数据对象的实现方(即提供方)和客户(即接收方)之间,IDataObject接口为两者建立了标准,而各种传输协议如剪贴板和拖-放等,它们所传递的实际上是IDataObject接口指针。

时间: 2024-10-27 02:51:28

COM原理及应用----统一数据传输的相关文章

104_《Delphi5开发人员指南》

<Delphi5开发人员指南> Delphi 教程 系列书籍 (104) <Delphi5开发人员指南> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 原书名: Delphi 5开发人员指南 作者: (美)Steve Teixeira.Xavier Pacheco著 出版社: 机械工业出版社 书号: 7111080408 出版日期:2000年7月 开本: 787*1092 1/16 页码: 1263 版次: 2000年7月第一版第

使用MFC开发ActiveX控件

摘要: 本文对COM组件中的ActiveX控件的MFC开发方法进行了介绍,讲述了用户自定义和库存属性.方法以及事件的添加方法和属性页的制作过程.使读者能够掌握基本的MFC ActiveX开发方法. 前言 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件.ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象.统一数据传输.OLE文档.属性页.永久存储以及OLE自动化等. ActiveX控件作为基本的界面单元,必须拥有自己的属性和

设计模式之iterator模式到STL中iterator迭代器

设计模式之iterator模式到STL中iterator迭代器 近日看<设计模式:可复用面向对象软件的基础>一书中23种模式中就有iterator迭代模式,且篇幅颇大.机缘巧合.我在分析STL代码结构的时候,同样发现iterator迭代器,且占据相当大的地位. 从设计模式的角度来看iterator模式 ü     意图 提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露对象的内部表示.我想GOF 的意图这次说的很明白了,就是我想遍历一个聚合对象.但又隐藏内部实现.该怎么办呢?本模式主要

Check Point 推出未来网络安全架构:Check Point Infinity

全球最大专注于安全的解决方案提供商Check Point以色列捷邦安全软件科技有限公司日前推出了Check Point Infinity,这一革命性网络安全架构旨在满足企业组织的关键性需求.Check Point Infinity 是首个跨网络.云端和移动设备的统一安全平台,提供无与伦比的威胁防护,可保护客户免遭日益增加的网络攻击威胁. "Check Point Infinity 是我们力求构建安全架构总体设想的巅峰之作,它能够跨网络.云端和移动设备,将我们可提供的最佳安全性.最佳情报水平.最佳

我的SEO成长之路(第一篇)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 现在我和大家分享一下我的SEO路程吧,我是由03年就开始做SEO这行,开始的时候,一直到今天.开始的时候,我不懂什么是网站推广,什么是SEO,也是白纸一张. 起初,我搞了一个综合性的购物网站,首次改名为CD SHOW购物网站,做了半年,什么反应都没有,只知道有百度的收录,后来通过朋友的介绍,认识了一位做网上推广的朋友.于是他就告诉我,你再这样

除了红包春晚还有黑科技

内什么,春晚的广告看完了吧,红包抢完了吧,我们来聊点高大上的吧.咦-春晚有高大上的么?谁说没有呢?虽然每年都在被吐槽,但除了魔术,还是有"黑魔法"的.一.阳阳和动作捕捉虽然看起来就是个卡通形象,但春晚吉祥物阳阳可是有正经工作的哦,它的工作叫"虚拟主持人".洋气点的解释就是:在虚拟演播室的基础上,将节目中的主持人由真人替换为虚拟的角色,形成了这种新的节目表现形式.它既可以将虚拟主持人放于虚拟的场景中,形成"虚拟场景+虚拟人"的模式,也可以将虚拟的主

超五类双绞线制作及原理

这几天看到还是有蛮多人对双绞线的各种技术问题存在认识不足和误区.以解决大家的疑惑和反复题问,特编写此贴,希望对大家进一步了解.认识超五类双绞线(网线)及其标准和电气原理带来帮助. 一.首先,让我们来具体认识一下什么是双绞线 1.双绞线:作为一种传输介质它是由二根包着绝缘材料的细铜线按一定的比率相互缠绕而成. 超五类双绞线,由四对相互缠绕的线对构成,共八根线. 2.为什么要把二根线双绞? 因为这种相互缠绕改变了电缆原有的电子特性.这样不但可以减少自身的串扰,也可以最大程度上防止其它电缆上的信号对这

SQL Server 原理

在讲SQLSERVER内部原理的之前,我觉得非常有必要向大家介绍一下SQLSERVER的历史. 让我们站在1999年,看看计算机数据库业界到底处于什么状态. 1999年,Oracle已经于1998年9月发布了Oracle 8i(可能中文版在1999年才来到中国).Oracle 8i支持用JAVA编写存储过程,支持XML,支持Linux. 1999年1月,SQLSERVER7正式发布.SQLSERVER7重构了整个数据库引擎(相当于重写了SQLSERVER).SQLSERVER第一次完整性的支持了

采用CAS原理构建单点登录

企业的信息化过程是一个循序渐进的过程,在企业各个业务网站逐步建设的过程中,根据各种业务信息水平的需要构建了相应的应用系统,由于这些应用系统一般是在不同的时期开发完成的,各应用系统由于功能侧重.设计方法和开发技术都有所不同,也就形成了各自独立的用户库和用户认证体系.随着新的业务网站不断的增加,用户在每个应用系统中都有独立的账号,这样就造成在访问不同的应用系统时,需要记录对应的用户名和密码,多个用户名密码极易记混,如果忘记或记错了某一个业务网站的用户名或密码就无法进行登录,耽误工作,影响工作效率,随