hResult = newMenu->SetShellFolder(favoritesFolder, favoritesPIDL, orderRegKey, SMSET_BOTTOM | SMINIT_CACHED | SMINV_ID);
if (favoritesPIDL)
ILFree(favoritesPIDL);
- if (SUCCEEDED(hResult))
- fFavoritesMenu.Attach(newMenu.Detach());
+
+ if (FAILED(hResult))
+ return hResult;
+
+ fFavoritesMenu = newMenu;
}
- if (fFavoritesMenu.p == NULL)
- return E_FAIL;
+
return fFavoritesMenu->QueryInterface(riid, ppvObject);
}
case SMC_GETSFOBJECT:
break;
case SMC_SFEXEC:
+ SHInvokeDefaultCommand(psmd->hwnd, psmd->psf, psmd->pidlItem);
break;
case SMC_SFSELECTITEM:
break;
case 49:
break;
case 0x10000000:
- break;
+ return S_OK;
}
return S_FALSE;
}
}
#endif
- menubar->AddRef();
-
if (FAILED_UNEXPECTEDLY(hResult))
{
hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
prgCmds->cmdf = OLECMDF_SUPPORTED;
break;
case ITID_TOOLBARBANDSHOWN: // toolbar visibility
- prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
+ prgCmds->cmdf = OLECMDF_SUPPORTED;
+ if (fControlsBar)
+ prgCmds->cmdf |= OLECMDF_LATCHED;
break;
case ITID_ADDRESSBANDSHOWN: // address bar visibility
- prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
+ prgCmds->cmdf = OLECMDF_SUPPORTED;
+ if (fNavigationBar)
+ prgCmds->cmdf |= OLECMDF_LATCHED;
break;
case ITID_LINKSBANDSHOWN: // links bar visibility
prgCmds->cmdf = 0;
break;
case ITID_MENUBANDSHOWN: // Menubar band visibility
- prgCmds->cmdf = 0;
+ prgCmds->cmdf = OLECMDF_SUPPORTED;
+ if (fMenuBar)
+ prgCmds->cmdf |= OLECMDF_LATCHED;
break;
case ITID_AUTOHIDEENABLED: // Auto hide enabled/disabled
prgCmds->cmdf = 0;
break;
case ITID_CUSTOMIZEENABLED: // customize enabled
- prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
+ prgCmds->cmdf = OLECMDF_SUPPORTED;
break;
case ITID_TOOLBARLOCKED: // lock toolbars
prgCmds->cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED;
default:
break;
}
-
- MENUITEMINFO mii;
- mii.cbSize = sizeof(mii);
- mii.fMask = MIIM_STATE;
- mii.fState = fLocked ? MFS_CHECKED : MFS_UNCHECKED;
- SetMenuItemInfo(contextMenu, IDM_TOOLBARS_LOCKTOOLBARS, FALSE, &mii);
+
+ // TODO: Implement show/hide toolbars
+ SHEnableMenuItem(contextMenu, IDM_TOOLBARS_STANDARDBUTTONS, FALSE);
+ SHEnableMenuItem(contextMenu, IDM_TOOLBARS_ADDRESSBAR, FALSE);
+ SHEnableMenuItem(contextMenu, IDM_TOOLBARS_LINKSBAR, FALSE);
+ SHEnableMenuItem(contextMenu, IDM_TOOLBARS_CUSTOMIZE, FALSE);
+
+ SHCheckMenuItem(contextMenu, IDM_TOOLBARS_STANDARDBUTTONS, fControlsBar != NULL);
+ SHCheckMenuItem(contextMenu, IDM_TOOLBARS_ADDRESSBAR, fNavigationBar != NULL);
+ SHCheckMenuItem(contextMenu, IDM_TOOLBARS_LINKSBAR, FALSE);
+ SHCheckMenuItem(contextMenu, IDM_TOOLBARS_CUSTOMIZE, FALSE);
+ SHCheckMenuItem(contextMenu, IDM_TOOLBARS_LOCKTOOLBARS, fLocked);
// TODO: use GetSystemMetrics(SM_MENUDROPALIGNMENT) to determine menu alignment
command = TrackPopupMenu(contextMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,