Dmitry Timoshkov wrote:
"André Hentschel" nerv@dawncrow.de wrote:
Please add a test case which uses mixed ansi/unicode DDE client/server and only then start fixing the code.
For winebrowser? Do we test any of our programs? Or for DDE?
Quoting above: "mixed ansi/unicode DDE client/server".
I put tests for the mixed conditions in test/dde.c quite a while ago:
*//* Test the combinations of A and W interfaces with A and W data/* */ end to end to ensure that data conversions are accurate *//* sprintf(buffer http://source.winehq.org/ident?i=buffer, /"%s dde enda"/, argv http://source.winehq.org/ident?i=argv[0]); CreateProcessA http://source.winehq.org/ident?i=CreateProcessA(NULL http://source.winehq.org/ident?i=NULL, buffer http://source.winehq.org/ident?i=buffer, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, FALSE http://source.winehq.org/ident?i=FALSE, CREATE_SUSPENDED http://source.winehq.org/ident?i=CREATE_SUSPENDED, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, &startup, &proc);
test_end_to_end_server http://source.winehq.org/ident?i=test_end_to_end_server(proc.hProcess, proc.hThread http://source.winehq.org/ident?i=hThread, TRUE http://source.winehq.org/ident?i=TRUE);
sprintf(buffer http://source.winehq.org/ident?i=buffer, /"%s dde endw"/, argv http://source.winehq.org/ident?i=argv[0]); http://source.winehq.org/source/dlls/user32/tests/dde.c#L2430 CreateProcessA http://source.winehq.org/ident?i=CreateProcessA(NULL http://source.winehq.org/ident?i=NULL, buffer http://source.winehq.org/ident?i=buffer, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, FALSE http://source.winehq.org/ident?i=FALSE, http://source.winehq.org/source/dlls/user32/tests/dde.c#L2431 CREATE_SUSPENDED http://source.winehq.org/ident?i=CREATE_SUSPENDED, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, &startup, &proc);
test_end_to_end_server http://source.winehq.org/ident?i=test_end_to_end_server(proc.hProcess, proc.hThread http://source.winehq.org/ident?i=hThread, FALSE http://source.winehq.org/ident?i=FALSE);
sprintf(buffer http://source.winehq.org/ident?i=buffer, /"%s dde enda"/, argv http://source.winehq.org/ident?i=argv[0]); CreateProcessA http://source.winehq.org/ident?i=CreateProcessA(NULL http://source.winehq.org/ident?i=NULL, buffer http://source.winehq.org/ident?i=buffer, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, FALSE http://source.winehq.org/ident?i=FALSE, CREATE_SUSPENDED http://source.winehq.org/ident?i=CREATE_SUSPENDED, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, &startup, &proc);
test_end_to_end_server http://source.winehq.org/ident?i=test_end_to_end_server(proc.hProcess, proc.hThread http://source.winehq.org/ident?i=hThread, FALSE http://source.winehq.org/ident?i=FALSE);
sprintf(buffer http://source.winehq.org/ident?i=buffer, /"%s dde endw"/, argv http://source.winehq.org/ident?i=argv[0]); CreateProcessA http://source.winehq.org/ident?i=CreateProcessA(NULL http://source.winehq.org/ident?i=NULL, buffer http://source.winehq.org/ident?i=buffer, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, FALSE http://source.winehq.org/ident?i=FALSE, CREATE_SUSPENDED http://source.winehq.org/ident?i=CREATE_SUSPENDED, NULL http://source.winehq.org/ident?i=NULL, NULL http://source.winehq.org/ident?i=NULL, &startup, &proc);
Do these exhibit the situation you are referring too?