From cefcadcc38fac636061bb70a64f367a97cb1b8bc Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 2 May 2011 16:59:09 +0400 Subject: [PATCH] comctl32: Ignore size field when creating with -W calls. --- dlls/comctl32/comctl32undoc.c | 24 +++++++++++------------- dlls/comctl32/tests/mru.c | 12 ++++++------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/dlls/comctl32/comctl32undoc.c b/dlls/comctl32/comctl32undoc.c index 8e22cf0001..cc5974787d 100644 --- a/dlls/comctl32/comctl32undoc.c +++ b/dlls/comctl32/comctl32undoc.c @@ -649,9 +649,9 @@ INT WINAPI FindMRUStringA (HANDLE hList, LPCSTR lpszString, LPINT lpRegNum) } /************************************************************************* - * CreateMRUListLazy_common (internal) + * create_mru_list (internal) */ -static HANDLE CreateMRUListLazy_common(LPWINEMRULIST mp) +static HANDLE create_mru_list(LPWINEMRULIST mp) { UINT i, err; HKEY newkey; @@ -737,24 +737,22 @@ static HANDLE CreateMRUListLazy_common(LPWINEMRULIST mp) * * See CreateMRUListLazyA. */ -HANDLE WINAPI CreateMRUListLazyW (const MRUINFOW *lpcml, DWORD dwParam2, +HANDLE WINAPI CreateMRUListLazyW (const MRUINFOW *infoW, DWORD dwParam2, DWORD dwParam3, DWORD dwParam4) { LPWINEMRULIST mp; /* Native does not check for a NULL lpcml */ - - if (lpcml->cbSize != sizeof(MRUINFOW) || !lpcml->hKey || - IsBadStringPtrW(lpcml->lpszSubKey, -1)) + if (!infoW->hKey || IsBadStringPtrW(infoW->lpszSubKey, -1)) return NULL; mp = Alloc(sizeof(WINEMRULIST)); - memcpy(&mp->extview, lpcml, sizeof(MRUINFOW)); - mp->extview.lpszSubKey = Alloc((strlenW(lpcml->lpszSubKey) + 1) * sizeof(WCHAR)); - strcpyW(mp->extview.lpszSubKey, lpcml->lpszSubKey); + memcpy(&mp->extview, infoW, sizeof(MRUINFOW)); + mp->extview.lpszSubKey = Alloc((strlenW(infoW->lpszSubKey) + 1) * sizeof(WCHAR)); + strcpyW(mp->extview.lpszSubKey, infoW->lpszSubKey); mp->isUnicode = TRUE; - return CreateMRUListLazy_common(mp); + return create_mru_list(mp); } /************************************************************************** @@ -790,7 +788,7 @@ HANDLE WINAPI CreateMRUListLazyA (const MRUINFOA *lpcml, DWORD dwParam2, MultiByteToWideChar(CP_ACP, 0, lpcml->lpszSubKey, -1, mp->extview.lpszSubKey, len); mp->isUnicode = FALSE; - return CreateMRUListLazy_common(mp); + return create_mru_list(mp); } /************************************************************************** @@ -798,9 +796,9 @@ HANDLE WINAPI CreateMRUListLazyA (const MRUINFOA *lpcml, DWORD dwParam2, * * See CreateMRUListA. */ -HANDLE WINAPI CreateMRUListW (const MRUINFOW *lpcml) +HANDLE WINAPI CreateMRUListW (const MRUINFOW *infoW) { - return CreateMRUListLazyW(lpcml, 0, 0, 0); + return CreateMRUListLazyW(infoW, 0, 0, 0); } /************************************************************************** diff --git a/dlls/comctl32/tests/mru.c b/dlls/comctl32/tests/mru.c index 70b355edea..7d239d753f 100644 --- a/dlls/comctl32/tests/mru.c +++ b/dlls/comctl32/tests/mru.c @@ -573,7 +573,7 @@ static void test_CreateMRUListW(void) infoW.lpfnCompare = NULL; hMru = pCreateMRUListW(&infoW); - todo_wine ok(hMru != NULL, "got %p\n", hMru); + ok(hMru != NULL, "got %p\n", hMru); pFreeMRUList(hMru); /* increased size */ @@ -585,7 +585,7 @@ static void test_CreateMRUListW(void) infoW.lpfnCompare = NULL; hMru = pCreateMRUListW(&infoW); - todo_wine ok(hMru != NULL, "got %p\n", hMru); + ok(hMru != NULL, "got %p\n", hMru); pFreeMRUList(hMru); /* zero size */ @@ -597,7 +597,7 @@ static void test_CreateMRUListW(void) infoW.lpfnCompare = NULL; hMru = pCreateMRUListW(&infoW); - todo_wine ok(hMru != NULL, "got %p\n", hMru); + ok(hMru != NULL, "got %p\n", hMru); pFreeMRUList(hMru); /* NULL hKey */ @@ -655,7 +655,7 @@ static void test_CreateMRUListLazyW(void) infoW.lpfnCompare = NULL; hMru = pCreateMRUListLazyW(&infoW, 0, 0, 0); - todo_wine ok(hMru != NULL, "got %p\n", hMru); + ok(hMru != NULL, "got %p\n", hMru); pFreeMRUList(hMru); /* increased size */ @@ -667,7 +667,7 @@ static void test_CreateMRUListLazyW(void) infoW.lpfnCompare = NULL; hMru = pCreateMRUListLazyW(&infoW, 0, 0, 0); - todo_wine ok(hMru != NULL, "got %p\n", hMru); + ok(hMru != NULL, "got %p\n", hMru); pFreeMRUList(hMru); /* zero size */ @@ -679,7 +679,7 @@ static void test_CreateMRUListLazyW(void) infoW.lpfnCompare = NULL; hMru = pCreateMRUListLazyW(&infoW, 0, 0, 0); - todo_wine ok(hMru != NULL, "got %p\n", hMru); + ok(hMru != NULL, "got %p\n", hMru); pFreeMRUList(hMru); /* NULL hKey */