We don't need copies of this function in three places.
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/shell32/tests/string.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/shell32/tests/string.c b/dlls/shell32/tests/string.c index d40f6c7fc4f..a1202ead945 100644 --- a/dlls/shell32/tests/string.c +++ b/dlls/shell32/tests/string.c @@ -60,7 +60,7 @@ static void test_StrRetToStringNW(void) strret.uType = STRRET_WSTR; strret.pOleStr = CoDupStrW("Test"); memset(buff, 0xff, sizeof(buff)); - ret = pStrRetToStrNAW(buff, ARRAY_SIZE(buff), &strret, NULL); + ret = pStrRetToStrNAW(buff, ARRAY_SIZE(buff) - 1, &strret, NULL); ok(ret == TRUE && !wcscmp(buff, szTestW), "STRRET_WSTR: dup failed, ret=%d\n", ret);
@@ -79,6 +79,20 @@ static void test_StrRetToStringNW(void) ok(ret == TRUE && !wcscmp(buff, szTestW), "STRRET_OFFSET: dup failed, ret=%d\n", ret);
+ strret.uType = 3; + memset(buff, 0xff, sizeof(buff)); + ret = pStrRetToStrNAW(buff, 0, &strret, NULL); + todo_wine + ok(ret == TRUE && buff[0] == 0xffff, + "Invalid STRRET type: dup failed, ret=%d\n", ret); + + strret.uType = 3; + memset(buff, 0xff, sizeof(buff)); + ret = pStrRetToStrNAW(buff, ARRAY_SIZE(buff), &strret, NULL); + todo_wine + ok(ret == TRUE && buff[0] == 0, + "Invalid STRRET type: dup failed, ret=%d\n", ret); + /* The next test crashes on W2K, WinXP and W2K3, so we don't test. */ if (0) {
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/shlwapi/string.c | 8 ++++---- dlls/shlwapi/tests/string.c | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/dlls/shlwapi/string.c b/dlls/shlwapi/string.c index 37d4d526fb6..4bf95f98170 100644 --- a/dlls/shlwapi/string.c +++ b/dlls/shlwapi/string.c @@ -231,8 +231,8 @@ HRESULT WINAPI StrRetToBufA (LPSTRRET src, const ITEMIDLIST *pidl, LPSTR dest, U break;
default: - FIXME("unknown type!\n"); - return E_NOTIMPL; + WARN("unknown type!\n"); + return E_FAIL; } return S_OK; } @@ -290,8 +290,8 @@ HRESULT WINAPI StrRetToBufW (LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, break;
default: - FIXME("unknown type!\n"); - return E_NOTIMPL; + WARN("unknown type!\n"); + return E_FAIL; }
return S_OK; diff --git a/dlls/shlwapi/tests/string.c b/dlls/shlwapi/tests/string.c index 19430f27296..8fa0b0534cb 100644 --- a/dlls/shlwapi/tests/string.c +++ b/dlls/shlwapi/tests/string.c @@ -1150,6 +1150,12 @@ if (0) hres = pStrRetToBufW(&strret, NULL, wbuf, 10); ok(hres == E_FAIL, "StrRetToBufW returned %08lx\n", hres); ok(!wbuf[0], "StrRetToBuf returned %s\n", wine_dbgstr_w(wbuf)); + + memset(wbuf, 0xbf, sizeof(wbuf)); + strret.uType = 3; + hres = pStrRetToBufW(&strret, NULL, wbuf, 10); + ok(hres == E_FAIL, "StrRetToBufW returned %08lx\n", hres); + ok(!wbuf[0], "StrRetToBuf returned %s\n", wine_dbgstr_w(wbuf)); } else win_skip("StrRetToBufW() is not available\n");
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/shell32/brsfolder.c | 2 +- dlls/shell32/pidl.c | 4 +- dlls/shell32/shell32_main.c | 2 +- dlls/shell32/shell32_main.h | 4 +- dlls/shell32/shellstring.c | 88 +++---------------------------------- dlls/shell32/shlexec.c | 2 +- dlls/shell32/shlfolder.c | 2 +- dlls/shell32/shlview.c | 6 +-- dlls/shell32/tests/string.c | 2 - 9 files changed, 16 insertions(+), 96 deletions(-)
diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c index 63f0a3420dd..4fd3ba63b1d 100644 --- a/dlls/shell32/brsfolder.c +++ b/dlls/shell32/brsfolder.c @@ -327,7 +327,7 @@ static BOOL GetName(LPSHELLFOLDER lpsf, LPCITEMIDLIST lpi, DWORD dwFlags, LPWSTR
TRACE("%p %p %lx %p\n", lpsf, lpi, dwFlags, lpFriendlyName); if (SUCCEEDED(IShellFolder_GetDisplayNameOf(lpsf, lpi, dwFlags, &str))) - bSuccess = StrRetToStrNW(lpFriendlyName, MAX_PATH, &str, lpi); + bSuccess = StrRetToBufW(&str, lpi, lpFriendlyName, MAX_PATH); else bSuccess = FALSE;
diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c index 668a5bc583a..57148b4ef33 100644 --- a/dlls/shell32/pidl.c +++ b/dlls/shell32/pidl.c @@ -127,7 +127,7 @@ BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWO ret = IShellFolder_GetDisplayNameOf(lsf, pidl, flag, &strret); if (SUCCEEDED(ret)) { - if(!StrRetToStrNW(path, MAX_PATH, &strret, pidl)) + if(!StrRetToBufW(&strret, pidl, path, MAX_PATH)) ret = E_FAIL; } } @@ -139,7 +139,7 @@ BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWO ret = IShellFolder_GetDisplayNameOf(psfParent, pidllast, flag, &strret); if (SUCCEEDED(ret)) { - if(!StrRetToStrNW(path, MAX_PATH, &strret, pidllast)) + if(!StrRetToBufW(&strret, pidllast, path, MAX_PATH)) ret = E_FAIL; } IShellFolder_Release(psfParent); diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c index c739e1723f7..7ff64e4df46 100644 --- a/dlls/shell32/shell32_main.c +++ b/dlls/shell32/shell32_main.c @@ -265,7 +265,7 @@ DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes, STRRET str; hr = IShellFolder_GetDisplayNameOf( psfParent, pidlLast, SHGDN_INFOLDER, &str); - StrRetToStrNW (psfi->szDisplayName, MAX_PATH, &str, pidlLast); + StrRetToBufW(&str, pidlLast, psfi->szDisplayName, MAX_PATH); } }
diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h index 6b5575c6879..766c7c23adc 100644 --- a/dlls/shell32/shell32_main.h +++ b/dlls/shell32/shell32_main.h @@ -34,6 +34,7 @@ #include "docobj.h" #include "shlobj.h" #include "shellapi.h" +#include "shlwapi.h" #include "wine/heap.h" #include "wine/list.h"
@@ -270,9 +271,6 @@ typedef struct ITEMIDLIST idl; } CWTESTPATHSTRUCT;
-BOOL WINAPI StrRetToStrNA(char *, DWORD, STRRET *, const ITEMIDLIST *); -BOOL WINAPI StrRetToStrNW(WCHAR *, DWORD, STRRET *, const ITEMIDLIST *); - WCHAR *shell_get_resource_string(UINT id);
#endif diff --git a/dlls/shell32/shellstring.c b/dlls/shell32/shellstring.c index 13108dbc8b7..53840589362 100644 --- a/dlls/shell32/shellstring.c +++ b/dlls/shell32/shellstring.c @@ -38,86 +38,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
DWORD WINAPI CheckEscapesW(WCHAR *string, DWORD len);
-/************************* STRRET functions ****************************/ - -static const char *debugstr_strret(STRRET *s) -{ - switch (s->uType) - { - case STRRET_WSTR: - return "STRRET_WSTR"; - case STRRET_CSTR: - return "STRRET_CSTR"; - case STRRET_OFFSET: - return "STRRET_OFFSET"; - default: - return "STRRET_???"; - } -} - -BOOL WINAPI StrRetToStrNA(LPSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) -{ - TRACE("dest=%p len=0x%lx strret=%p(%s) pidl=%p\n", dest, len, src, debugstr_strret(src), pidl); - - if (!dest) - return FALSE; - - switch (src->uType) - { - case STRRET_WSTR: - WideCharToMultiByte(CP_ACP, 0, src->pOleStr, -1, dest, len, NULL, NULL); - CoTaskMemFree(src->pOleStr); - break; - case STRRET_CSTR: - lstrcpynA(dest, src->cStr, len); - break; - case STRRET_OFFSET: - lstrcpynA(dest, ((LPCSTR)&pidl->mkid)+src->uOffset, len); - break; - default: - FIXME("unknown type %u!\n", src->uType); - if (len) - *dest = '\0'; - return FALSE; - } - TRACE("-- %s\n", debugstr_a(dest) ); - return TRUE; -} - -/************************************************************************/ - -BOOL WINAPI StrRetToStrNW(LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) -{ - TRACE("dest=%p len=0x%lx strret=%p(%s) pidl=%p\n", dest, len, src, debugstr_strret(src), pidl); - - if (!dest) - return FALSE; - - switch (src->uType) - { - case STRRET_WSTR: - lstrcpynW(dest, src->pOleStr, len); - CoTaskMemFree(src->pOleStr); - break; - case STRRET_CSTR: - if (!MultiByteToWideChar(CP_ACP, 0, src->cStr, -1, dest, len) && len) - dest[len-1] = 0; - break; - case STRRET_OFFSET: - if (!MultiByteToWideChar(CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->uOffset, -1, dest, len) - && len) - dest[len-1] = 0; - break; - default: - FIXME("unknown type %u!\n", src->uType); - if (len) - *dest = '\0'; - return FALSE; - } - return TRUE; -} - - /************************************************************************* * StrRetToStrN [SHELL32.96] * @@ -128,10 +48,14 @@ BOOL WINAPI StrRetToStrNW(LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST */ BOOL WINAPI StrRetToStrNAW(LPVOID dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) { + HRESULT res; + if(SHELL_OsIsUnicode()) - return StrRetToStrNW(dest, len, src, pidl); + res = StrRetToBufW(src, pidl, dest, len); else - return StrRetToStrNA(dest, len, src, pidl); + res = StrRetToBufA(src, pidl, dest, len); + + return res == S_OK || res == E_NOT_SUFFICIENT_BUFFER || src->uType > STRRET_CSTR; }
/************************* OLESTR functions ****************************/ diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c index 631601ad21a..e685ea78af5 100644 --- a/dlls/shell32/shlexec.c +++ b/dlls/shell32/shlexec.c @@ -287,7 +287,7 @@ static HRESULT SHELL_GetPathFromIDListForExecuteW(LPCITEMIDLIST pidl, LPWSTR psz hr = IShellFolder_GetDisplayNameOf(desktop, pidl, SHGDN_FORPARSING, &strret);
if (SUCCEEDED(hr)) - StrRetToStrNW(pszPath, uOutSize, &strret, pidl); + StrRetToBufW(&strret, pidl, pszPath, uOutSize);
IShellFolder_Release(desktop); } diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c index 1ff45e7139c..3acdcc198ad 100644 --- a/dlls/shell32/shlfolder.c +++ b/dlls/shell32/shlfolder.c @@ -345,7 +345,7 @@ HRESULT SHELL32_GetDisplayNameOfChild (IShellFolder2 * psf,
hr = IShellFolder2_GetDisplayNameOf (psfChild, pidlNext, dwFlags, &strTemp); if (SUCCEEDED (hr)) { - if(!StrRetToStrNW (szOut, dwOutLen, &strTemp, pidlNext)) + if(!StrRetToBufW (&strTemp, pidlNext, szOut, dwOutLen)) hr = E_FAIL; } IShellFolder2_Release (psfChild); diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index 9c699ecda08..a39d51dae2a 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -458,7 +458,7 @@ static void ShellView_InitList(IShellViewImpl *This)
lvColumn.fmt = sd.fmt; lvColumn.cx = MulDiv(sd.cxChar, tm.tmAveCharWidth * 3, 2); /* chars->pixel */ - StrRetToStrNW(nameW, ARRAY_SIZE(nameW), &sd.str, NULL); + StrRetToBufW(&sd.str, NULL, nameW, ARRAY_SIZE(nameW)); SendMessageW(This->hWndList, LVM_INSERTCOLUMNW, This->columns, (LPARAM)&lvColumn); }
@@ -1424,14 +1424,14 @@ static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpn
if (lpnmh->code == LVN_GETDISPINFOW) { - StrRetToStrNW( lpdi->item.pszText, lpdi->item.cchTextMax, &sd.str, NULL); + StrRetToBufW(&sd.str, NULL, lpdi->item.pszText, lpdi->item.cchTextMax); TRACE("-- text=%s\n", debugstr_w(lpdi->item.pszText)); } else { /* LVN_GETDISPINFOA - shouldn't happen */ NMLVDISPINFOA *lpdiA = (NMLVDISPINFOA *)lpnmh; - StrRetToStrNA( lpdiA->item.pszText, lpdiA->item.cchTextMax, &sd.str, NULL); + StrRetToBufA(&sd.str, NULL, lpdiA->item.pszText, lpdiA->item.cchTextMax); TRACE("-- text=%s\n", lpdiA->item.pszText); } } diff --git a/dlls/shell32/tests/string.c b/dlls/shell32/tests/string.c index a1202ead945..f06df25e384 100644 --- a/dlls/shell32/tests/string.c +++ b/dlls/shell32/tests/string.c @@ -82,14 +82,12 @@ static void test_StrRetToStringNW(void) strret.uType = 3; memset(buff, 0xff, sizeof(buff)); ret = pStrRetToStrNAW(buff, 0, &strret, NULL); - todo_wine ok(ret == TRUE && buff[0] == 0xffff, "Invalid STRRET type: dup failed, ret=%d\n", ret);
strret.uType = 3; memset(buff, 0xff, sizeof(buff)); ret = pStrRetToStrNAW(buff, ARRAY_SIZE(buff), &strret, NULL); - todo_wine ok(ret == TRUE && buff[0] == 0, "Invalid STRRET type: dup failed, ret=%d\n", ret);
From: Alex Henrie alexhenrie24@gmail.com
--- dlls/comdlg32/filedlg.c | 34 +----------------------------- dlls/comdlg32/filedlgbrowser.c | 38 +--------------------------------- 2 files changed, 2 insertions(+), 70 deletions(-)
diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c index 441f203fe7b..43066f02d83 100644 --- a/dlls/comdlg32/filedlg.c +++ b/dlls/comdlg32/filedlg.c @@ -3834,38 +3834,6 @@ ret: COMCTL32_ReleaseStgMedium(medium); }
- -/* copied from shell32 to avoid linking to it - * Although shell32 is already linked the behaviour of exported StrRetToStrN - * is dependent on whether emulated OS is unicode or not. - */ -static HRESULT COMDLG32_StrRetToStrNW (LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl) -{ - switch (src->uType) - { - case STRRET_WSTR: - lstrcpynW(dest, src->pOleStr, len); - CoTaskMemFree(src->pOleStr); - break; - - case STRRET_CSTR: - if (!MultiByteToWideChar( CP_ACP, 0, src->cStr, -1, dest, len ) && len) - dest[len-1] = 0; - break; - - case STRRET_OFFSET: - if (!MultiByteToWideChar( CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->uOffset, -1, dest, len ) && len) - dest[len-1] = 0; - break; - - default: - FIXME("unknown type %x!\n", src->uType); - if (len) *dest = '\0'; - return E_FAIL; - } - return S_OK; -} - /*********************************************************************** * FILEDLG95_FILENAME_GetFileNames * @@ -4005,7 +3973,7 @@ static HRESULT GetName(LPSHELLFOLDER lpsf, LPITEMIDLIST pidl,DWORD dwFlags,LPWST /* Get the display name of the pidl relative to the folder */ if (SUCCEEDED(hRes = IShellFolder_GetDisplayNameOf(lpsf, pidl, dwFlags, &str))) { - return COMDLG32_StrRetToStrNW(lpstrFileName, MAX_PATH, &str, pidl); + return StrRetToBufW(&str, pidl, lpstrFileName, MAX_PATH); } return E_FAIL; } diff --git a/dlls/comdlg32/filedlgbrowser.c b/dlls/comdlg32/filedlgbrowser.c index 14a9da91dc7..9c51e0d6056 100644 --- a/dlls/comdlg32/filedlgbrowser.c +++ b/dlls/comdlg32/filedlgbrowser.c @@ -145,42 +145,6 @@ static void COMDLG32_UpdateCurrentDir(const FileOpenDlgInfos *fodInfos) IShellFolder_Release(psfDesktop); }
-/* copied from shell32 to avoid linking to it */ -static BOOL COMDLG32_StrRetToStrNW (LPVOID dest, DWORD len, LPSTRRET src, LPCITEMIDLIST pidl) -{ - TRACE("dest=%p len=0x%lx strret=%p pidl=%p\n", dest , len, src, pidl); - - switch (src->uType) - { - case STRRET_WSTR: - lstrcpynW(dest, src->pOleStr, len); - CoTaskMemFree(src->pOleStr); - break; - - case STRRET_CSTR: - if (len && !MultiByteToWideChar( CP_ACP, 0, src->cStr, -1, dest, len )) - ((LPWSTR)dest)[len-1] = 0; - break; - - case STRRET_OFFSET: - if (pidl) - { - if (len && !MultiByteToWideChar( CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->uOffset, - -1, dest, len )) - ((LPWSTR)dest)[len-1] = 0; - } - break; - - default: - FIXME("unknown type!\n"); - if (len) - { *(LPWSTR)dest = '\0'; - } - return(FALSE); - } - return TRUE; -} - /* * IShellBrowser */ @@ -945,7 +909,7 @@ static HRESULT WINAPI IShellBrowserImpl_ICommDlgBrowser_IncludeObject(ICommDlgBr
if (SUCCEEDED(IShellFolder_GetDisplayNameOf(fodInfos->Shell.FOIShellFolder, pidl, SHGDN_INFOLDER | SHGDN_FORPARSING, &str))) { - if (COMDLG32_StrRetToStrNW(szPathW, MAX_PATH, &str, pidl)) + if (SUCCEEDED(StrRetToBufW(&str, pidl, szPathW, MAX_PATH))) { if (PathMatchSpecW(szPathW, fodInfos->ShellInfos.lpstrCurrentFilter)) return S_OK;
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=150966
Your paranoid android.
=== debian11 (32 bit report) ===
comdlg32: filedlg.c:880: Test failed: Expected 'C:\windows\system32', got '?L?i???L?L?iA' filedlg.c:881: Test failed: Expected 20, got 14 filedlg.c:880: Test failed: Expected 'C:\windows\system32', got '?k?i???k?k?iA' filedlg.c:881: Test failed: Expected 20, got 14 filedlg.c:995: Test failed: Expected to get C:\mru_test\test.txt, got C:\users\winetest\AppData\Local\Temp\wct\test.txt filedlg.c:1007: Test failed: Platform doesn't save MRU data
shell32: brsfolder.c:223: Test failed: Clicking "Make New Folder" button did not result in a new folder. brsfolder.c:229: Test failed: The new folder did not get the name foo brsfolder.c:236: Test failed: SHBrowseForFolder did not return the pidl for the new folder. Expected 'C:\users\winetest\AppData\Local\Temp\wct\test_click_make_new_folder_button\foo' got 'C:\users\winetest\Desktop' shfldr_special.c:335: Test failed: IShellFolder::GetDisplayNameOf failed with error 0x80004005 shfldr_special.c:340: Test failed: IShellFolder::GetDisplayNameOf failed with error 0x80004005 shfldr_special.c:348: Test failed: IShellFolder::GetDisplayNameOf failed with error 0x80004005 shfldr_special.c:353: Test failed: display name is not a GUID: L"\0098$\0458$0d04fe0-3aea-1069-a2d8-08002b30309d}\::{21ec2020-3aea-1069-a2dd-08002b30309d}" shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005
=== debian11b (64 bit WoW report) ===
comdlg32: filedlg.c:880: Test failed: Expected 'C:\windows\system32', got '?' filedlg.c:881: Test failed: Expected 20, got 2 filedlg.c:880: Test failed: Expected 'C:\windows\system32', got '?' filedlg.c:881: Test failed: Expected 20, got 2 filedlg.c:995: Test failed: Expected to get C:\mru_test\test.txt, got C:\users\winetest\AppData\Local\Temp\wct\test.txt filedlg.c:1007: Test failed: Platform doesn't save MRU data
mfmediaengine: mfmediaengine.c:2640: Test failed: Got unexpected refcount 1.
shell32: brsfolder.c:223: Test failed: Clicking "Make New Folder" button did not result in a new folder. brsfolder.c:229: Test failed: The new folder did not get the name foo brsfolder.c:236: Test failed: SHBrowseForFolder did not return the pidl for the new folder. Expected 'C:\users\winetest\AppData\Local\Temp\wct\test_click_make_new_folder_button\foo' got 'C:\users\winetest\Desktop' shfldr_special.c:335: Test failed: IShellFolder::GetDisplayNameOf failed with error 0x80004005 shfldr_special.c:340: Test failed: IShellFolder::GetDisplayNameOf failed with error 0x80004005 shfldr_special.c:348: Test failed: IShellFolder::GetDisplayNameOf failed with error 0x80004005 shfldr_special.c:352: Test failed: the display names are equal: L"\0108$" shfldr_special.c:353: Test failed: display name is not a GUID: L"\0108$" shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005 shlfolder.c:2663: Test failed: Got 0x80004005
user32: msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got hook 0x0009 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got hook 0x0005 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got winevent_hook 0x0003 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x030f instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x001c instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x0086 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x0006 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got hook 0x0009 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got winevent_hook 0x8005 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x0007 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x0008 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got winevent_hook 0x8005 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x0007 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 3: the msg 0x00f3 was expected, but got msg 0x0138 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 5: the winevent_hook 0x800a was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 6: the msg 0x0202 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 7: the msg 0x00f3 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 8: the msg 0x0138 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 9: the winevent_hook 0x800a was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 10: the msg 0x0087 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 11: the msg 0x00f1 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 12: the msg 0x0087 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 13: the msg 0x00f1 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 14: the msg 0x0138 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 15: the winevent_hook 0x800a was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 16: the msg 0x0087 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 17: the msg 0x00f1 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 18: the msg 0x0138 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 19: the winevent_hook 0x800a was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 20: the msg 0x0087 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 21: the winevent_hook 0x0009 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 22: the msg 0x0215 was expected, but got msg 0x0111 instead msg.c:7536: Test failed: BM_CLICK on auto-radio button: 23: in msg 0x0111 expecting wParam 0x1f6 got 0x601f6 msg.c:7536: Test failed: BM_CLICK on auto-radio button: 27: the msg sequence is not complete: expected msg 0000 - actual msg 00f3
Report validation errors: shell32:shelldispatch crashed (c0000005)