7.2.1 Windows的DDE原理
Windows的DDE機制基於Windows的消息機制。兩個Windows應用程序通過相互之間傳遞DDE消息進行DDE會話(Conversation),從而完成數據的請求、應答、傳輸。這兩個應用程序分別稱為服務器(Server)和客戶(ClIEnt)。服務器是數據的提供者,客戶是數據的請求和接受者。
DDE會話由客戶程序啟動。客戶程序把一條消息(WM_DDE_INITIATE)傳播給當前運行的所有Windows程序。這條消息指明了客戶程序所需要的一般數據(應用程序、主題)。擁有這些數據的DDE服務器可以響應這條被傳播的消息。此時,DDE會話就開始了。
由於在每個主題中,DDE服務器可以支持一個或多個數據項,所以在客戶請求數據時應同時指明應用程序名、主題名和項目名。應用程序、主題、項目是DDE中三個最基本的概念。
利用Windows本身提供的DDE消息和API進行DDE編程是一件相當棘手的問題。 雖然使用DDE管理庫(ddeml.dll)可以一定程度上減輕開發者的工作負擔,但開發DDE程序仍不是一件輕松的事情。
此時Delphi出現了!Delphi通過其自身巧妙的設計使開發一個DDE應用程序同開發一個普通程序一樣地快捷、方便。
7.2.2 Delphi的DDE實現機制簡介
Delphi把所有的DDE功能做到四個部件中,它們是:
● TDDEClIEntConv : 用於客戶程序建立和維護一個DDE會話
● TDDEClIEntItem : 用於客戶程序建立和維護數據交換通道
● TDDEServerConv : 用於服務器程序響應DDE會話
● TDDEServerItem : 用於服務器程序維護數據交換通道
前兩個部件用於生成一個DDE客戶程序,後兩個部件用於生成一個DDE服務器程序。如果一個應用程序同時擁有這些部件,則這一程序既可以充當DDE客戶,也可以充當DDE服務器。
會話部件TDDEClIEntConv、TDDEServerConv用於建立和維護一個DDE會話。DDE會話包括DDE服務和DDE主題兩部分。
DDE服務是DDE服務器的名稱,即在一般的Windows DDE機制中所講的應用程序名。一般說來這一名稱是DDE服務器應用程序執行文件名去掉 .EXE後綴。比如你的應用程序要和Word 6.0建立會話,則DDE服務為WINWord。但也不盡然。比如你的應用程序要和Borland ReportSmith ( RPTSMITH.EXE ) 建立會話,則DDE 服務為 Report Smith。DDE服務到底如何,讀者可參看相關的DDE服務器應用程序文檔。
DDE主題是一個包含了聯接信息的數據單元。一般說來DDE 主題是一個包括擴展名的完整文件名。例如和Excel中的一個文件建立DDE會話,則主題可能是
Topic = 'c:ExcelExamplesale.xls'
如果服務器是一個Delphi應用程序,缺省情況下主題
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一頁