动态数据交换管理库

动态数据交换 (DDE) 是一种进程间通信形式,这种形式使用共享内存在应用程序之间交换数据。 应用程序可以使用 DDE 进行一次性数据传输,并持续交换和更新数据。

本节内容

名称 描述
关于 DDEML 讨论动态数据交换。
基本概念 讨论有关动态数据交换的关键概念。
对话管理 讨论客户端和服务器之间的对话。
数据管理 讨论内存对象如何将数据从一个应用程序传递到另一个应用程序。
监视应用程序 讨论如何将动态数据交换管理库的元素用于创建监视系统中的动态数据交换活动的应用程序。
名称服务 讨论动态数据交换管理库如何促使服务器应用程序能够注册所支持的服务名称。
事务管理 讨论客户端如何发送事务,以从服务器获取数据和服务。
DDEML 引用 包含 API 引用。

DDEML 函数

名称 描述
DdeAbandonTransaction 放弃指定的异步事务,并释放与该事务关联的所有资源。
DdeAccessData 提供对指定 DDE 对象中的数据的访问权限。 应用程序在访问完对象中的数据后,必须调用 DdeUnaccessData 函数。
DdeAddData 将数据添加到指定的 DDE 对象。 应用程序可以添加从与对象开头的任何偏移量开始的数据。 如果新数据与对象中已有的数据重叠,则新数据将覆盖发生重叠的旧数据(以字节表示)。 未定义尚未写入的对象中位置内容。
DdeCallback 与动态数据交换管理库 (DDEML) 函数结合使用的应用程序定义的回调函数。 它会处理 DDE 事务。 PFNCALLBACK 类型定义指向此回调函数的指针。 DdeCallback 是应用程序定义的函数名称的占位符。
DdeClientTransaction 开始客户端和服务器之间的数据事务。 只有 DDE 客户端应用程序才能调用此函数,并且应用程序只能在与服务器建立对话后使用此函数。
DdeCmpStringHandles 比较两个字符串句柄的值。 字符串句柄的值与关联字符串的大小写无关。
DdeConnect 与支持指定服务名称和主题名称对的服务器应用程序建立对话。 如果存在多个此类服务器,则系统仅选择一个。
DdeConnectList 与支持指定服务名称和主题名称对的所有服务器应用程序建立对话。 应用程序还可以使用此函数,通过向函数传递现有对话句柄来获取对话句柄列表。
DdeCreateDataHandle 创建 DDE 对象,并使用指定缓冲区中的数据填充对象。 在涉及将数据传递给合作伙伴应用程序的事务期间,DDE 应用程序会使用此函数。
DdeCreateStringHandle 创建标识指定字符串的句柄。 DDE 客户端或服务器应用程序可以将字符串句柄作为参数传递给其他动态数据交换管理库 (DDEML) 函数。
DdeDisconnect 终止由 DdeConnectDdeConnectList 函数启动的对话,并使指定的对话句柄失效。
DdeDisconnectList 销毁指定的对话列表并终止与列表关联的所有对话。
DdeEnableCallback 启用或禁用特定对话或调用应用程序当前建立的所有对话的事务。
DdeFreeDataHandle 释放 DDE 对象,并删除与该对象关联的数据句柄。
DdeFreeStringHandle 释放调用应用程序中的字符串句柄。
DdeGetData 将数据从指定的 DDE 对象复制到指定的本地缓冲区。
DdeGetLastError 检索因 DDEML 函数失败而设置的最新错误代码,并将错误代码重置为 DMLERR_NO_ERROR。
DdeImpersonateClient 在 DDE 客户端对话中模拟 DDE 客户端应用程序。
DdeInitialize 向动态数据交换管理库 (DDEML) 注册应用程序。 应用程序必须在调用任何其他 DDEML 函数之前调用此函数。
DdeKeepStringHandle 递增与指定句柄关联的使用计数。 此函数促使应用程序能够保存传递给应用程序 DDE 回调函数的字符串句柄。 否则,当回调函数返回时,将删除传递给回调函数的字符串句柄。 此函数还应用于保留由 DdeQueryConvInfo 函数返回的 CONVINFO 结构引用的字符串句柄的副本。
DdeNameService 注册或注销 DDE 服务器支持的服务名称。 此函数会导致系统将 XTYP_REGISTERXTYP_UNREGISTER 事务发送给其他正在运行的动态数据交换管理库 (DDEML) 客户端应用程序。
DdePostAdvise XTYP_ADVREQ 事务发送给每个客户端的调用(服务器)应用程序 DDE 回调函数,其中在指定的主题和项上具有活动建议循环。 每当与主题名称或项名称对关联的数据发生更改时,服务器应用程序都应调用此函数。
DdeQueryConvInfo 检索有关 DDE 事务以及发生事务的对话的信息。
DdeQueryNextServer 检索指定对话列表中的下一个对话句柄。
DdeQueryString 将与字符串句柄关联的文本复制到缓冲区中。
DdeReconnect 促使客户端动态数据交换管理库 (DDEML) 应用程序能够尝试与已终止与客户端的对话的服务重新建立对话。 重新建立对话时,DDEML 会尝试重新建立任何预先存在的建议循环。
DdeSetUserHandle 将应用程序定义的值与对话句柄或事务标识符相关联。 这对于简化异步事务的处理非常有用。 应用程序可以使用 DdeQueryConvInfo 函数检索此值。
DdeUnaccessData 取消访问 DDE 对象。 在访问对象后,应用程序必须调用此函数。
DdeUninitialize 释放与调用应用程序关联的所有 DDEML 资源。

DDEML 事务

