mirror of
https://github.com/reactos/reactos.git
synced 2025-04-27 17:10:22 +00:00
Fix double-clicking control panel items
svn path=/trunk/; revision=17752
This commit is contained in:
parent
67720419df
commit
8da043e4f2
2 changed files with 8 additions and 5 deletions
|
@ -970,6 +970,7 @@ static HRESULT WINAPI IShellExecuteHookW_fnExecute(IShellExecuteHookW* iface, LP
|
||||||
SHELLEXECUTEINFOW sei_tmp;
|
SHELLEXECUTEINFOW sei_tmp;
|
||||||
PIDLCPanelStruct* pcpanel;
|
PIDLCPanelStruct* pcpanel;
|
||||||
WCHAR path[MAX_PATH];
|
WCHAR path[MAX_PATH];
|
||||||
|
WCHAR params[MAX_PATH];
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
int l;
|
int l;
|
||||||
|
|
||||||
|
@ -990,12 +991,13 @@ static HRESULT WINAPI IShellExecuteHookW_fnExecute(IShellExecuteHookW* iface, LP
|
||||||
|
|
||||||
/* pass applet name to Control_RunDLL to distinguish between applets in one .cpl file */
|
/* pass applet name to Control_RunDLL to distinguish between applets in one .cpl file */
|
||||||
path[l++] = '"';
|
path[l++] = '"';
|
||||||
path[l++] = ' ';
|
path[l] = '\0';
|
||||||
|
|
||||||
MultiByteToWideChar(CP_ACP, 0, pcpanel->szName+pcpanel->offsDispName, -1, path+l, MAX_PATH);
|
MultiByteToWideChar(CP_ACP, 0, pcpanel->szName+pcpanel->offsDispName, -1, params, MAX_PATH);
|
||||||
|
|
||||||
memcpy(&sei_tmp, psei, sizeof(sei_tmp));
|
memcpy(&sei_tmp, psei, sizeof(sei_tmp));
|
||||||
sei_tmp.lpFile = path;
|
sei_tmp.lpFile = path;
|
||||||
|
sei_tmp.lpParameters = params;
|
||||||
sei_tmp.fMask &= ~SEE_MASK_INVOKEIDLIST;
|
sei_tmp.fMask &= ~SEE_MASK_INVOKEIDLIST;
|
||||||
sei_tmp.lpVerb = wCplopen;
|
sei_tmp.lpVerb = wCplopen;
|
||||||
|
|
||||||
|
|
|
@ -1263,9 +1263,10 @@ BOOL WINAPI ShellExecuteExW32 (LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfun
|
||||||
|
|
||||||
lpFile = wfileName;
|
lpFile = wfileName;
|
||||||
|
|
||||||
|
strcpyW(wcmd, wszApplicationName);
|
||||||
if (sei_tmp.lpParameters[0]) {
|
if (sei_tmp.lpParameters[0]) {
|
||||||
strcatW(wszApplicationName, wSpace);
|
strcatW(wcmd, wSpace);
|
||||||
strcatW(wszApplicationName, wszParameters);
|
strcatW(wcmd, wszParameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We set the default to open, and that should generally work.
|
/* We set the default to open, and that should generally work.
|
||||||
|
@ -1273,7 +1274,7 @@ BOOL WINAPI ShellExecuteExW32 (LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfun
|
||||||
if (!sei_tmp.lpVerb)
|
if (!sei_tmp.lpVerb)
|
||||||
sei_tmp.lpVerb = wszOpen;
|
sei_tmp.lpVerb = wszOpen;
|
||||||
|
|
||||||
retval = execfunc(wszApplicationName, NULL, FALSE, &sei_tmp, sei);
|
retval = execfunc(wcmd, NULL, FALSE, &sei_tmp, sei);
|
||||||
if (retval > 32)
|
if (retval > 32)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue