Dynamic Data Exchange (DDE) is a mechanism for two applications on the same computer to pass data back and forth. There are three basic components to a DDE conversation, the application, topic, and item(s). Some sources may call the topic and item(s) by different names, but it's the same thing. First, lets define each of these parts.
Application
That's typically the executable name (but not necessarily). For instance, when working with Excel, the application name is EXCEL and the executable name is EXCEL.EXE. When connecting to the Visual Automation Program Manager as a DDE Server, the application is VAPRGMAN and the executable name is VAPRGMAN.EXE.
Topic
There may be multiple topics in an application. Topics are a method of organizing the items that correlate with the functionality of a program. In Excel 4.0, a topic corresponds with an open sheet. If you have 4 spreadsheets open, you have a topic for each one and designated by the name of each open sheet. In Excel 5.0, several workbooks may be open with several sheets inside, each sheet is a topic designated by both the workbook and the sheet name. In the Visual Automation Program Manager, there is only one topic, named System.
Item
The item is actually the piece of data, or the first piece of data within a block of data. In Excel, the item is the cell that contains the data, denoted by row & column position such as R1C1. In the Visual Automation Program Manager, the items are as follows:
Drive |
Memory |
DriveAlarm |
MemoryAlarm |
DriveAlarmOn |
MemoryAlarmOn |
These represent the memory free, and disk space free with corresponding alarm threshold settings. The AlarmOn items are 0 if not in alarm and 1 if in alarm.
Clients and Servers
Just when you thought you were getting the hang of this, I had to throw the old client/server thing at you. Yeah, I know these are the two most used (and mis-used) terms thrown at us these days, but let's get through it. An application can be a DDE Server. It can be a DDE Client. It can be both a DDE Server and a DDE Client! A DDE Server serves data to DDE clients. A DDE Client requests data from a DDE Server. Excel is an example of both a client and a server. Excel can get data from DDE Servers and serve data to other DDE clients. The Visual Automation Program Manager is also a client and a server. It serves data as described above and can launch applications based on other DDE Servers as described in the startup application section.
An Example
Take a DDE Server, select some data, and select Copy or Copy to Clipboard from the edit menu. This places the "hot" data into the clipboard. Take a DDE Client, select Paste Link or Paste Special (and then Link), and a DDE Link should be created. By examining the syntax in your DDE Client, you should be able to create DDE Links without the clipboard. DDE Syntax is different in just about every single software package, so you should read through your help files about your particular application. Does the name Dynamic Data Exchange make more sense now? Dynamic data in the server is being moved to a client, via the Application, Topic, and Item.