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:
|
||||
qs = WDML_HandleIncomingTerminate(pConv, msg, hdd);
|
||||
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;
|
||||
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);
|
||||
ret = DdeGetLastError(client_pid);
|
||||
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 */
|
||||
res = 0xdeadbeef;
|
||||
|
|
Loading…
Reference in New Issue