2024年3月27日发(作者:)
关于动态数据交换
Windows 为应用程序间的数据交换提供了多种方式,动态数据交换协议就是
其中一种使用项。动态数据交换协议是一整套信息和指引方针,在需要分享数据和
使用共享存储来交换数据的应用程序间发送信息。应用程序可使用该协议作为一次
性数据传输或者应用间发送更新使其成为新的可用数据的持续交换。
Windows还支持动态数据交换管理库(DDEML)。 DDEML是应用程序可用于共
享数据的动态链接库(DLL)。 DDEML提供的功能和消息简化了向应用程序添加
DDE功能的任务。 应用程序不是直接发送,发布和处理DDE消息,而是使用DDEML
函数来管理DDE对话。 (DDE对话是客户端和服务器应用程序之间的交互。)
DDEML还提供了一个管理DDE应用程序共享的字符串和数据的工具。 DDE应
用程序不是使用原子和共享内存对象的指针,而是创建和交换标识字符串的字符串
句柄和标识内存对象的数据句柄来标识存储对象。 DDEML还使服务器应用程序能
够注册它所支持的服务名称。 这些名称被广播给系统中的其他应用程序,这些应
用程序可以使用名称连接到服务器。 此外,DDEML通过强制DDE协议以一致的方
式实现DDE协议来确保DDE应用程序之间的兼容性。
使用基于消息的DDE协议的现有应用程序与使用DDEML的应用程序完全兼
容。 也就是说,使用基于消息的DDE的应用程序可以与使用DDEML的应用程序建
立对话并执行事务。 由于DDEML的许多优点,新应用程序应该使用它而不是DDE
消息。 要使用DDEML的API元素,必须在源文件中包含DDEML头文件,与DDEML
库链接,并确保DDEML动态链接库位于系统的搜索路径中。
本节讨论以下主题。
动态数据交换协议
由于Windows具有基于消息的体系结构,传递消息是在应用程序之间自动传输信
息的最合适的方法。 但是,消息只包含用于传递数据的两个参数(wParam和
lParam)。 因此,当应用程序之间传递的信息超过几个字时,这些参数必须间接
引用其他数据。 DDE协议确切定义了应用程序应该如何使用wParam和lParam参
数通过全局原子和共享内存句柄来传递更大的数据。 DDE协议具有分配和删除全
局原子和共享内存对象的特定规则。
全局原子是对字符串的引用。 在DDE协议中,原子标识交换数据的应用程序,交
换数据的性质以及数据项本身。 有关原子的更多信息,请参阅关于About
Atoms。
用于WINDOWS动态数据交换
DDE最适合于不需要持续用户交互的数据交换。 通常,应用程序为用户提供了一
种方法来建立交换数据的应用程序之间的链接。 一旦建立了链接,应用程序就可
以在没有用户参与的情况下交换数据。
DDE可用于实现广泛的应用程序功能 - 例如:
链接到实时数据,如股市更新,科学仪器或过程控制。
创建复合文档,如包含由图形应用程序生成的图表的文字处理文档。 使用DDE
时,图表将在源数据更改时更改,而文档的其余部分保持不变。
在应用程序之间执行数据查询,例如电子表格查询数据库以查找过期的帐户。
从使用者的角度看动态数据交换
下面的例子从用户的角度说明了两个DDE应用程序如何协作。电子表格用
户希望使用Microsoft Excel来跟踪纽约证券交易所特定股票的价格。 用户有一
个称为Quote的应用程序,可以访问纽约证券交易所数据。 Excel和报价之间的
DDE对话发生如下:
用户通过提供将提供数据和感兴趣的特定主题(NYSE)的应用程序名称
(报价)来启动对话。由此产生的DDE对话用于请求特定股票的报价。
Excel将应用程序和主题名称广播到当前在系统中运行的所有DDE应用程
序。引用回复,与Excel建立关于纽约证券交易所主题的对话。


发布评论