[Libreoffice-qa] DDE on Windows

Stephan Bergmann sbergman at redhat.com
Mon Jul 29 06:31:34 PDT 2013


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


More information about the Libreoffice-qa mailing list