The tests in dde.c show the behaviour of the conversion. All tests pass using crosstest on XP. The key msg_index values are 10, 16 and 22. if (msg_index == 10 || msg_index ==11 || msg_index == 16 || msg_index ==17) if (msg_index == 10 || msg_index == 16) todo_wine ok(size == 34, "Expected that size should be 34 not %d, msg_index=%d\n", size, msg_index); else ok(size == 34, "Expected that size should be 34 not %d, msg_index=%d\n", size, msg_index); else if (msg_index ==22) todo_wine ok(size == 9, "Expected that size should be 9 not %d, msg_index=%d\n", size, msg_index); else Tests run betfore the patch ../../../tools/runtest -P wine -M user32.dll -T ../../.. -p user32_test.exe.so dde.c && touch dde.ok fixme:win:show_window previous 00000000 fixme:ddeml:DdeClientTransaction Unknown transaction type 2022 fixme:ddeml:DdeClientTransaction Unknown transaction type 1062 fixme:ddeml:DdeClientTransaction Unknown transaction type 8072 fixme:ddeml:DdeClientTransaction Unknown transaction type 80c2 fixme:ddeml:DdeClientTransaction Unknown transaction type 8002 fixme:ddeml:DdeClientTransaction Unknown transaction type 80f2 fixme:ddeml:DdeClientTransaction Unknown transaction type 80a2 fixme:ddeml:DdeClientTransaction Unknown transaction type 80d2 fixme:ddeml:DdeClientTransaction Unknown transaction type 20e2 fixme:ddeml:DdeClientTransaction Unknown transaction type 8080 dde: 81 tests executed (1 marked as todo, 0 failures), 0 skipped. err:ddeml:WDML_ServerConvProc mismatch between C/S windows and conversation err:ddeml:WDML_ServerConvProc mismatch between C/S windows and conversation err:ddeml:WDML_ServerConvProc mismatch between C/S windows and conversation dde: 99 tests executed (4 marked as todo, 0 failures), 0 skipped. dde.c:2411: start end to end server 1 dde.c:2353: Start end to end client 1 dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:2411: start end to end server 0 dde.c:2353: Start end to end client 0 dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:2411: start end to end server 0 dde.c:2353: Start end to end client 1 dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:2411: start end to end server 1 dde.c:2353: Start end to end client 0 dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:1176: dde_server_wndprocW: 0x80028 0081 00000000 0033fa58 dde.c:1176: dde_server_wndprocW: 0x80028 0083 00000000 0033fa08 dde.c:1176: dde_server_wndprocW: 0x80028 0001 00000000 0033fa58 dde.c:1176: dde_server_wndprocW: 0x80028 0005 00000000 00000000 dde.c:1176: dde_server_wndprocW: 0x80028 0003 00000000 00640064 dde.c:1304: server hwnd 0x80028, client hwnd 0x7002c dde.c:1176: dde_server_wndprocW: 0x80028 03e0 0007002e 0000c024 dde.c:1184: server: got WM_DDE_INITIATE from 0x7002e with 0000c024 dde.c:1190: server: sending WM_DDE_ACK to 0x7002e dde.c:1159: hook_dde_client_wndproc: 0x7002e 03e4 00080028 0000c024 dde.c:1165: WM_DDE_ACK: status 0000 hglobal (nil) dde.c:1370: hwnd 0x7002e, hwndPartner 0x80028 dde.c:1372: sending test client transaction command dde.c:1176: dde_server_wndprocW: 0x80028 03e8 0007002e 001229da dde.c:1205: server: got WM_DDE_EXECUTE from 0x7002e with 001229da dde.c:1208: 001229da => lo 0000 hi 1229da dde.c:1217: ignoring unknown WM_DDE_EXECUTE command dde.c:1229: server: posting NEGATIVE WM_DDE_ACK to 0x7002e dde.c:1380: sending ANSI client transaction command dde.c:1176: dde_server_wndprocW: 0x80028 03e8 0007002e 00122312 dde.c:1205: server: got WM_DDE_EXECUTE from 0x7002e with 00122312 dde.c:1208: 00122312 => lo 0000 hi 122312 dde.c:1229: server: posting POSITIVE WM_DDE_ACK to 0x7002e dde.c:1389: sending unicode client transaction command dde.c:1176: dde_server_wndprocW: 0x80028 03e8 0007002e 00121b22 dde.c:1205: server: got WM_DDE_EXECUTE from 0x7002e with 00121b22 dde.c:1208: 00121b22 => lo 0000 hi 121b22 dde.c:1229: server: posting POSITIVE WM_DDE_ACK to 0x7002e dde.c:1176: dde_server_wndprocW: 0x80028 03e1 0007002e 00000000 dde.c:1243: server: got WM_DDE_TERMINATE from 0x7002e with 00000000 dde.c:1250: server: posting POSITIVE WM_DDE_ACK to 0x7002e dde.c:1159: hook_dde_client_wndproc: 0x7002e 0002 00000000 00000000 dde.c:1159: hook_dde_client_wndproc: 0x7002e 0082 00000000 00000000 dde.c:1176: dde_server_wndprocW: 0x80028 0002 00000000 00000000 dde.c:1176: dde_server_wndprocW: 0x80028 0082 00000000 00000000 dde: 616 tests executed (22 marked as todo, 0 failures), 0 skipped. Tests run after patched code ../../../tools/runtest -P wine -M user32.dll -T ../../.. -p user32_test.exe.so dde.c && touch dde.ok fixme:win:show_window previous 00000000 fixme:ddeml:DdeClientTransaction Unknown transaction type 2022 fixme:ddeml:DdeClientTransaction Unknown transaction type 1062 fixme:ddeml:DdeClientTransaction Unknown transaction type 8072 fixme:ddeml:DdeClientTransaction Unknown transaction type 80c2 fixme:ddeml:DdeClientTransaction Unknown transaction type 8002 fixme:ddeml:DdeClientTransaction Unknown transaction type 80f2 fixme:ddeml:DdeClientTransaction Unknown transaction type 80a2 fixme:ddeml:DdeClientTransaction Unknown transaction type 80d2 fixme:ddeml:DdeClientTransaction Unknown transaction type 20e2 fixme:ddeml:DdeClientTransaction Unknown transaction type 8080 dde: 81 tests executed (1 marked as todo, 0 failures), 0 skipped. err:ddeml:WDML_ServerConvProc mismatch between C/S windows and conversation err:ddeml:WDML_ServerConvProc mismatch between C/S windows and conversation err:ddeml:WDML_ServerConvProc mismatch between C/S windows and conversation dde: 99 tests executed (4 marked as todo, 0 failures), 0 skipped. dde.c:2419: start end to end server ASCII dde.c:2361: Start end to end client ASCII dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:2419: start end to end server UNICODE dde.c:2361: Start end to end client UNICODE dde.c:2253: Test succeeded inside todo block: Expected that size should be 34 not 34, msg_index=10 dde.c:2279: Test succeeded inside todo block: Expected "Test dde command", msg_index=10 dde.c:2282: Test succeeded inside todo block: Expected 34, got 34, msg_index=10 dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:2419: start end to end server UNICODE dde.c:2361: Start end to end client ASCII dde.c:2253: Test succeeded inside todo block: Expected that size should be 34 not 34, msg_index=16 dde.c:2279: Test succeeded inside todo block: Expected "Test dde command", msg_index=16 dde.c:2282: Test succeeded inside todo block: Expected 34, got 34, msg_index=16 dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:2419: start end to end server ASCII dde.c:2361: Start end to end client UNICODE dde.c:2261: Test succeeded inside todo block: Expected that size should be 9 not 9, msg_index=22 dde: 11 tests executed (0 marked as todo, 0 failures), 0 skipped. dde.c:1176: dde_server_wndprocW: 0x80028 0081 00000000 0033fa58 dde.c:1176: dde_server_wndprocW: 0x80028 0083 00000000 0033fa08 dde.c:1176: dde_server_wndprocW: 0x80028 0001 00000000 0033fa58 dde.c:1176: dde_server_wndprocW: 0x80028 0005 00000000 00000000 dde.c:1176: dde_server_wndprocW: 0x80028 0003 00000000 00640064 dde.c:1304: server hwnd 0x80028, client hwnd 0x7002c dde.c:1176: dde_server_wndprocW: 0x80028 03e0 0007002e 0000c024 dde.c:1184: server: got WM_DDE_INITIATE from 0x7002e with 0000c024 dde.c:1190: server: sending WM_DDE_ACK to 0x7002e dde.c:1159: hook_dde_client_wndproc: 0x7002e 03e4 00080028 0000c024 dde.c:1165: WM_DDE_ACK: status 0000 hglobal (nil) dde.c:1370: hwnd 0x7002e, hwndPartner 0x80028 dde.c:1372: sending test client transaction command dde.c:1176: dde_server_wndprocW: 0x80028 03e8 0007002e 001225d2 dde.c:1205: server: got WM_DDE_EXECUTE from 0x7002e with 001225d2 dde.c:1208: 001225d2 => lo 0000 hi 1225d2 dde.c:1217: ignoring unknown WM_DDE_EXECUTE command dde.c:1229: server: posting NEGATIVE WM_DDE_ACK to 0x7002e dde.c:1380: sending ANSI client transaction command dde.c:1176: dde_server_wndprocW: 0x80028 03e8 0007002e 00122312 dde.c:1205: server: got WM_DDE_EXECUTE from 0x7002e with 00122312 dde.c:1208: 00122312 => lo 0000 hi 122312 dde.c:1229: server: posting POSITIVE WM_DDE_ACK to 0x7002e dde.c:1389: sending unicode client transaction command dde.c:1176: dde_server_wndprocW: 0x80028 03e8 0007002e 00121b22 dde.c:1205: server: got WM_DDE_EXECUTE from 0x7002e with 00121b22 dde.c:1208: 00121b22 => lo 0000 hi 121b22 dde.c:1229: server: posting POSITIVE WM_DDE_ACK to 0x7002e dde.c:1176: dde_server_wndprocW: 0x80028 03e1 0007002e 00000000 dde.c:1243: server: got WM_DDE_TERMINATE from 0x7002e with 00000000 dde.c:1250: server: posting POSITIVE WM_DDE_ACK to 0x7002e dde.c:1159: hook_dde_client_wndproc: 0x7002e 0002 00000000 00000000 dde.c:1159: hook_dde_client_wndproc: 0x7002e 0082 00000000 00000000 dde.c:1176: dde_server_wndprocW: 0x80028 0002 00000000 00000000 dde.c:1176: dde_server_wndprocW: 0x80028 0082 00000000 00000000 dde: 616 tests executed (15 marked as todo, 7 failures), 0 skipped.