"Jeff Latimer" lats@yless4u.com.au wrote:
--- a/dlls/user32/dde_client.c +++ b/dlls/user32/dde_client.c @@ -520,6 +520,7 @@ static WDML_QUEUE_STATE WDML_HandleRequestReply(WDML_CONV* pConv, MSG* msg, WDML case WM_DDE_DATA: UnpackDDElParam(WM_DDE_DATA, msg->lParam, &uiLo, &uiHi); TRACE("Got the result (%08lx)\n", uiLo);
- if (ack) *ack = ERROR_SUCCESS;
hsz = WDML_MakeHszFromAtom(pConv->instance, uiHi);
diff --git a/dlls/user32/tests/dde.c b/dlls/user32/tests/dde.c index 8ea0525..debbd20 100644 --- a/dlls/user32/tests/dde.c +++ b/dlls/user32/tests/dde.c @@ -292,10 +292,7 @@ static void test_ddeml_client(void) hdata = DdeClientTransaction(NULL, 0, conversation, item, CF_TEXT, XTYP_REQUEST, default_timeout, &res); ret = DdeGetLastError(client_pid); ok(ret == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", ret);
- todo_wine
- {
ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %08x\n", res);
- }
- ok(res == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %08x\n", res);
DdeClientTransaction is not supposed to return ERROR_SUCCESS in res. DDE_FNOTPROCESSED looks like a more appropriate value. Same for DdeGetLastError, DMLERR_NO_ERROR seems more reasonable in this case.
Also IMO a more appropriate place to set ack to DDE_FNOTPROCESSED is WDML_HandleReply, so that all types of replies get covered.