Author: dquintana Date: Tue Oct 7 14:45:32 2014 New Revision: 64579
URL: http://svn.reactos.org/svn/reactos?rev=64579&view=rev Log: [RSHELL] * Work around shellexecute not handling GUID path components by giving them to explorer as a cmdline parameter. * NOTE: The Printers and Faxes option is temporarily disabled because it CRASHES explorer-new.
Modified: branches/shell-experiments/base/shell/rshell/CStartMenu.cpp
Modified: branches/shell-experiments/base/shell/rshell/CStartMenu.cpp URL: http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rsh... ============================================================================== --- branches/shell-experiments/base/shell/rshell/CStartMenu.cpp [iso-8859-1] (original) +++ branches/shell-experiments/base/shell/rshell/CStartMenu.cpp [iso-8859-1] Tue Oct 7 14:45:32 2014 @@ -221,12 +221,21 @@
HRESULT OnExec(LPSMDATA psmd) { + // H H A CCC K K ! ! ! + // H H A A C C K K ! ! ! + // HHHHH AAAAA C KKK ! ! ! + // H H A A C C K K ! ! ! + // H H A A CCC K K . . . + // + // HACK: Instead of running explorer.exe with the path, we should be using ShellExecute to "open" the path directly! + // Remove once ShellExecute can handle CLSID path components. + if (psmd->uId == IDM_CONTROLPANEL) - ShellExecuteW(NULL, L"open", L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}", NULL, NULL, 1); + ShellExecuteW(NULL, NULL, L"explorer.exe", L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}", NULL, SW_SHOWNORMAL); else if (psmd->uId == IDM_NETWORKCONNECTIONS) - ShellExecuteW(NULL, L"open", L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}", NULL, NULL, 1); + ShellExecuteW(NULL, NULL, L"explorer.exe", L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}", NULL, SW_SHOWNORMAL); else if (psmd->uId == IDM_PRINTERSANDFAXES) - ShellExecuteW(NULL, L"open", L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}", NULL, NULL, 1); + {}/* FIXME: crashes: ShellExecuteW(NULL, NULL, L"explorer.exe", L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}", NULL, SW_SHOWNORMAL);*/ else PostMessageW(m_hwndTray, WM_COMMAND, psmd->uId, 0);