名称 描述
XTYP_ADVDATA 通知客户端数据项值已更改。 在与服务器建立建议循环后,DDE 客户端回调函数 DdeCallback 会收到此事务。
XTYP_ADVREQ 通知服务器,建议事务在指定的主题名称和项名称对上未完成,并且与主题名称和项名称对对应的数据已更改。 在服务器调用 DdePostAdvise 函数后,系统会将此事务发送给 DDE 回调函数 DdeCallback
XTYP_ADVSTART 客户端使用 XTYP_ADVSTART 事务与服务器建立建议循环。 当客户端将 XTYP_ADVSTART 指定为 DdeClientTransaction 函数的 wType 参数时,DDE 服务器回调函数 DdeCallback 将收到此事务。
XTYP_ADVSTOP 客户端使用 XTYP_ADVSTOP 事务结束与服务器的建议循环。 当客户端在 DdeClientTransaction 函数中指定 XTYP_ADVSTOP 时,DDE 服务器回调函数DdeCallback 将收到此事务。
XTYP_CONNECT 客户端使用 XTYP_CONNECT 事务建立对话。 当客户端在调用 DdeConnect 函数时指定了服务器支持的服务名称(以及非 NULL 的主题名称),DDE 服务器回调函数 DdeCallback 将收到此事务。
XTYP_CONNECT_CONFIRM DDE 服务器回调函数 DdeCallback 将收到 XTYP_CONNECT_CONFIRM 事务,以确认已与客户端建立对话,并向服务器提供对话句柄。 系统会将此事务作为以前的 XTYP_CONNECTXTYP_WILDCONNECT 事务的结果发送。
XTYP_DISCONNECT 当对话中的应用程序合作伙伴使用 DdeDisconnect 函数终止对话时,应用程序 DDE 回调函数 DdeCallback 将收到 XTYP_DISCONNECT 事务。
XTYP_ERROR 发生严重错误时,DDE 回调函数 DdeCallback 将收到 XTYP_ERROR 事务。
XTYP_EXECUTE 客户端使用 XTYP_EXECUTE 事务将命令字符串发送到服务器。 当客户端在 DdeClientTransaction 函数中指定 XTYP_EXECUTE 时,DDE 服务器回调函数DdeCallback 将收到此事务。
XTYP_MONITOR 每当系统中发生 DDE 事件时,DDE 调试器的 DDE 回调函数 DdeCallback 都将收到 XTYP_MONITOR 事务。 若要接收此事务,在调用 DdeInitialize 函数时,应用程序必须指定 APPCLASS_MONITOR 值。
XTYP_POKE 客户端使用 XTYP_POKE 事务将未请求的数据发送给服务器。 当客户端在 DdeClientTransaction 函数中指定 XTYP_POKE 时,DDE 服务器回调函数DdeCallback 将收到此事务。
XTYP_REGISTER 每当 DDEML 服务器应用程序使用 DdeNameService 函数注册服务名称,或每当启动支持系统主题的非 DDEML 应用程序时,DDE 回调函数 DdeCallback 都会收到 XTYP_REGISTER 事务类型。
XTYP_REQUEST 客户端使用 XTYP_REQUEST 事务从服务器请求数据。 当客户端在 DdeClientTransaction 函数中指定 XTYP_REQUEST 时,DDE 服务器回调函数DdeCallback 将收到此事务。
XTYP_UNREGISTER 每当 DDEML 服务器应用程序使用 DdeNameService 函数注销服务名称,或每当终止支持系统主题的非 DDEML 应用程序时,DDE 回调函数 DdeCallback 都会收到 XTYP_UNREGISTER 事务类型。
XTYP_WILDCONNECT 利用 XTYP_WILDCONNECT 事务,客户端可在每个与指定的服务名称和主题名称匹配的服务器服务名称和主题名称对上建立对话。 当客户端在调用 DdeConnectDdeConnectList 函数时指定 NULL 服务名称和/或 NULL 主题名称,DDE 服务器回调函数 DdeCallback 将收到此事务。
XTYP_XACT_COMPLETE 当调用 DdeClientTransaction 时启动的异步事务已完成时,DDE 客户端回调函数 DdeCallback 将收到 XTYP_XACT_COMPLETE 事务。

DDEML 结构

名称 描述
CONVCONTEXT 包含 DDE 客户端应用程序提供的信息。 此信息对于专用或跨语言 DDE 对话非常有用。
CONVINFO 包含有关 DDE 对话的信息。
DDEML_MSG_HOOK_DATA 包含有关 DDE 消息的信息,并提供对消息所引用数据的读取访问权限。 此结构旨在由 DDEML 监视应用程序使用。
MONCBSTRUCT 包含有关当前 DDE 事务的信息。 监视系统传递到其他应用程序的 DDE 回调函数的事务时,DDE 调试应用程序可以使用此结构。
MONCONVSTRUCT 包含有关 DDE 对话的信息。 DDE 监视应用程序可以使用此结构来获取有关已建立或已终止的对话的信息。
MONERRSTRUCT 包含有关当前 DDE 错误的信息。 DDE 监视应用程序可以使用此结构来监视 DDE 管理库函数返回的错误。
MONHSZSTRUCT 包含有关 DDE 字符串句柄的信息。 监视 DDE 管理库的字符串管理器组件的活动时,DDE 监视应用程序可以使用此结构。
MONLINKSTRUCT 包含有关 DDE 建议循环的信息。 DDE 监视应用程序可以使用此结构获取有关已开始或已结束的建议循环的信息。
MONMSGSTRUCT 包含有关 DDE 消息的信息。 DDE 监视应用程序可以使用此结构来获取有关已发送或已发布的 DDE 消息的信息。