Author: khornicek Date: Sun May 11 18:43:51 2014 New Revision: 63237
URL: http://svn.reactos.org/svn/reactos?rev=63237&view=rev Log: [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
Modified: trunk/reactos/dll/win32/shell32/folders/cpanel.cpp
Modified: trunk/reactos/dll/win32/shell32/folders/cpanel.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/c... ============================================================================== --- trunk/reactos/dll/win32/shell32/folders/cpanel.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/cpanel.cpp [iso-8859-1] Sun May 11 18:43:51 2014 @@ -852,9 +852,14 @@ }
/* 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);