Dynamic Data Exchange

In computing, Dynamic Data Exchange (DDE) is a technology for interprocess communication used in early versions of Microsoft Windows and OS/2. DDE allows programs to manipulate objects provided by other programs, and respond to user actions affecting those objects. DDE was partially superseded by Object Linking and Embedding (OLE), and is currently maintained in Windows systems only for the sake of backward compatibility.

## Contents

* 1 History and architecture
* 2 Relationship to modern automation technologies
* 3 NetDDE
* 4 See also
* 5 References
* 6 Sources
* 7 External links

## History and architecture

Dynamic Data Exchange was first introduced in 1987 with the release of Windows 2.0 as a method of interprocess communication so that one program could communicate with or control another program, somewhat like Sun's RPC (Remote Procedure Call).[1] At the time, the only method for communication between the operating system and client applications was the "Windows Messaging Layer." DDE extended this protocol to allow peer-to-peer communication among client applications, via message broadcasts.

Because DDE runs via message broadcasts, it is vulnerable to any window-management code that does not pump messages. This problem was not considered during the design of DDE, because DDE predates pre-emptive multitasking.[2]

Moreover, any code managing a window handle can respond to a DDE broadcast; the initiator of DDE must distinguish between expected and unexpected responses. DDE interlocutors usually express what information they seek in terms of hierarchical string keys. For example, a cell in Microsoft Excel was known to DDE by its "application" name. Each application could further organize information by groups known as "topic" and each topic could serve up individual pieces of data as an "item". For example, if a user wanted to pull a value from Microsoft Excel which was contained in a spreadsheet called "Book1.xls" in the cell in the first row and first column, the application would be "Excel", the topic "Book1.xls" and the item "r1c1". Internal changes in the cell due to Excel actions would then be signaled (in reverse) to the calling application via additional message broadcasts.

## Relationship to modern automation technologies

The common use of DDE is for custom-developed applications to control off-the-shelf software. For example, a custom in-house application might use DDE to open a Microsoft Excel spreadsheet and fill it with data, by opening a DDE conversation with Excel and sending it DDE commands. This feature has mainly been superseded by the Component Object Model suite of technologies. Microsoft has not used DDE internally since the release of Windows 95.[3] For example, Excel now exposes an extensive OLE Automation object model, which is the recommended method for communicating with Excel. The technique is, however, still in use, particularly for distribution of financial data.[4] Because DDE does not require more operating system components than a conventional Windows GUI program, it is also a [little-used] alternative for programs seeking to minimize their dependencies.

## NetDDE

Wonderware developed an extension for DDE called NetDDE that could be used to initiate and maintain the network connections needed for DDE conversations between DDE-aware applications running on different computers in a network and transparently exchange data. A DDE conversation is an interaction between client and server applications. NetDDE could be used along with DDE and the DDE management library (DDEML) in applications.

`/Windows/SYSTEM32
DDESHARE.EXE (DDE Share Manager)
NDDEAPIR.EXE (NDDEAPI Server Side)
NDDENB32.DLL (Network DDE NetBIOS Interface)
NETDDE.EXE (Network DDE - DDE Communication)`
The NetDDE library files

Microsoft licensed a basic (NetBIOS Frames only) version of the product for inclusion in various versions of Windows from Windows for Workgroups to Windows XP. In addition, Wonderware also sold an enhanced version of NetDDE to their own customers that included support for TCP/IP. The technology is extensively used in the SCADA field. Basic Windows applications using NetDDE are Clipbook Viewer, WinChat and Microsoft Hearts.

NetDDE was still included with Windows Server 2003 and Windows XP Service Pack 2, although it was disabled by default. It has been removed entirely in Windows Vista.[5] However, this will not prevent existing versions of NetDDE from being installed and functioning on later versions of Windows.

## See also

* ActiveX
* Component Object Model (COM)
* Distributed Component Object Model (DCOM)
* Microsoft .NET
* Observer pattern

