[SHELLFIND] Open search results folder with search button

This commit is contained in:
Brock Mammen 2019-07-18 21:28:11 -05:00 committed by Giannis Adamopoulos
parent 4212f4b175
commit 7544656b85
2 changed files with 24 additions and 0 deletions

View file

@ -112,6 +112,28 @@ LRESULT CSearchBar::OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bH
return TRUE;
}
LRESULT CSearchBar::OnSearchButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
CComPtr<IShellBrowser> pShellBrowser;
HRESULT hr = IUnknown_QueryService(pSite, SID_SShellBrowser, IID_PPV_ARG(IShellBrowser, &pShellBrowser));
if (FAILED_UNEXPECTEDLY(hr))
return hr;
WCHAR szShellGuid[MAX_PATH];
const WCHAR shellGuidPrefix[] = L"shell:::";
memcpy(szShellGuid, shellGuidPrefix, sizeof(shellGuidPrefix));
hr = StringFromGUID2(CLSID_FindFolder, szShellGuid + _countof(shellGuidPrefix) - 1, _countof(szShellGuid) - _countof(shellGuidPrefix));
if (FAILED_UNEXPECTEDLY(hr))
return hr;
LPITEMIDLIST findFolderPidl;
hr = SHParseDisplayName(szShellGuid, NULL, &findFolderPidl, 0, NULL);
if (FAILED_UNEXPECTEDLY(hr))
return hr;
return pShellBrowser->BrowseObject(findFolderPidl, 0);
}
// *** IOleWindow methods ***
HRESULT STDMETHODCALLTYPE CSearchBar::GetWindow(HWND *lphwnd)

View file

@ -47,6 +47,7 @@ private:
// *** ATL event handlers ***
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
LRESULT OnSearchButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
public:
CSearchBar();
@ -134,5 +135,6 @@ public:
BEGIN_MSG_MAP(CSearchBar)
MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
COMMAND_CODE_HANDLER(BN_CLICKED, OnSearchButtonClicked)
END_MSG_MAP()
};