From ac174f4cf433176b0f582e83b6103adbf9537af6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= Date: Wed, 14 Nov 2018 12:00:16 +0200 Subject: [PATCH] comctl32/listbox: Use ULONG_PTR instead of DWORD when retrieving text without HAS_STRINGS. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gabriel Ivăncescu Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/comctl32/listbox.c | 6 +++--- dlls/comctl32/tests/listbox.c | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/dlls/comctl32/listbox.c b/dlls/comctl32/listbox.c index 4a2df52f87b..76b09aa9102 100644 --- a/dlls/comctl32/listbox.c +++ b/dlls/comctl32/listbox.c @@ -762,8 +762,8 @@ static LRESULT LISTBOX_GetText( LB_DESCR *descr, INT index, LPWSTR buffer, BOOL } else { if (buffer) - *((DWORD *)buffer) = *(DWORD *)&descr->items[index].data; - len = sizeof(DWORD); + *((ULONG_PTR *)buffer) = descr->items[index].data; + len = sizeof(ULONG_PTR); } return len; } @@ -2653,7 +2653,7 @@ static LRESULT CALLBACK LISTBOX_WindowProc( HWND hwnd, UINT msg, WPARAM wParam, SetLastError(ERROR_INVALID_INDEX); return LB_ERR; } - if (!HAS_STRINGS(descr)) return sizeof(DWORD); + if (!HAS_STRINGS(descr)) return sizeof(ULONG_PTR); return strlenW( descr->items[wParam].str ); case LB_GETCURSEL: diff --git a/dlls/comctl32/tests/listbox.c b/dlls/comctl32/tests/listbox.c index 6ac3c735a76..802dd98d355 100644 --- a/dlls/comctl32/tests/listbox.c +++ b/dlls/comctl32/tests/listbox.c @@ -2296,12 +2296,11 @@ static void test_LBS_NODATA(void) ret = SendMessageA(listbox, LB_SETITEMDATA, valid_idx[i], 42); ok(ret == TRUE, "Unexpected return value %d.\n", ret); ret = SendMessageA(listbox, LB_GETTEXTLEN, valid_idx[i], 0); - todo_wine_if(text_len == 8) + todo_wine_if(is_wow64) ok(ret == text_len, "Unexpected return value %d.\n", ret); memset(&data, 0xee, sizeof(data)); ret = SendMessageA(listbox, LB_GETTEXT, valid_idx[i], (LPARAM)&data); - todo_wine_if(sizeof(void *) == 8) ok(ret == sizeof(data), "Unexpected return value %d.\n", ret); todo_wine ok(!memcmp(&data, &zero_data, sizeof(data)), "Unexpected item data.\n");