[SHELL32]

- attempt to resolve an widechar/multibyte mismatch in the applet name
- fixes opening the mouse applet if the translated name contains a non ASCII character

svn path=/trunk/; revision=63237
This commit is contained in:
Kamil Hornicek 2014-05-11 18:43:51 +00:00
parent ad9936c218
commit 5c08d6b6c5

View file

@ -852,9 +852,14 @@ HRESULT WINAPI CControlPanelFolder::ExecuteFromIdList(LPCITEMIDLIST pidl)
}
/* Build control panel applet cmd
Note: we passes applet name to Control_RunDLL to distinguish between applets in one .cpl file */
Note: we pass the applet name to Control_RunDLL to distinguish between multiple applets in one .cpl file */
WCHAR wszCmd[2*MAX_PATH];
StringCbPrintfW(wszCmd, sizeof(wszCmd), L"rundll32 shell32.dll,Control_RunDLL \"%hs\",\"%hs\"", pCPanel->szName, pCPanel->szName + pCPanel->offsDispName);
WCHAR wszAppletName[MAX_PATH];
if(!MultiByteToWideChar(CP_ACP, 0, pCPanel->szName + pCPanel->offsDispName, -1, wszAppletName, MAX_PATH))
return E_FAIL;
StringCbPrintfW(wszCmd, sizeof(wszCmd), L"rundll32 shell32.dll,Control_RunDLL \"%hs\",\"%ls\"", pCPanel->szName, wszAppletName);
/* Start the applet */
TRACE("Run cpl %ls\n", wszCmd);