35static const WCHAR TEST_DDE_SERVICE[] = {
'T',
'e',
's',
't',
'D',
'D',
'E',
'S',
'e',
'r',
'v',
'i',
'c',
'e',0};
38static WCHAR exec_cmdAW[] = {
'A',
'N',
'S',
'I',
' ',
'd',
'd',
'e',
' ',
'c',
'o',
'm',
'm',
'a',
'n',
'd',0};
39static WCHAR exec_cmdW[] = {
'u',
'n',
'i',
'c',
'o',
'd',
'e',
' ',
'd',
'd',
'e',
' ',
'c',
'o',
'm',
'm',
'a',
'n',
'd',0};
76 memset(&wcA, 0,
sizeof(wcA));
81 ok (aclass,
"RegisterClass failed\n");
104 static int msg_index = 0;
118 ok(msg_index == 1,
"Expected 1, got %d\n", msg_index);
121 ok(!
lstrcmpA(
str,
"TestDDEService"),
"Expected TestDDEService, got %s\n",
str);
133 ok((msg_index >= 2 && msg_index <= 4) ||
134 (msg_index >= 7 && msg_index <= 8),
135 "Expected 2, 3, 4, 7 or 8, got %d\n", msg_index);
157 ok(hglobal !=
NULL,
"Expected non-NULL hglobal\n");
169 else if (msg_index == 3)
184 ok(msg_index == 5 || msg_index == 6,
"Expected 5 or 6, got %d\n", msg_index);
193 ok(poke !=
NULL,
"Expected non-NULL poke\n");
206 "Expected 'poke data\\r\\n', got %s\n", poke->
Value);
218 ok(msg_index == 7,
"Expected 7, got %d\n", msg_index);
222 ok(!
lstrcmpA(
ptr,
"[Command(Var)]"),
"Expected [Command(Var)], got %s\n",
ptr);
235 ok(msg_index == 9,
"Expected 9, got %d\n", msg_index);
245 ok(msg_index == 4,
"Expected 4, got %d\n", msg_index);
272 ok( !
res,
"client failed with %u error(s)\n",
res );
276 HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
279 ok(
FALSE,
"Unhandled msg: %08x\n", uType);
305 ok(conversation !=
NULL,
"Expected non-NULL conversation\n");
320 "Expected DDE_FNOTPROCESSED, got %08x\n",
res);
321 ok( hdata !=
NULL,
"hdata is NULL\n" );
325 ok(!
lstrcmpA(
str,
"requested data\r\n"),
"Expected 'requested data\\r\\n', got %s\n",
str);
326 ok(
size == 17,
"Expected 17, got %d\n",
size);
338 "Expected DDE_FNOTPROCESSED, got %x\n",
res);
341 "Expected DMLERR_MEMORY_ERROR, got %d\n",
ret);
342 ok( hdata !=
NULL,
"hdata is NULL\n" );
346 ok(!
lstrcmpA(
str,
"requested data\r\n"),
"Expected 'requested data\\r\\n', got %s\n",
str);
347 ok(
size == 17,
"Expected 17, got %d\n",
size);
360 "Expected DDE_FNOTPROCESSED, got %x\n",
res);
366 ok(!
lstrcmpA(
str,
"requested data\r\n"),
"Expected 'requested data\\r\\n', got %s\n",
str);
367 ok(
size == 17,
"Expected 17, got %d\n",
size);
378 ok(hdata ==
NULL,
"Expected NULL hdata, got %p\n", hdata);
379 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %08x\n",
res);
389 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
396 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
397 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
405 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
406 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
414 ok(
op == (HDDEDATA)
TRUE,
"Expected TRUE, got %p\n",
op);
416 "Expected DDE_FACK, got %x\n",
res);
424 ok(
op == (HDDEDATA)
TRUE,
"Expected TRUE, got %p\n",
op);
426 "Expected DDE_FACK, got %x\n",
res);
434 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
442 ok(
op == (HDDEDATA)
TRUE,
"Expected TRUE, got %p\n",
op);
444 "Expected DDE_FACK, got %x\n",
res);
454 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
468 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
469 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
471 "Expected DMLERR_INVALIDPARAMETER, got %d\n",
ret);
485 "Expected DDE_FNOTPROCESSED, got %d\n",
res);
491 ok(!
lstrcmpA(
str,
"command executed\r\n"),
"Expected 'command executed\\r\\n', got %s\n",
str);
492 ok(
size == 19,
"Expected 19, got %d\n",
size);
503 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
504 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
511 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
512 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
519 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
520 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
527 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
528 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
535 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
536 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
543 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
544 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
551 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
552 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
559 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
560 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
567 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
568 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
575 ok(
op ==
NULL,
"Expected NULL, got %p\n",
op);
576 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %d\n",
res);
591 HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
598 static int msg_index = 0;
599 static HCONV conversation = 0;
607 ok(msg_index == 1,
"Expected 1, got %d\n", msg_index);
608 ok(uFmt == 0,
"Expected 0, got %d\n", uFmt);
609 ok(hconv == 0,
"Expected 0, got %p\n", hconv);
610 ok(hdata == 0,
"Expected 0, got %p\n", hdata);
611 ok(dwData1 == 0,
"Expected 0, got %08lx\n", dwData1);
612 ok(dwData2 == 0,
"Expected 0, got %08lx\n", dwData2);
615 ok(!
lstrcmpA(
str,
"TestDDEServer"),
"Expected TestDDEServer, got %s\n",
str);
616 ok(
size == 13,
"Expected 13, got %d\n",
size);
625 ok(!
strncmp(
str,
"TestDDEServer(", 14),
"Expected TestDDEServer(, got %s\n",
str);
630 return (HDDEDATA)
TRUE;
635 ok(msg_index == 2,
"Expected 2, got %d\n", msg_index);
636 ok(uFmt == 0,
"Expected 0, got %d\n", uFmt);
637 ok(hconv == 0,
"Expected 0, got %p\n", hconv);
638 ok(hdata == 0,
"Expected 0, got %p\n", hdata);
639 ok(dwData1 == 0,
"Expected 0, got %08lx\n", dwData1);
640 ok(dwData2 ==
FALSE,
"Expected FALSE, got %08lx\n", dwData2);
644 ok(
size == 12,
"Expected 12, got %d\n",
size);
647 ok(!
lstrcmpA(
str,
"TestDDEServer"),
"Expected TestDDEServer, got %s\n",
str);
648 ok(
size == 13,
"Expected 13, got %d\n",
size);
650 return (HDDEDATA)
TRUE;
655 conversation = hconv;
657 ok(msg_index == 3,
"Expected 3, got %d\n", msg_index);
658 ok(uFmt == 0,
"Expected 0, got %d\n", uFmt);
659 ok(hconv !=
NULL,
"Expected non-NULL hconv\n");
660 ok(hdata == 0,
"Expected 0, got %p\n", hdata);
661 ok(dwData1 == 0,
"Expected 0, got %08lx\n", dwData1);
662 ok(dwData2 ==
FALSE,
"Expected FALSE, got %08lx\n", dwData2);
666 ok(
size == 12,
"Expected 12, got %d\n",
size);
669 ok(!
lstrcmpA(
str,
"TestDDEServer"),
"Expected TestDDEServer, got %s\n",
str);
670 ok(
size == 13,
"Expected 13, got %d\n",
size);
672 return (HDDEDATA)
TRUE;
677 ok(msg_index == 4 || msg_index == 5 || msg_index == 6,
678 "Expected 4, 5 or 6, got %d\n", msg_index);
679 ok(hconv == conversation,
"Expected conversation handle, got %p\n", hconv);
680 ok(hdata == 0,
"Expected 0, got %p\n", hdata);
681 ok(dwData1 == 0,
"Expected 0, got %08lx\n", dwData1);
682 ok(dwData2 == 0,
"Expected 0, got %08lx\n", dwData2);
685 ok(uFmt == 0xbeef,
"Expected 0xbeef, got %08x\n", uFmt);
687 ok(uFmt ==
CF_TEXT,
"Expected CF_TEXT, got %08x\n", uFmt);
691 ok(
size == 12,
"Expected 12, got %d\n",
size);
702 else if (msg_index == 6)
720 ok(msg_index == 7 || msg_index == 8,
"Expected 7 or 8, got %d\n", msg_index);
721 ok(uFmt ==
CF_TEXT,
"Expected CF_TEXT, got %d\n", uFmt);
722 ok(hconv == conversation,
"Expected conversation handle, got %p\n", hconv);
723 ok(dwData1 == 0,
"Expected 0, got %08lx\n", dwData1);
724 ok(dwData2 == 0,
"Expected 0, got %08lx\n", dwData2);
728 ok(
size == 12,
"Expected 12, got %d\n",
size);
731 ok(!
lstrcmpA(
ptr,
"poke data\r\n"),
"Expected 'poke data\\r\\n', got %s\n",
ptr);
733 "Expected 12, got %d\n",
size);
755 ok(msg_index >= 9 && msg_index <= 11,
"Expected 9 or 11, got %d\n", msg_index);
756 ok(uFmt == 0,
"Expected 0, got %d\n", uFmt);
757 ok(hconv == conversation,
"Expected conversation handle, got %p\n", hconv);
758 ok(dwData1 == 0,
"Expected 0, got %08lx\n", dwData1);
759 ok(dwData2 == 0,
"Expected 0, got %08lx\n", dwData2);
760 ok(hsz2 == 0,
"Expected 0, got %p\n", hsz2);
764 ok(
size == 12,
"Expected 12, got %d\n",
size);
766 if (msg_index == 9 || msg_index == 11)
772 ok(!
lstrcmpA(
ptr,
"[Command(Var)]"),
"Expected '[Command(Var)]', got %s\n",
ptr);
773 ok(
size == 15,
"Expected 15, got %d\n",
size);
778 ok(!
lstrcmpA(
ptr,
"[BadCommand(Var)]"),
"Expected '[BadCommand(Var)]', got %s\n",
ptr);
779 ok(
size == 18,
"Expected 18, got %d\n",
size);
785 else if (msg_index == 10)
790 ok(
size == 17,
"DdeGetData should have returned 17 not %d\n",
size);
792 ok(
ptr !=
NULL,
"HeapAlloc should have returned ptr not NULL\n");
794 ok(rsize ==
size,
"DdeGetData did not return %d bytes but %d\n",
size, rsize);
796 ok(!
lstrcmpA(
ptr,
"[Command-2(Var)]"),
"Expected '[Command-2(Var)]' got %s\n",
ptr);
797 ok(
size == 17,
"Expected 17, got %d\n",
size);
808 ok(msg_index == 12,
"Expected 12, got %d\n", msg_index);
809 ok(uFmt == 0,
"Expected 0, got %d\n", uFmt);
810 ok(hconv == conversation,
"Expected conversation handle, got %p\n", hconv);
811 ok(dwData1 == 0,
"Expected 0, got %08lx\n", dwData1);
812 ok(dwData2 == 0,
"Expected 0, got %08lx\n", dwData2);
813 ok(hsz1 == 0,
"Expected 0, got %p\n", hsz2);
814 ok(hsz2 == 0,
"Expected 0, got %p\n", hsz2);
820 ok(
FALSE,
"Unhandled msg: %08x\n", uType);
840 ok(
server !=
NULL,
"Expected non-NULL string handle\n");
843 ok(hdata == (HDDEDATA)
TRUE,
"Expected TRUE, got %p\n", hdata);
852 ok( !
res,
"client failed with %u error(s)\n",
res );
868 static int msg_index = 0;
879 ok(msg_index == 1,
"Expected 1, got %d\n", msg_index);
884 ok(!
lstrcmpA(
str,
"TestDDEServer"),
"Expected TestDDEServer, got %s\n",
str);
885 ok(
size == 13,
"Expected 13, got %d\n",
size);
890 ok(
size == 12,
"Expected 12, got %d\n",
size);
897 ok((msg_index >= 2 && msg_index <= 4) || (msg_index >= 6 && msg_index <= 11),
898 "Expected 2, 3, 4, 6, 7, 8, 9, 10 or 11, got %d\n", msg_index);
907 ok(!
lstrcmpA(
str,
"TestDDEServer"),
"Expected TestDDEServer, got %s\n",
str);
908 ok(
size == 13,
"Expected 13, got %d\n",
size);
913 ok(
size == 12,
"Expected 12, got %d\n",
size);
915 else if (msg_index >= 9 && msg_index <= 11)
932 ok(!
lstrcmpA(
ptr,
"[Command(Var)]"),
"Expected '[Command(Var)]', got %s\n",
ptr);
933 }
else if (msg_index == 10)
936 ok(!
lstrcmpA(
ptr,
"[Command-2(Var)]"),
"Expected '[Command-2(Var)]', got %s\n",
ptr);
941 ok(!
lstrcmpA(
ptr,
"[BadCommand(Var)]"),
"Expected '[BadCommand(Var)]', got %s\n",
ptr);
968 ok(hi ==
item,
"Expected item atom, got %08lx\n", hi);
972 else if (msg_index == 4 || msg_index == 7)
974 ok(hi == 0,
"Expected 0, got %08lx\n", hi);
975 ok(
size == 0,
"Expected empty string, got %d\n",
size);
979 ok(hi ==
item,
"Expected item atom, got %08lx\n", hi);
993 ok(msg_index == 5,
"Expected 5, got %d\n", msg_index);
999 ok(
data->unused == 0,
"Expected 0, got %d\n",
data->unused);
1000 ok(
data->fResponse ==
TRUE,
"Expected TRUE, got %d\n",
data->fResponse);
1003 ok(
data->fRelease ==
TRUE,
"Expected TRUE, got %d\n",
data->fRelease);
1005 ok(
data->fAckReq == 0,
"Expected 0, got %d\n",
data->fAckReq);
1008 "Expected 'requested data\\r\\n', got %s\n",
data->Value);
1037 ok(hglobal != 0,
"Expected non-NULL hglobal\n");
1056 ok(hglobal != 0,
"Expected non-NULL hglobal\n");
1073 ok(
server != 0,
"Expected non-NULL server\n");
1076 ok(
topic != 0,
"Expected non-NULL topic\n");
1086 ok(
item != 0,
"Expected non-NULL item\n");
1114 ok(
item != 0,
"Expected non-NULL item\n");
1126 win_skip(
"no lparam for WM_DDE_POKE\n");
1205 trace(
"WM_DDE_ACK: status %04lx hglobal %p\n", lo, (
HGLOBAL)hi);
1224 trace(
"WM_DDE_ACK: status %04lx hglobal %p\n", lo, (
HGLOBAL)hi);
1235 static BOOL client_unicode, conv_unicode;
1244 trace(
"server A: got WM_DDE_INITIATE from %p (%s) with %08lx\n",
1250 conv_unicode = client_unicode;
1251 if (step >= 10) client_unicode = !client_unicode;
1277 trace(
"%08lx => lo %04lx hi %04lx\n",
lparam, lo, hi);
1296 trace(
"server A got unhandled command\n" );
1329 else ok( 0,
"bad command data %lx\n", hi );
1332 trace(
"server A: posting %s WM_DDE_ACK to %p\n", ack.
fAck ?
"POSITIVE" :
"NEGATIVE", (
HWND)
wparam);
1353 trace(
"server A: posting %s WM_DDE_ACK to %p\n", ack.
fAck ?
"POSITIVE" :
"NEGATIVE", (
HWND)
wparam);
1371 static BOOL client_unicode, conv_unicode;
1383 conv_unicode = client_unicode;
1384 if (step >= 10) client_unicode = !client_unicode;
1398 trace(
"server W: got WM_DDE_INITIATE from %p with %08lx (client %s conv %s)\n", (
HWND)
wparam,
1399 lparam, client_unicode ?
"Unicode" :
"ANSI", conv_unicode ?
"Unicode" :
"ANSI" );
1414 trace(
"%08lx => lo %04lx hi %04lx\n",
lparam, lo, hi);
1433 trace(
"server W got unhandled command\n" );
1437 if (conv_unicode && !client_unicode)
1439 else if (!conv_unicode && client_unicode)
1446 if (conv_unicode && !client_unicode)
1448 else if (!conv_unicode && client_unicode)
1455 if (conv_unicode && !client_unicode)
1457 else if (!conv_unicode && client_unicode)
1464 if (conv_unicode && !client_unicode)
1466 else if (!conv_unicode && client_unicode)
1474 else ok( 0,
"bad command data %lx\n", hi );
1477 trace(
"server W: posting %s WM_DDE_ACK to %p\n", ack.
fAck ?
"POSITIVE" :
"NEGATIVE", (
HWND)
wparam);
1498 trace(
"server W: posting %s WM_DDE_ACK to %p\n", ack.
fAck ?
"POSITIVE" :
"NEGATIVE", (
HWND)
wparam);
1519 static const char server_class_nameA[] =
"dde_server_windowA";
1520 static const WCHAR server_class_nameW[] = {
'd',
'd',
'e',
'_',
's',
'e',
'r',
'v',
'e',
'r',
'_',
'w',
'i',
'n',
'd',
'o',
'w',
'W',0};
1524 memset(&wcW, 0,
sizeof(wcW));
1536 memset(&wcA, 0,
sizeof(wcA));
1551 HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
1554 static const char *
const cmd_type[15] = {
1555 "XTYP_ERROR",
"XTYP_ADVDATA",
"XTYP_ADVREQ",
"XTYP_ADVSTART",
1556 "XTYP_ADVSTOP",
"XTYP_EXECUTE",
"XTYP_CONNECT",
"XTYP_CONNECT_CONFIRM",
1557 "XTYP_XACT_COMPLETE",
"XTYP_POKE",
"XTYP_REGISTER",
"XTYP_REQUEST",
1558 "XTYP_DISCONNECT",
"XTYP_UNREGISTER",
"XTYP_WILDCONNECT" };
1560 const char *cmd_name;
1565 trace(
"client_dde_callback: %04x (%s) %d %p %p %p %p %08lx %08lx\n",
1566 uType, cmd_name, uFmt, hconv, hsz1, hsz2, hdata, dwData1, dwData2);
1578 BOOL conv_unicode = client_unicode;
1580 static char test_cmd[] =
"test dde command";
1603 "wrong iCodePage %d\n",
info.ConvCtxt.iCodePage);
1604 ok(!
info.hConvPartner,
"unexpected info.hConvPartner: %p\n",
info.hConvPartner);
1610 ok(
info.wType == 0,
"unexpected info.wType: %04x\n",
info.wType);
1613 trace(
"hwnd %p, hwndPartner %p, unicode %u\n",
info.hwnd,
info.hwndPartner, client_unicode);
1615 trace(
"sending test client transaction command\n");
1618 ok(!hdata,
"DdeClientTransaction succeeded\n");
1620 "wrong status code %04x\n",
ret);
1624 trace(
"sending ANSI client transaction command\n");
1628 if (conv_unicode && (!client_unicode || !server_unicode))
1630 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1634 else if (!conv_unicode && client_unicode && server_unicode)
1636 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1642 ok(hdata != 0,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1647 trace(
"sending ANSI-as-Unicode client transaction command\n");
1652 if (conv_unicode && (!client_unicode || !server_unicode))
1654 ok(hdata != 0,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1658 else if (!conv_unicode && client_unicode && server_unicode)
1660 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1666 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1668 "wrong status code %04x\n",
ret);
1672 trace(
"sending unicode client transaction command\n");
1676 if (conv_unicode && (!client_unicode || !server_unicode))
1678 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1682 else if (!conv_unicode && client_unicode && server_unicode)
1684 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1690 ok(hdata != 0,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1695 trace(
"sending Unicode-as-ANSI client transaction command\n");
1699 if (conv_unicode && (!client_unicode || !server_unicode))
1701 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1705 else if (!conv_unicode && client_unicode && server_unicode)
1707 ok(hdata != 0,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1713 ok(!hdata,
"DdeClientTransaction returned %p, error %x\n", hdata,
err);
1723 ok(!
ret,
"DdeQueryConvInfo should fail\n");
1760 ok(conversation ==
NULL,
"Expected NULL conversation, %p\n", conversation);
1772 ok(hdata ==
NULL,
"Expected NULL, got %p\n", hdata);
1776 ok(
res == 0xdeadbeef,
"Expected 0xdeadbeef, got %08x\n",
res);
1788 static const WCHAR dde_string[] = {
'D',
'D',
'E',
' ',
'S',
't',
'r',
'i',
'n',
'g',0};
1796 ok(str_handle != 0,
"DdeCreateStringHandleW failed with error %08x\n",
1801 ok(
ret == 1,
"DdeQueryStringW returned wrong length %d\n",
ret);
1803 ok(
ret ==
lstrlenW(dde_string),
"DdeQueryStringW returned wrong length %d\n",
ret);
1808 ok(
ret == 1,
"DdeQueryStringW returned wrong length %d\n",
ret);
1809 ok(!
lstrcmpA(
"D", (
LPCSTR)bufW),
"DdeQueryStringW returned wrong string\n");
1813 ok(
ret ==
lstrlenW(dde_string),
"DdeQueryStringW returned wrong length %d\n",
ret);
1814 ok(!
lstrcmpW(dde_string, bufW),
"DdeQueryStringW returned wrong string\n");
1820 ok(
ret == 1,
"DdeQueryStringA returned wrong length %d\n",
ret);
1821 ok(!
lstrcmpA(
"D",
buf),
"DdeQueryStringW returned wrong string\n");
1825 ok(
ret ==
lstrlenA(
"DDE String"),
"DdeQueryStringA returned wrong length %d\n",
ret);
1826 ok(!
lstrcmpA(
"DDE String",
buf),
"DdeQueryStringA returned wrong string %s\n",
buf);
1832 ok(
ret == 1,
"DdeQueryStringA returned wrong length %d\n",
ret);
1833 ok(!
lstrcmpA(
"D",
buf),
"DdeQueryStringA returned wrong string %s\n",
buf);
1837 ok(
ret ==
lstrlenA(
"DDE String"),
"DdeQueryStringA returned wrong length %d\n",
ret);
1844 ok(atom != 0,
"Expected a valid atom\n");
1848 ok(atom == 0,
"Expected 0, got %d\n", atom);
1850 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
GetLastError());
1855 ok(atom != 0,
"Expected a valid atom\n");
1859 ok(atom == 0,
"Expected 0, got %d\n", atom);
1861 "Expected ERROR_FILE_NOT_FOUND, got %d\n",
GetLastError());
1876 WCHAR item_str[] = {
'i',
't',
'e',
'm',0};
1925 ok(hdata ==
NULL,
"Expected NULL, got %p\n", hdata);
1938 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
1942 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
1943 ok(
size == 260,
"Expected 260, got %d\n",
size);
1955 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
1959 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
1972 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
1976 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
1977 ok(
size == 262,
"Expected 262, got %d\n",
size);
1993 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
1997 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
1999 ok(
size == 260,
"Expected 260, got %d\n",
size);
2011 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
2015 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
2017 ok(
size == 260,
"Expected 260, got %d\n",
size);
2029 ok(hdata !=
NULL,
"Expected non-NULL hdata\n");
2033 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
2035 ok(
size == 260,
"Expected 260, got %d\n",
size);
2126 ok(
lparam == (
int)0xbeefcafe,
"Expected 0xbeefcafe, got %08lx\n",
lparam);
2131 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2132 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2138 ok(
lparam == (
int)0xbeefcafe,
"Expected 0xbeefcafe, got %08lx\n",
lparam);
2143 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2144 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2153 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
2154 ok(
ptr[0] == 0xcafe,
"Expected 0xcafe, got %08lx\n",
ptr[0]);
2155 ok(
ptr[1] == 0xbeef,
"Expected 0xbeef, got %08lx\n",
ptr[1]);
2158 ok(
ret == 1,
"Expected 1, got %d\n",
ret);
2163 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2164 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2167 win_skip(
"no lparam for WM_DDE_ADVISE\n");
2173 ok(
lparam == (
int)0xbeefcafe,
"Expected 0xbeefcafe, got %08lx\n",
lparam);
2178 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2179 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2186 if (
lparam != (
int)0xbeefcafe) {
2188 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
2189 ok(
ptr[0] == 0xcafe,
"Expected 0xcafe, got %08lx\n",
ptr[0]);
2190 ok(
ptr[1] == 0xbeef,
"Expected 0xbeef, got %08lx\n",
ptr[1]);
2193 ok(
ret == 1,
"Expected 1, got %d\n",
ret);
2198 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2199 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2211 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
2212 ok(
ptr[0] == 0xcafe,
"Expected 0xcafe, got %08lx\n",
ptr[0]);
2213 ok(
ptr[1] == 0xbeef,
"Expected 0xbeef, got %08lx\n",
ptr[1]);
2216 ok(
ret == 1,
"Expected 1, got %d\n",
ret);
2221 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2222 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2225 win_skip(
"no lparam for WM_DDE_DATA\n");
2231 ok(
lparam == (
int)0xbeefcafe,
"Expected 0xbeefcafe, got %08lx\n",
lparam);
2236 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2237 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2246 ok(
ptr !=
NULL,
"Expected non-NULL ptr\n");
2247 ok(
ptr[0] == 0xcafe,
"Expected 0xcafe, got %08lx\n",
ptr[0]);
2248 ok(
ptr[1] == 0xbeef,
"Expected 0xbeef, got %08lx\n",
ptr[1]);
2251 ok(
ret == 1,
"Expected 1, got %d\n",
ret);
2256 ok(lo == 0xcafe,
"Expected 0xcafe, got %08lx\n", lo);
2257 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2260 win_skip(
"no lparam for WM_DDE_POKE\n");
2271 ok(lo == 0,
"Expected 0, got %08lx\n", lo);
2272 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2289 ok(lo == 0,
"Expected 0, got %08lx\n", lo);
2290 ok(hi == 0,
"Expected 0, got %08lx\n", hi);
2297 ok(lo == 0xdead,
"Expected 0xdead, got %08lx\n", lo);
2298 ok(hi == 0xcafe,
"Expected 0xcafe, got %08lx\n", hi);
2305 ok(lo == 0xbabe,
"Expected 0xbabe, got %08lx\n", lo);
2306 ok(hi == 0xbeef,
"Expected 0xbeef, got %08lx\n", hi);
2312 ok(lo == 0xbabe,
"Expected 0xbabe, got %08lx\n", lo);
2313 ok(hi == 0xcafe,
"Expected 0xcafe, got %08lx\n", hi);
2319 ok(lo == 0xbabe,
"Expected 0xbabe, got %08lx\n", lo);
2320 ok(hi == 0xcafe,
"Expected 0xcafe, got %08lx\n", hi);
2328 "Expected 0, got %08lx\n", lo);
2331 "Expected 0, got %08lx\n", hi);
2335 ptr[0] = 0xcafebabe;
2336 ptr[1] = 0xdeadbeef;
2343 ok(lo == 0xcafebabe,
"Expected 0xcafebabe, got %08lx\n", lo);
2344 ok(hi == 0xdeadbeef,
"Expected 0xdeadbeef, got %08lx\n", hi);
2350 ok(lo == 0xbabe,
"Expected 0xbabe, got %08lx\n", lo);
2351 ok(hi == 0xcafe,
"Expected 0xcafe, got %08lx\n", hi);
2357 ok(lo == 0xcafebabe,
"Expected 0xcafebabe, got %08lx\n", lo);
2358 ok(hi == 0xdeadbeef,
"Expected 0xdeadbeef, got %08lx\n", hi);
2364 ok(lo == 0xcafebabe,
"Expected 0xcafebabe, got %08lx\n", lo);
2365 ok(hi == 0xdeadbeef,
"Expected 0xdeadbeef, got %08lx\n", hi);
2371 ok(lo == 0xbabe,
"Expected 0xbabe, got %08lx\n", lo);
2372 ok(hi == 0xcafe,
"Expected 0xcafe, got %08lx\n", hi);
2378 ok(lo == 0xcafebabe,
"Expected 0xcafebabe, got %08lx\n", lo);
2379 ok(hi == 0xdeadbeef,
"Expected 0xdeadbeef, got %08lx\n", hi);
2385 ok(lo == 0,
"Expected 0, got %08lx\n", lo);
2386 ok(hi == 0xcafebabe,
"Expected 0xcafebabe, got %08lx\n", hi);
2393 {
't',
'e',
's',
't',
' ',
'd',
'd',
'e',
' ',
'c',
'o',
'm',
'm',
'a',
'n',
'd',0},
2394 { 0x2018, 0x2019, 0x0161, 0x0041, 0x02dc, 0 },
2395 { 0x2026, 0x2020, 0x2021, 0x0d0a, 0 },
2396 { 0x4efa, 0x4efc, 0x0061, 0x4efe, 0 },
2397 { 0x0061, 0x0062, 0x0063, 0x9152, 0 },
2402 HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
2407 static int msg_index = 0;
2408 static HCONV conversation = 0;
2410 static const char test_topic [] =
"TestDDETopic";
2419 return (HDDEDATA)
TRUE;
2425 ok(uFmt == 0,
"Expected 0, got %d, msg_index=%d\n", uFmt, msg_index);
2426 ok(hconv == 0,
"Expected 0, got %p, msg_index=%d\n", hconv, msg_index);
2427 ok(hdata == 0,
"Expected 0, got %p, msg_index=%d\n", hdata, msg_index);
2428 ok(dwData1 != 0,
"Expected not 0, got %08lx, msg_index=%d\n", dwData1, msg_index);
2429 ok(dwData2 ==
FALSE,
"Expected FALSE, got %08lx, msg_index=%d\n", dwData2, msg_index);
2432 ok(!
lstrcmpA(
str, test_topic),
"Expected %s, got %s, msg_index=%d\n",
2433 test_topic,
str, msg_index);
2434 ok(
size == 12,
"Expected 12, got %d, msg_index=%d\n",
size, msg_index);
2439 ok(
size == 14,
"Expected 14, got %d, msg_index=%d\n",
size, msg_index);
2441 return (HDDEDATA)
TRUE;
2446 conversation = hconv;
2447 return (HDDEDATA)
TRUE;
2453 char test_cmd_w_to_a[64];
2454 WCHAR test_cmd_a_to_w[64];
2455 DWORD size_a, size_w, size_w_to_a, size_a_to_w;
2456 BOOL unicode_server, unicode_client, str_index;
2458 ok(uFmt == 0,
"Expected 0, got %d\n", uFmt);
2459 ok(hconv == conversation,
"Expected conversation handle, got %p, msg_index=%d\n",
2461 ok(dwData1 == 0,
"Expected 0, got %08lx, msg_index=%d\n", dwData1, msg_index);
2462 ok(dwData2 == 0,
"Expected 0, got %08lx, msg_index=%d\n", dwData2, msg_index);
2463 ok(hsz2 == 0,
"Expected 0, got %p, msg_index=%d\n", hsz2, msg_index);
2465 ok(!
lstrcmpA(
str, test_topic),
"Expected %s, got %s, msg_index=%d\n",
2466 test_topic,
str, msg_index);
2467 ok(
size == 12,
"Expected 12, got %d, msg_index=%d\n",
size, msg_index);
2472 ok(rsize ==
size,
"Incorrect size returned, expected %d got %d, msg_index=%d\n",
2473 size, rsize, msg_index);
2485 test_cmd_w_to_a,
sizeof(test_cmd_w_to_a),
NULL,
NULL );
2491 ok(
size == size_a_to_w,
"Wrong size %d/%d, msg_index=%d\n",
size, size_a_to_w, msg_index);
2493 "Expected %s, msg_index=%d\n",
wine_dbgstr_w(test_cmd_a_to_w), msg_index);
2495 else if (unicode_client)
2501 ok(
size == size_a,
"Wrong size %d/%d, msg_index=%d\n",
size, size_a, msg_index);
2510 ok(
size == size_w,
"Wrong size %d/%d, msg_index=%d\n",
size, size_w, msg_index);
2512 "Expected %s, msg_index=%d\n",
wine_dbgstr_w(cmd_w), msg_index);
2516 ok(
size == size_w_to_a,
"Wrong size %d/%d, msg_index=%d\n",
2517 size, size_w_to_a, msg_index);
2519 test_cmd_w_to_a,
buffer, msg_index);
2535 "Wrong size %d/%d, msg_index=%d\n",
size, size_a_to_w, msg_index);
2537 "Expected %s, msg_index=%d\n",
wine_dbgstr_w(test_cmd_a_to_w), msg_index);
2539 else if (unicode_client)
2541 ok(
size == size_w_to_a,
"Wrong size %d/%d, msg_index=%d\n",
size, size_w_to_a, msg_index);
2543 test_cmd_w_to_a,
buffer, msg_index);
2547 ok(
size == size_w,
"Wrong size %d/%d, msg_index=%d\n",
size, size_w, msg_index);
2549 "Expected %s, msg_index=%d\n",
wine_dbgstr_w(cmd_w), msg_index);
2553 if (unicode_server && unicode_client)
2555 todo_wine ok(
size == size_w,
"Wrong size %d expected %d, msg_index=%d\n",
size, size_w, msg_index);
2561 else if (unicode_server)
2563 todo_wine ok(
size == size_w,
"Wrong size %d expected %d, msg_index=%d\n",
size, size_w, msg_index);
2573 else if (unicode_client)
2575 ok(
size == size_w_to_a,
"Wrong size %d expected %d, msg_index=%d\n",
size, size_w_to_a, msg_index);
2577 test_cmd_w_to_a,
buffer, msg_index);
2581 todo_wine ok(
size == size_w_to_a ||
size == (size_w_to_a - 1),
"Wrong size %d expected %d or %d, msg_index=%d\n",
2582 size, size_w_to_a, size_w_to_a - 1, msg_index);
2584 test_cmd_w_to_a,
buffer, msg_index);
2589 ok( 0,
"Invalid message %u\n", msg_index );
2596 return (HDDEDATA)
TRUE;
2599 ok(
FALSE,
"Unhandled msg: %08x, msg_index=%d\n", uType, msg_index);
2606 HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
2612 return (HDDEDATA)
TRUE;
2615 ok(
FALSE,
"Unhandled msg: %08x\n", uType);
2629 static const WCHAR test_service_w[] = {
'T',
'e',
's',
't',
'D',
'D',
'E',
'S',
'e',
'r',
'v',
'i',
'c',
'e',0};
2630 static const char test_topic[] =
"TestDDETopic";
2631 static const WCHAR test_topic_w[] = {
'T',
'e',
's',
't',
'D',
'D',
'E',
'T',
'o',
'p',
'i',
'c',0};
2633 trace(
"Start end to end client %s\n", type_a ?
"ASCII" :
"UNICODE");
2653 ok(hconv !=
NULL,
"Expected non-NULL conversation\n");
2661 ok(hdata !=
NULL,
"DdeClientTransaction failed\n");
2671 ok(hdata !=
NULL,
"DdeClientTransaction failed\n");
2695 trace(
"start end to end server %s\n", type_a ?
"ASCII" :
"UNICODE");
2705 ok(
server !=
NULL,
"Expected non-NULL string handle\n");
2708 ok(hdata == (HDDEDATA)
TRUE,
"Expected TRUE, got %p\n", hdata);
2720 ok( !
res,
"client failed with %u error(s)\n",
res );
2753 win_skip(
"Skipping tests on win9x because of brokenness\n");
2787 win_skip(
"Skipping W-interface tests\n");
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
static void startup(void)
LPARAM WINAPI ReuseDDElParam(LPARAM, UINT, UINT, UINT_PTR, UINT_PTR)
BOOL WINAPI UnpackDDElParam(UINT, LPARAM, PUINT_PTR, PUINT_PTR)
BOOL WINAPI FreeDDElParam(UINT, LPARAM)
LPARAM WINAPI PackDDElParam(UINT, UINT_PTR, UINT_PTR)
HDDEDATA WINAPI DdeClientTransaction(LPBYTE, DWORD, HCONV, HSZ, UINT, UINT, DWORD, LPDWORD)
HSZ WINAPI DdeCreateStringHandleA(DWORD, LPCSTR, INT)
UINT WINAPI DdeQueryConvInfo(HCONV, DWORD, PCONVINFO)
#define XTYP_XACT_COMPLETE
HDDEDATA WINAPI DdeCreateDataHandle(DWORD, LPBYTE, DWORD, DWORD, HSZ, UINT, UINT)
BOOL WINAPI DdeUninitialize(DWORD)
UINT WINAPI DdeInitializeW(LPDWORD, PFNCALLBACK, DWORD, DWORD)
#define DMLERR_MEMORY_ERROR
HCONV WINAPI DdeConnect(DWORD, HSZ, HSZ, PCONVCONTEXT)
#define XTYP_CONNECT_CONFIRM
#define DMLERR_NOTPROCESSED
UINT WINAPI DdeGetLastError(DWORD)
HSZ WINAPI DdeCreateStringHandleW(DWORD, LPCWSTR, INT)
#define DDE_FNOTPROCESSED
DWORD WINAPI DdeQueryStringA(DWORD, HSZ, LPSTR, DWORD, INT)
DWORD WINAPI DdeQueryStringW(DWORD, HSZ, LPWSTR, DWORD, INT)
BOOL WINAPI DdeFreeStringHandle(DWORD, HSZ)
BOOL WINAPI DdeDisconnect(HCONV)
HDDEDATA WINAPI DdeNameService(DWORD, HSZ, HSZ, UINT)
#define DMLERR_NO_CONV_ESTABLISHED
BOOL WINAPI DdeUnaccessData(HDDEDATA)
LPBYTE WINAPI DdeAccessData(HDDEDATA, LPDWORD)
BOOL WINAPI DdeFreeDataHandle(HDDEDATA)
#define APPCMD_CLIENTONLY
DWORD WINAPI DdeGetData(HDDEDATA, LPBYTE, DWORD, DWORD)
#define DMLERR_INVALIDPARAMETER
#define APPCLASS_STANDARD
UINT WINAPI DdeInitializeA(LPDWORD, PFNCALLBACK, DWORD, DWORD)
#define ERROR_CALL_NOT_IMPLEMENTED
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
ATOM WINAPI FindAtomW(LPCWSTR lpString)
ATOM WINAPI GlobalFindAtomW(LPCWSTR lpString)
ATOM WINAPI FindAtomA(LPCSTR lpString)
ATOM WINAPI GlobalAddAtomA(LPCSTR lpString)
ATOM WINAPI GlobalFindAtomA(LPCSTR lpString)
ATOM WINAPI GlobalDeleteAtom(ATOM nAtom)
UINT WINAPI GlobalGetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize)
ATOM WINAPI GlobalAddAtomW(LPCWSTR lpString)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
BOOL WINAPI GetExitCodeProcess(IN HANDLE hProcess, IN LPDWORD lpExitCode)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
DWORD WINAPI ResumeThread(IN HANDLE hThread)
DWORD WINAPI GetTickCount(VOID)
BOOL WINAPI IsDBCSLeadByte(BYTE testchar)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
LANGID WINAPI GetUserDefaultLangID(void)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define ERROR_FILE_NOT_FOUND
#define sprintf(buf, format,...)
static void test_service(void)
static void test_PackDDElParam(void)
static void test_ddeml_server(HANDLE hproc)
static WCHAR test_cmd_w_to_w[][32]
static LRESULT WINAPI dde_server_wndprocA(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
static LRESULT WINAPI dde_msg_client_wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
static const DWORD default_timeout
static void test_end_to_end_client(BOOL type_a)
static void test_dde_aw_transaction(BOOL client_unicode, BOOL server_unicode)
static void test_DdeCreateStringHandleW(DWORD dde_inst, int codepage)
static HGLOBAL create_poke(void)
static HDDEDATA CALLBACK server_ddeml_callback(UINT uType, UINT uFmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, ULONG_PTR dwData1, ULONG_PTR dwData2)
static void test_DdeCreateDataHandle(void)
static LRESULT WINAPI dde_server_wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
static void test_DdeCreateStringHandle(void)
static HDDEDATA CALLBACK server_end_to_end_callback(UINT uType, UINT uFmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, ULONG_PTR dwData1, ULONG_PTR dwData2)
static HWND create_dde_server(BOOL unicode)
static HDDEDATA CALLBACK client_ddeml_callback(UINT uType, UINT uFmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, ULONG_PTR dwData1, ULONG_PTR dwData2)
static LRESULT WINAPI hook_dde_client_wndprocA(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
static HDDEDATA CALLBACK client_dde_callback(UINT uType, UINT uFmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, ULONG_PTR dwData1, ULONG_PTR dwData2)
static const int nb_callbacks
static void test_msg_server(HANDLE hproc, HANDLE hthread)
static const WCHAR TEST_DDE_SERVICE[]
static void flush_events(void)
static void test_FreeDDElParam(void)
static void test_end_to_end_server(HANDLE hproc, HANDLE hthread, BOOL type_a)
static char test_cmd_a_to_a[]
static void test_ddeml_client(void)
static HGLOBAL create_execute(LPCSTR command)
static LRESULT WINAPI hook_dde_client_wndprocW(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
static void test_initialisation(void)
static void test_UnpackDDElParam(void)
static HDDEDATA CALLBACK client_end_to_end_callback(UINT uType, UINT uFmt, HCONV hconv, HSZ hsz1, HSZ hsz2, HDDEDATA hdata, ULONG_PTR dwData1, ULONG_PTR dwData2)
static WNDPROC old_dde_client_wndproc
static void destroy_dde_window(HWND *hwnd, LPCSTR name)
static void test_msg_client(void)
static HGLOBAL execute_hglobal
static void create_dde_window(HWND *hwnd, LPCSTR name, WNDPROC wndproc)
static WCHAR exec_cmdAW[]
static LRESULT WINAPI dde_server_wndprocW(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
unsigned __int3264 UINT_PTR
int winetest_get_mainargs(char ***pargv)
unsigned short bAppReturnCode