* 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.

svn path=/branches/shell-experiments/; revision=64579
This commit is contained in:
David Quintana 2014-10-07 14:45:32 +00:00
parent d9f777ce1c
commit 1147974a95

View file

@ -221,12 +221,21 @@ private:
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);