Alexandre Julliard wrote:
eric pouech eric.pouech@wanadoo.fr writes:
I've started looking at the inter-process DDE message management as of today, PostMessage doesn't use the packing strategy used by SendMessage (rightfully because of possible dangling pointer issue if pointers are used in message parameters)
however, some DDE messages need to send additional information even when posting (copying all data), and DDE protocol requires posting messages (SendMessage is banned)
do you have any plan to handle this ?
I don't really have any plan yet. We clearly need to do a special case for posted DDE messages; a possibility would be to use an internal message with SendMessage to send the data across before posting the actual DDE message. There is an undocumented message similar to WM_COPYDATA that can be used to transfer a global memory block across processes, which is used for stuff like WM_DROPFILES; it doesn't work right now but I'm planning to implement it soon. This would add a synchronisation point that may defeat the purpose of the PostMessage though. If this is a problem we can probably add a DDE-specific server call to transfer the data
what I had in mind was somehow reusing the message packing capabilities of SendMessage for PostMessage. Moreover, we need to handle large memory chunks to be exchanged in SendMessage, so we could kill two birds with one stone.
A+