hr = SHGetSpecialFolderLocation(NULL, CSIDL_FAVORITES, &pidlUserFavorites);
if (FAILED(hr))
+ {
+ WARN("Failed to get the USER favorites folder. Trying to run with just the COMMON one.\n");
+
+ hr = SHGetSpecialFolderLocation(NULL, CSIDL_COMMON_FAVORITES, &pidlCommonFavorites);
+ if (FAILED_UNEXPECTEDLY(hr))
+ return hr;
+
+ TRACE("COMMON favorites obtained.\n");
+ *ppidl = pidlCommonFavorites;
+ hr = BindToDesktop(pidlCommonFavorites, ppsfFavorites);
return hr;
+ }
- if (FAILED(SHGetSpecialFolderLocation(NULL, CSIDL_COMMON_FAVORITES, &pidlCommonFavorites)))
+ hr = SHGetSpecialFolderLocation(NULL, CSIDL_COMMON_FAVORITES, &pidlCommonFavorites);
+ if (FAILED_UNEXPECTEDLY(hr))
{
+ WARN("Failed to get the COMMON favorites folder. Will use only the USER contents.\n");
+ *ppidl = pidlCommonFavorites;
hr = BindToDesktop(pidlUserFavorites, ppsfFavorites);
- *ppidl = pidlUserFavorites;
return hr;
}
+ TRACE("Both COMMON and USER favorites folders obtained, merging them...\n");
+
hr = BindToDesktop(pidlUserFavorites, &psfUserFavorites);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
case SMC_GETSFOBJECT:
break;
case SMC_SFEXEC:
+ SHInvokeDefaultCommand(psmd->hwnd, psmd->psf, psmd->pidlItem);
break;
case SMC_SFSELECTITEM:
break;
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,