CShellBrowser();
~CShellBrowser();
- HRESULT Initialize(LPITEMIDLIST pidl, DWORD dwFlags);
+ HRESULT Initialize();
public:
HRESULT BrowseToPIDL(LPCITEMIDLIST pidl, long flags);
HRESULT BrowseToPath(IShellFolder *newShellFolder, LPCITEMIDLIST absolutePIDL,
DSA_Destroy(menuDsa);
}
-HRESULT CShellBrowser::Initialize(LPITEMIDLIST pidl, DWORD dwFlags)
+HRESULT CShellBrowser::Initialize()
{
CComPtr<IPersistStreamInit> persistStreamInit;
HRESULT hResult;
fStatusBarVisible = true;
- // browse
- hResult = BrowseToPIDL(pidl, BTP_UPDATE_NEXT_HISTORY);
- if (FAILED_UNEXPECTEDLY(hResult))
- return hResult;
-
- if ((dwFlags & SBSP_EXPLOREMODE) != NULL)
- ShowBand(CLSID_ExplorerBand, true);
-
ShowWindow(SW_SHOWNORMAL);
+ UpdateWindow();
return S_OK;
}
saveCurrentShellView->DestroyViewWindow();
fCurrentShellViewWindow = newShellViewWindow;
+ if (previousView == NULL)
+ {
+ RepositionBars();
+ }
+
// no use
saveCurrentShellView.Release();
saveCurrentShellFolder.Release();
#endif
// show sheet
+ CStringW strFolderOptions(MAKEINTRESOURCEW(IDS_FOLDER_OPTIONS));
m_PropSheet.dwSize = sizeof(PROPSHEETHEADER);
m_PropSheet.dwFlags = 0;
m_PropSheet.hwndParent = m_hWnd;
m_PropSheet.hInstance = _AtlBaseModule.GetResourceInstance();
- m_PropSheet.pszCaption = _T("Folder Options");
+ m_PropSheet.pszCaption = strFolderOptions;
m_PropSheet.nStartPage = 0;
PropertySheet(&m_PropSheet);
return S_OK;
memset(&fCurrentVertBar, 0, sizeof(fCurrentVertBar));
FireCommandStateChangeAll();
}
+ else
+ {
+ OnSearch();
+ }
return S_OK;
case 0x1d: //Toggle History
case 0x1e: //Toggle Favorites
break;
}
}
- else if (IsEqualIID(*pguidCmdGroup, CLSID_CommonButtons))
- {
- // Windows seems to use this as proxy for toolbar buttons.
- // We use it for search band for now to remove code duplication,
- // let's see if it could be useful in the future.
- switch (nCmdID)
- {
- case 0x123:
- // Show search band from toolbar
- OnSearch();
- return S_OK;
- }
- return E_NOTIMPL;
- }
else
{
return E_NOTIMPL;
if ((wFlags & SBSP_EXPLOREMODE) != NULL)
ShowBand(CLSID_ExplorerBand, true);
- return BrowseToPIDL(pidl, BTP_UPDATE_CUR_HISTORY | BTP_UPDATE_NEXT_HISTORY);
+ long flags = BTP_UPDATE_NEXT_HISTORY;
+ if (fTravelLog)
+ flags |= BTP_UPDATE_CUR_HISTORY;
+ return BrowseToPIDL(pidl, flags);
}
HRESULT STDMETHODCALLTYPE CShellBrowser::GetViewStateStream(DWORD grfMode, IStream **ppStrm)
return 0;
}
-HRESULT CShellBrowser_CreateInstance(LPITEMIDLIST pidl, DWORD dwFlags, REFIID riid, void **ppv)
+HRESULT CShellBrowser_CreateInstance(REFIID riid, void **ppv)
{
- return ShellObjectCreatorInit<CShellBrowser>(pidl, dwFlags, riid, ppv);
+ return ShellObjectCreatorInit<CShellBrowser>(riid, ppv);
}