Excel DDE

Just recently we have been having some fun with DDE at work.
For those of you young enough to not know what DDE is – well done.
DDE (Dynamic data Exchange) is a 1980’s/1990’s technology for enabling disparate systems to pass data between themselves. As with most Microsoft technology of that era they favoured ease, and getting the job done over security. Hence they now discourage its use.

Of course that doesn’t stop most of the market data providers using it.

Anyway, long story short, I wrote a server in VB6 so I could play with it in Excel and I wrote about it here.

I had a quick look around and it didn’t seem that obvious how to write one with C#, anyone got a link?

It seems that if you have a bad enough Excel crash you can hang the whole DDE messaging process, well somebody can, in our case we suspect IE.

Anyone else doing working with DDE?

Anyone actually developing a DDE server app?



4 Responses to “Excel DDE”

  1. mikewoodhouse Says:

    Apologies if I’m guilty of egg-sucking training here, but aren’t we supposed to have been writing RTD servers since about 2002? IIRC, one of the big problems with DDE was that it didn’t respect the process that it was pushing data into; at various points in the calculation cycle Excel might not be entirely receptive to cell content changing. The results could be … unpredictable. Worse, unreproducable.

    RTD, on the other hand, was designed to behave politely, in effect it raises its hand when it has an update and Excel updates when it’s in a good place, computationally speaking, to do so.

    Reuters and Bloomberg (banes of my previous DDE-driven life) are both pretty well-behaved in this regard. It’s pretty easy to do, too – I have a demo project, written in 2003, that was pretty straightforward to implement. Can’t check it now, because I no longer have VB6 installed anywhere, but the code looks simple enough.

  2. Simon Says:

    Yep RTD is deffo the preferred replacement, but most of our mkt data apps are accessed via DDE still.
    RTD needs COM registration though so its not such an easy deployment as DDE.

    DDE is also just a publish so anyone can listen in, MS used to distribute DDE spy with VS6.0 for exactly that.

    I wasn’t proposing one or the other though, just we had a dde problem and I wanted to see if it was reproducible without using that vendors tools, and it was.

  3. Harlan Grove Says:

    DDE was always a PITA in terms of syntax. Just like external references into closed workbooks, no built-in means to change DDE formulas dynamically other than by macro. I suppose that’s another way it resembles a lot of MSFT product of the period (when Lotus was still competition): push out features before Lotus 1-2-3 gets them.

    Consider Excel vs 1-2-3 implementations.

    Excel: program|document!part

    1-2-3: @DATALINK(program;document;part[;format;max-rows;max-cols;max-sheets])

    I’d note that OpenOffice uses 1-2-3’s function approach to DDE. The advantage of functions is that the function’s arguments can be expressions. Maybe no great need for program to be dynamic, maybe not much for document either, but a real PITA if part can’t be changed via recalc.

    I’m not sure how much potential benefit there’d be to giving more life to one of Excel’s most poorly implemented features.

  4. ross Says:

    You guys are OLD!!! :-)

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: