The WM_COPYDATA message is quite a good idea. Using it you can exchange data of any type and size between two WIN32 applications (processes). Unfortunately, its use is bit awkward and, worst, it can only be sent, not posted. So, the receiving process can block the sending process. This situation can be improved. First of all, I wrapped the WM_COPYDATA machinery inside a component. Drop a copy of this component on both the applications and when you call the SendMessage method inside the first, the SentMessage event is fired inside the second. After that I added a dedicated thread that only and quickly receives the interprocess WM_COPYDATA, copies its content to a new message and POST it (this is perfectly valid because this is a intraprocess post). So, when you call the PostMessage method inside the first application, the PostedMessage event is fired inside the second and the sending application is never blocked, even if the event handler loops forever. Don't worry about lost messages. In WIN32 message queues are no more limited to 8 messages but are decent dynamic linked lists. Now some notes. This is a Delphi 2 component. It should work under Delphi 3 also (sources are included) but I could not check it (I'll do when I get my Delphi 3 copy). I tested the component under Windows NT 4.0 Service Pack 3. I think it should work also under Windows 95 but did not and will not check it (keep the environment clean, wipe Windows 95 from your disk)! I included two toy applications to show the component usage. Their sources are commented in English. Also the component sources are commented but only in Italian (sorry). The usage of this component is completely free, just a my small contribution to the Delphi Community. Use wherever and whenever you like but, beware, this is a 1.0 version! At any rate, I can not be held responsible of anything, from your keyboard lockout to Earth's complete destruction. Use at your own risk. If you find a bug, improve the component or whatever please report it to me. I will try to answer to you (but not in real time!) Mauro Venturini mpv@acm.org