动态数据交换管理库的基本概念.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态数据交换管理库的基本概念

动态数据交换管理库的基本概念 客户和服务的交互过程: DDE总是发生在客户应用程序和服务应用程序之间。DDE客户应用程序通过建立和服务程序的会话来发送事务(transaction)来实现数据交换。一个事务是对数据或服务的请求。DDE服务应用程序通过提供数据或服务来响应客户程序的请求。一个服务程序同时可以和多个客户程序建立会话;一个客户程序也能同时从多个服务程序中获取数据。一个应用程序即可以是客户程序,也可以是服务程序。客户或者服务程序都可以在任意时刻结束已经建立的会话。 事务(Transaction)和DDE回调函数:? DDEML通过发送事务给应用程序的DDE回调函数来通知应用程序相应的活动。一个DDE事务同一个消息很相似。事务是一个带有关于该事务附加信息参数的命名参数。DDEML会传递一个事务给一个由应用程序定义的DDE回调函数,该函数会执行相应的操作。例如:一个客户应用程序试图用DdeConnect函数来同一个服务应用程序建立一个会话。该函数会使DDEML发送一个XTYP_CONNECT事务给服务应用程序的DDE回调函数。该回调函数可以通过返回TRUE给DDEML来允许建立该会话;或者返回FALSE来拒绝。 服务名、主题名和事务名: DDE服务器使用三层结构(服务名、主题名和数据项名)来唯一地标识一个在会话中被交换地数据单元。服务名是一个在客户程序试图同服务器建立会话时服务应用程序用来响应的字符串。为了同服务器建立会话,客户程序必须指定服务名。虽然一个服务器可以响应多个服务名,但是大多数服务器一般只响应一个服务名。主题名是一个用来标识逻辑数据上下文的字符串。对于那些操作基于文件处理的服务器,主题名通常是文件名;其它的则是由应用程序指定的字符串。除了服务名,一个客户程序如果试图建立一个会话,则必须指定主题名。数据项名是一个用来标识服务器传递给客户程序的数据单元的字符串。 系统主题: 系统主题提供了一个让任何DDE客户程序得到感兴趣信息的上下文。建议服务应用程序总是支持系统主题。在DDEML.H头文件中,系统主题被定义为SZDDESYS_TOPIC。为了确定存在哪个服务器以及服务器所提供的信息类型,客户程序可以在启动时,通过设置设备名为NULL来请求一个关于系统主题的会话。一个服务器必须支持下面的系统主题:SZDDE_ITEM_ITEMLIST、SZDDESYS_ITEM_FORMATS、SZDDESYS_ITEM_HELP、SZDDESYS_ITEM_RTNMSG、SZDDESYS_ITEM_STATUS、SZDDESYS_ITEM_SYSITEMS和SZDDESYS_ITEM_TOPICS。这些数据项名定义在DDEML.H头文件中。为了获得这些字符串的字符串句柄,应用程序必须使用DDEML的字符串管理函数。 建立 在调用其它DDEML函数前,应用程序必须调用DdeInitialize函数。DdeInitialize函数获取应用程序的实例标识符,注册应用程序的DDE回调函数,并为回调函数指定事务过滤。每个应用程序实例或动态链接库必须将它的实例标识符作为IdInst参数传到那些相应的DDEML函数中。多DDEML实例的目的是为了支持那些DDEML和应用程序同时都需要使用的DLL文件。一个应用程序不能使用多于一个的DDEML的实例。 事务过滤通过阻止DDEML传递不需要的事务给应用程序的DDE回调函数来优化系统性能。应用程序通过在调用DdeInitialize函数时设置ufCmd参数来允许事务过滤。应用程序必须为不在回调函数中处理的每类事务指定一个事务过滤标志。应用程序可以通过调用DdeInitialize重新设置事务过滤。当不再需要使用DDEML时,应用程序必须调用DdeUninitialize函数。该函数会结束任何打开的会话,并且释放系统分配给应用程序的DDEML资源。 回调函数 每个使用DDEML的应用程序必须使用回调函数来处理DDE事件。DDEML通过将事务传递给应用程序的DDE回调函数来通知应用程序有关的事件。回调函数接收何种事务由所设置的过滤标志、应用程序是否时客户、服务或两者皆是来决定。 DDE回调函数的函数原形如下: HDDEDATA CALLBACK DdeCallback(uType, uFmt, hconv, hsz1, hsz2, hdata, dwData1, dwData2) UINT uType;?????? // transaction type UINT uFmt;??????? // clipboard data format HCONV hconv;????? // handle to conversation HSZ hsz1;???????? // handle to st

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档