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/…
==============================================================================
--- 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);