user32: Implement return value for DdeClientTransaction for XTYP_EXECUTE.
This commit is contained in:
parent
6ff78347e2
commit
aaa93200ad
|
@ -985,6 +985,15 @@ static WDML_QUEUE_STATE WDML_HandleReply(WDML_CONV* pConv, MSG* msg, HDDEDATA* h
|
||||||
case WM_DDE_TERMINATE:
|
case WM_DDE_TERMINATE:
|
||||||
qs = WDML_HandleIncomingTerminate(pConv, msg, hdd);
|
qs = WDML_HandleIncomingTerminate(pConv, msg, hdd);
|
||||||
break;
|
break;
|
||||||
|
case WM_DDE_ACK:
|
||||||
|
/* This happens at end of DdeClientTransaction XTYP_EXECUTE
|
||||||
|
* Without this assignment, DdeClientTransaction's return value is undefined
|
||||||
|
* See also http://support.microsoft.com/kb/102574
|
||||||
|
*/
|
||||||
|
*hdd = (HDDEDATA)TRUE;
|
||||||
|
if (ack)
|
||||||
|
*ack = DDE_FACK;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WDML_QS_BLOCK:
|
case WDML_QS_BLOCK:
|
||||||
|
|
|
@ -414,11 +414,8 @@ static void test_ddeml_client(void)
|
||||||
op = DdeClientTransaction((LPBYTE)hdata, -1, conversation, NULL, 0, XTYP_EXECUTE, default_timeout, &res);
|
op = DdeClientTransaction((LPBYTE)hdata, -1, conversation, NULL, 0, XTYP_EXECUTE, default_timeout, &res);
|
||||||
ret = DdeGetLastError(client_pid);
|
ret = DdeGetLastError(client_pid);
|
||||||
ok(ret == DMLERR_NO_ERROR, "Expected DMLERR_NO_ERROR, got %d\n", ret);
|
ok(ret == DMLERR_NO_ERROR, "Expected DMLERR_NO_ERROR, got %d\n", ret);
|
||||||
todo_wine
|
ok(op == (HDDEDATA)TRUE, "Expected TRUE, got %p\n", op);
|
||||||
{
|
ok(res == DDE_FACK, "Expected DDE_FACK, got %d\n", res);
|
||||||
ok(op == (HDDEDATA)TRUE, "Expected TRUE, got %p\n", op);
|
|
||||||
ok(res == DDE_FACK, "Expected DDE_FACK, got %d\n", res);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* XTYP_EXECUTE, no data */
|
/* XTYP_EXECUTE, no data */
|
||||||
res = 0xdeadbeef;
|
res = 0xdeadbeef;
|
||||||
|
|
Loading…
Reference in New Issue