您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

DDE与COM技术在组态软件开发中的应用

时间:2007-1-20栏目:电子通信论文

数。
  
  DDE实现程序间的通信是通过三个标识约定的:
  
  应用程序名(Application):进行DDE对话双方的名称;
  
  主题(Topic):被讨论的数据域;
  
  项目(Item):被讨论的特定数据对象。
  
  在DDE服务程序中首先使用DdeInitialize进行初始化,然后调用DdeCreateStringHandle建立应用程序名、主题和项目等标识的句柄,再通过DdeNameService在操作系统中注册DDE服务程序的名字。根据这些句柄,客户程序就可以使用它提供的DDE服务了。在VC++中的程序实现如下:
  
  #include<ddeml.h>……
  
  DWORDidInstc=0,iData;//iDate是项目对应的数据
  
  HSZhszSvr,hszTopic,hszIrem;
  
  DdeInitialize(&idInst,(PFNCALLBACK)DdeCallback,CBF_
  
  FAIL_EXECUTES┃CBF_SKIP_ALLNOTIFICATIONS,0L);
  
  //建立应用程序名、主题和项目等标识的句柄
  
  hszSvr=DdeCreateStringHandle(idInst,“DDEApp”,0);
  
  hszTopic=DdeCreateStringHandl
  
  
  
  e(idInst,“DDEAppTopic”,0);
  
  hszItem=DdeCreateStringHandle(idInst,“DDEApphem”,0);
  
  //在操作系统中注册该DDE服务
  
  DdeNameService(idInst,hszSvr,0L,DNS_REGISTER);
  
  ……
  
  DDE服务程序的核心部分是一个回调函数,它处理所有DDE消息及相应数据请求。DDE服务程序回调函数的代码如下:
  
  HDDEDATACALLBACKDdeCallback(WORDusType,WORDusFmt,HCONVhConv,HSZhsz1,HSZhsz2,HDDE—DATAhData,DWORD1Datal,DWORD1Data2){CHARsz[5]
  
  if(usType==XTYP_CONNECT){//得到连接请求return((HDDEDATA)TRUE);
  
  }
  
  //校验主题、项目的句柄及数据格式
  
  if(hszl==hszTopic&&hsz2==hszItem&&usFmt==CF_TEXT){
  
  if(usType==XTYP_REQUEST‖usType==XTYP_ADVREQ){//得到数据请求
  
  _itoa(iData,sz,10);/

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页