user32: DdeClientTransaction should return 0 in the last param forDDE_DATA
Dmitry Timoshkov
dmitry at codeweavers.com
Wed Aug 6 00:15:17 CDT 2008
"Jeff Latimer" <lats at 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.
--
Dmitry.
More information about the wine-devel
mailing list