Hi all,Does anybody happen to know enough about DDE on Windows to be able to help me along with the below?
The Windows-specific SfxAppEvent_Impl (sfx2/source/appl/appdde.cxx) is supposed to decompose a "command string" into a command ("Open", "Print") plus parameters.
At least one way it is called is from DdeInternal::SvrCallback (svl/source/svdde/ddesvr.cxx), case XTYP_EXECUTE, -> ImplDdeService::SysTopicExecute (sfx2/source/appl/appdde.cxx) -> SfxApplication::DdeExecute (sfx2/source/appl/appdde.cxx), and I assume that "command string" should be decomposed according to the syntax described at <http://msdn.microsoft.com/en-us/library/ms648995.aspx> "WM_DDE_EXECUTE message."
However, I have doubts that the code works according to that specification, or else that my assumptions about the syntax for the SfxAppEvent_Impl input are correct. For one, the MSDN docu specifies that commands are enclosed in [...], but I see no code on our side to strip those away. For another, the MSDN docu specifies that multiple parameters are separated by commas, but again I see no code on our side to remove those when converting the parameters into our internal format (see below). (And for a third, the MSDN docu specifies that double "", ((, )), [[, ]] in the parameters should be interpreted as single ones, but again I see no code on our side to do that---though that may "just" be crappy coding ignoring the gory details.)
I'm asking because with <http://cgit.freedesktop.org/libreoffice/core/commit/?id=787940e0ac285aa1101ca8964d252faaab3ea8c1> "fdo#54264: Fix multi-argument ApplicationEvent::TYPE_OPEN/PRINT" I wanted to fix that code, as our internal format that multiple parameters need to be converted into has changed a while ago from a single string with parameters separated by newline characters to a vector of strings.
However, I do not know how to trigger that (Windows-specific anyway) code, but I would like to be able to verify that the new code works as intended (whether or not the old code did) before backporting this to libreoffice-4-0 and -4-1.
Stephan