## References

1. ↑ "Net DDE to DOT NET Remoting". 2006-01-12. http://www.csharphelp.com/2006/01/net-dde-to-dot-net-remoting/.
2. ↑ Chen, Raymond (27 Jun 2005). "Why are there broadcast-based mechanisms in Windows?". https://devblogs.microsoft.com/oldnewthing/20050627-00/?p=35193.
3. ↑ Chen, Raymond (26 Feb 2007). "Please feel free to stop using DDE". https://devblogs.microsoft.com/oldnewthing/20070226-00/?p=27863.
4. ↑ Joel Spolsky - comment on Fog Creek Software discussion forum
5. ↑ NetDDE has been removed in Windows Vista.

## Sources

* Charles Petzold. "Dynamic Data Exchange" in Programming for Windows 95. Microsoft Press.

## External links

* MSDN: About Dynamic Data Exchange (DDE)
* NetDDE
* Clojure Bindings for DDE, for use in Clojure or Java Applications

* v
* t
* e

Microsoft APIs and frameworks

Graphics|

* Desktop Window Manager
* Direct2D
* Direct3D
* D3D (extensions)
* GDI / GDI+
* WPF
* Silverlight
* WinRT XAML
* Windows Color System
* Windows Image Acquisition
* Windows Imaging Component
* DirectX Graphics Infrastructure (DXGI)
* Windows Advanced Rasterization Platform
* WinG

Audio|

* DirectMusic
* DirectSound
* DirectX plugin
* XACT
* Speech API
* XAudio2

Multimedia|

* DirectX
* Media Objects
* Video Acceleration
* Xinput
* DirectInput
* DirectShow
* Image Mastering API
* Managed DirectX
* Media Foundation
* XNA
* Windows Media
* Video for Windows

Web|

* MSHTML
* RSS Platform
* JScript
* VBScript
* BHO
* XDR
* SideBar Gadgets
* TypeScript

Data access|

* Data Access Components (MDAC)
* ADO
* ADO.NET
* ODBC
* OLE DB
* Extensible Storage Engine
* Entity Framework
* Sync Framework
* Jet Engine
* MSXML
* OPC

Networking|

* Winsock
* LSP
* Winsock Kernel
* Filtering Platform
* NDIS
* Windows Rally
* BITS
* P2P API
* MSMQ
* MS MPI
* DirectPlay

Communication|

* Messaging API
* Telephony API
* WCF

Administration and
management|

* Win32 console
* Windows Script Host
* WMI (extensions)
* PowerShell
* Task Scheduler
* Offline Files
* Shadow Copy
* Windows Installer
* Error Reporting
* Event Log
* Common Log File System

Component model|

* COM
* COM+
* ActiveX
* Distributed Component Object Model
* .NET Framework

Libraries|

* Framework Class Library
* Microsoft Foundation Classes (MFC)
* Active Template Library (ATL)
* Windows Template Library (WTL)

Device drivers|

* WDM
* WDF
* KMDF
* UMDF
* WDDM
* NDIS
* UAA
* BDA
* VxD

Security|

* Crypto API
* CAPICOM
* Windows CardSpace
* Data Protection API
* Security Support Provider Interface (SSPI)

.NET|

* ASP.NET
* ADO.NET
* Remoting
* Silverlight
* TPL
* WCF
* WCS
* WPF
* WF

Software factories|

* EFx Factory
* Enterprise Library
* Composite UI
* CCF
* CSF

IPC|

* MSRPC
* Dynamic Data Exchange (DDE)
* Remoting
* WCF

Accessibility|

* Active Accessibility
* UI Automation

Text and multilingual
support|

* DirectWrite
* Text Services Framework
* Text Object Model
* Input method editor
* Language Interface Pack
* Multilingual User Interface
* Uniscribe

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Dynamic Data Exchange. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Dynamic_Data_Exchange&oldid=245657"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template