On Friday 05 December 2008 16:33:04 Hans Leidekker wrote:
On Friday 05 December 2008 15:17:47 Paul Chitescu wrote:
The problem is not about the service name or other identifiers but rather the obscure data pushed by the DdeClientTransaction. DDE knows nothing about the format of this data as this is rather a convention between the client (shell32) and the server (winebrowser).
But is it safe to assume that shell32 is the only client of winebrowser?
-Hans
The few examples I've found for direct IE invocation pass a HDDEDATA handle created by DdeCreateStringHandle (a HSZ). Wine's implementation seems to simply get the data and length from the data and send it over DDE (in WDML_ClientQueueExecute). No idea if string type is preserved in Windows.
The fact winebrowser doesn't crash suggest no program is doing DdeClientTransaction directly ;-) although it may be possible that winebrowser just prints this warning message which my patch fixes:
Unabled to retrieve URL from string L"""
LOL!
We could easily guess if the data received by winebrowser has the wrong character size since normally the 1st character is a quote. However this doesn't look clean to me.
Paul