diff --git a/base/shell/filebrowser/filebrowser.c b/base/shell/filebrowser/filebrowser.c index ebede29c312..a3d5dc2933d 100644 --- a/base/shell/filebrowser/filebrowser.c +++ b/base/shell/filebrowser/filebrowser.c @@ -37,7 +37,8 @@ int _tmain(int argc, _TCHAR* argv[]) SHOpenNewFrame((LPITEMIDLIST)pidlDrives, NULL, 0, 0); } - Sleep(3000); + /* FIXME: we should wait a bit here and see if a window was created. If not we should exit this process */ + ExitThread(0); return 0; } diff --git a/base/shell/rshell/CDesktopBrowser.cpp b/base/shell/rshell/CDesktopBrowser.cpp index 8bf2bdbdb5c..e43e61779d0 100644 --- a/base/shell/rshell/CDesktopBrowser.cpp +++ b/base/shell/rshell/CDesktopBrowser.cpp @@ -269,19 +269,9 @@ typedef HRESULT (WINAPI *SH_OPEN_NEW_FRAME)(LPITEMIDLIST pidl, IUnknown *paramC, HRESULT STDMETHODCALLTYPE CDesktopBrowser::BrowseObject(LPCITEMIDLIST pidl, UINT wFlags) { - /* - * We should use IShellWindows interface here in order to attempt to - * find an open shell window that shows the requested pidl and activate it - */ + /* FIXME: Implement executing filebrowser.exe and somehow pass the pidl to it */ -#if 0 - HMODULE hBrowseui = LoadLibraryW(L"browseui.dll"); - if (hBrowseui) - { - SH_OPEN_NEW_FRAME SHOpenNewFrame = (SH_OPEN_NEW_FRAME)GetProcAddress(hBrowseui, (LPCSTR)103); - return SHOpenNewFrame((LPITEMIDLIST)pidl, NULL, 0, 0); - } -#endif + /* Returning failure here will make windows 7 and 8 to use the default file browser */ return E_FAIL; } diff --git a/base/shell/rshell/CStartMenu.cpp b/base/shell/rshell/CStartMenu.cpp index fe97909b362..54a461889af 100644 --- a/base/shell/rshell/CStartMenu.cpp +++ b/base/shell/rshell/CStartMenu.cpp @@ -300,6 +300,9 @@ CStartMenu_Constructor( if (FAILED(hr)) return NULL; + /* 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);