Windows DDE hack
Article: 8838 of alt.hackers From: tkennedy@cyberport.com (Warren Young) Newsgroups: alt.hackers Subject: Windows DDE hack Date: Thu, 12 Oct 1995 05:43:52 GMT Organization: Kennedy and Associates Lines: 40 Approved: bill@b-picayune.com Message-ID: 45ia1u$crd@macaw.cyberport.com NNTP-Posting-Host: ppp22.cyberport.com X-Newsreader: Forte Free Agent 1.0.82 Status: RO
First, someone else's hack: Go look at http://abacab.mac.trincoll.edu. Good stuff. Next, my ObHack: Windows' API has an excuse for interprocess communication called DDE. Aside from being overly complex (it would be easier to open a TCP/IP link to localhost through Winsock than to use DDE), it can only send strings. Or rather, you have to send messages as Windows "atoms", which are null-terminated entities. So, if you want to send binary data to another program, tough....if you're one to give up easily, that is B-). Well, I naturally needed to send binary data between two programs, and the data was likely to contain nulls. The easy way out would have been to sprintf() the data to a string and then sscanf() it on the other end, but that was inefficient. And easy. So, I reasoned, how do you send binary data over ASCII links? uuencode! So, I wrote a quick uuencode variant and sent the data that way. Next hack: Write a C++ wrapper class for DDE that makes it as easy to use as the aforementioned TCP/IP connection. Naturally, it will support automatic uu{en,de}coding. For what it's worth, I've switched from WinVN to Free Agent, and found out that you can't post here from Free Agent using the trick I used with WinVN. Thanks to another hacker's message here for cluing me about the method. I like the WinVN method better, though -- I think it has more hack value. Warren ------ GCS/TW: -d+(---) H- s+:+ g+ p2 au a- w+>++ v-(?) C++$ UL++(V$) P+>+++ L+>++ 3 E>+++ N+>++ K+ w++>+++ M-(+) V-- -po+ Y+ t+ !5 j+ R+ G? tv b+++(++) D+(++) B-- e*(+) u*>** h+ f r-- n---- !y