..,. and if you simply ask about what Windows still supports: DDE is also still the mechanism that allows Windows to pass on command-line parameters to an already running process. For example (of the correct registry keys exist) to get a DBF opened with double click in an already running VFP IDE session instead of starting a new vfp9.exe process. Also to get this displayed in a browse instead of the new VFP9.exe process trying to compile the DBF and run it as if a PRG file name was passed in.
How that sepcifically works for the VFP9.exe is shown by Berezniker here:
But don't expect the same type of key works for any EXE, If an exe isn't programmed to react to certain topics and file types, this doesn't force it to happen. Take a close look at the keys listed here, they have a prerequisite of VFP installation having defined OLE types of files like Visual.FoxPro.Table and Visual.FoxPro.Program and they have defined reactions to "open" action, for example.
So the mechanism still works.
The main mechanims of DDE Exec are topics and actions. You can establish something similar to topics, at least, with multiple memory-mapped files. The two processes sharing memory obviously have to agree on several names and act on them as they need. It's simpler to only have one channel and think about a proprietary "protocol" of messages you exchange in it.
I'd say DDE will continue to be supported because it is not only a VFP feature to be able to pass command-line options to an already running IDE. But it can obviously also only cause wanted actions if the receiving process is programmed to react to something sent in via DDEexec.
So - if you don't realize - neither DDE nor shared memory can be used to force the other side to react or even just read what you send to it.
In shared memory, your process can create the memory-mapped file, and put something in, but the other process has to grab it from there actively. In DDEexec topics, the other process has to react to them. It's always an agreement, what works.
So, Well, in the end like any interface. In the other usual candidate for interop - OLE Automation - you can also only call methods and set properties when the OLE object model and interface you use offers it or you program it.
Bye, Olaf.
Olaf Doschke Software Engineering