I read some good posts about the problems with DDE when it is used to broadcast realtime data between applications. There even was a Microsoft document somewhere on their website stating that. Can't find that now. What I just found is Microsoft Knowledge Base Article - 189498. Interesting how they turn away from DDE:
"This article describes how to use Dynamic Data Exchange (DDE) from a Visual Basic program. Although Visual Basic offers more powerful, robust and reliable intercommunication between programs by using OLE, it still supports the older DDE technology. You can use DDE to link to and share data between programs.
Using OLE to communicate with other programs is better than using DDE with Visual Basic. OLE offers you better performance than DDE does. If a program supports OLE automation, it exposes an "Object Model" you can use to manipulate the program (through code) to complete actions for you. DDE is more useful in communicating with older programs that might not support OLE but do support DDE, and many 16-bit programs fall into this category.
Microsoft recommends that you use OLE rather than DDE to communicate with another program when you are developing your Visual Basic program. However, because there are times when you may need or want to use DDE, this article describes how to use DDE from a Visual Basic program. "
After my experiences with DDE I programmed a trading application which used TWS+ActiveX+VB. Not bad. However I wouldn't use it for an ATS.