mirror of
https://github.com/reactos/reactos.git
synced 2025-06-20 07:36:05 +00:00
[RSHELL]
* Some menu style improvements. * Some code style improvements. * Added a skeleton CMergedFolder, as a base towards showing items from both the user and the common start menus. It does not work yet. CORE-7586 svn path=/branches/shell-experiments/; revision=62330
This commit is contained in:
parent
53f74feb2d
commit
58931088c3
10 changed files with 510 additions and 10 deletions
|
@ -284,11 +284,17 @@ CStartMenu_Constructor(REFIID riid, void **ppv)
|
|||
IShellMenu* pShellMenu;
|
||||
IBandSite* pBandSite;
|
||||
IDeskBar* pDeskBar;
|
||||
LPITEMIDLIST pidlStartMenu;
|
||||
|
||||
HRESULT hr;
|
||||
IShellFolder *shellFolder;
|
||||
IShellFolder *psfStartMenu;
|
||||
|
||||
LPITEMIDLIST pidlStartMenuUser;
|
||||
IShellFolder *psfStartMenuUser;
|
||||
|
||||
#if MERGE_FOLDERS
|
||||
LPITEMIDLIST pidlStartMenuAll;
|
||||
IShellFolder *psfStartMenuAll;
|
||||
#endif
|
||||
|
||||
#if USE_SYSTEM_MENUBAND
|
||||
hr = CoCreateInstance(CLSID_MenuBand,
|
||||
|
@ -349,14 +355,31 @@ CStartMenu_Constructor(REFIID riid, void **ppv)
|
|||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
hr = SHGetDesktopFolder(&shellFolder);
|
||||
|
||||
/* FIXME: Use CLSID_MergedFolder class and IID_IAugmentedShellFolder2 interface here */
|
||||
/* CLSID_MergedFolder 26fdc864-be88-46e7-9235-032d8ea5162e */
|
||||
/* IID_IAugmentedShellFolder2 8db3b3f4-6cfe-11d1-8ae9-00c04fd918d0 */
|
||||
hr = SHGetFolderLocation(NULL, CSIDL_STARTMENU, 0, 0, &pidlStartMenu);
|
||||
hr = SHGetDesktopFolder(&shellFolder);
|
||||
hr = shellFolder->BindToObject(pidlStartMenu, NULL, IID_IShellFolder, (void**) &psfStartMenu);
|
||||
hr = SHGetFolderLocation(NULL, CSIDL_STARTMENU, 0, 0, &pidlStartMenuUser);
|
||||
hr = shellFolder->BindToObject(pidlStartMenuUser, NULL, IID_IShellFolder, (void**) &psfStartMenuUser);
|
||||
|
||||
hr = pShellMenu->SetShellFolder(psfStartMenu, NULL, NULL, 0);
|
||||
#if MERGE_FOLDERS
|
||||
hr = SHGetFolderLocation(NULL, CSIDL_COMMON_STARTMENU, 0, 0, &pidlStartMenuAll);
|
||||
hr = shellFolder->BindToObject(pidlStartMenuAll, NULL, IID_IShellFolder, (void**) &psfStartMenuAll);
|
||||
|
||||
IShellFolder * psfMerged;
|
||||
hr = CMergedFolder_Constructor(psfStartMenuUser, psfStartMenuAll, IID_PPV_ARG(IShellFolder, &psfMerged));
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
hr = pShellMenu->SetShellFolder(psfMerged, NULL, NULL, 0);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
#else
|
||||
hr = pShellMenu->SetShellFolder(psfStartMenuUser, NULL, NULL, 0);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
#endif
|
||||
|
||||
hr = pDeskBar->SetClient(pBandSite);
|
||||
if (FAILED(hr))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue