From 04fcbe3202e0a1166285dfb5396b21ac28ab8cdf Mon Sep 17 00:00:00 2001 From: Brock Mammen Date: Sat, 20 Jul 2019 10:11:54 -0500 Subject: [PATCH] [SHELLFIND] Message handler for updating status bar text --- dll/win32/browseui/shellfind/CFindFolder.cpp | 21 +++++++++++++++++++- dll/win32/browseui/shellfind/CFindFolder.h | 5 +++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/dll/win32/browseui/shellfind/CFindFolder.cpp b/dll/win32/browseui/shellfind/CFindFolder.cpp index 934abec37f8..cfb47cfa7b1 100644 --- a/dll/win32/browseui/shellfind/CFindFolder.cpp +++ b/dll/win32/browseui/shellfind/CFindFolder.cpp @@ -111,6 +111,18 @@ LRESULT CFindFolder::AddItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHan return hr; } +LRESULT CFindFolder::UpdateStatus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) +{ + LPWSTR status = (LPWSTR) lParam; + if (m_shellBrowser) + { + m_shellBrowser->SetStatusTextSB(status); + } + LocalFree(status); + + return S_OK; +} + // *** IShellFolder2 methods *** STDMETHODIMP CFindFolder::GetDefaultSearchGUID(GUID *pguid) { @@ -319,7 +331,14 @@ STDMETHODIMP CFindFolder::MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) case SFVM_WINDOWCREATED: { SubclassWindow((HWND) wParam); - return S_OK; + + CComPtr pServiceProvider; + HRESULT hr = m_shellFolderView->QueryInterface(IID_PPV_ARG(IServiceProvider, &pServiceProvider)); + if (FAILED_UNEXPECTEDLY(hr)) + { + return hr; + } + return pServiceProvider->QueryService(SID_SShellBrowser, IID_PPV_ARG(IShellBrowser, &m_shellBrowser)); } } return E_NOTIMPL; diff --git a/dll/win32/browseui/shellfind/CFindFolder.h b/dll/win32/browseui/shellfind/CFindFolder.h index 5c95ae6b011..236d353bc4d 100644 --- a/dll/win32/browseui/shellfind/CFindFolder.h +++ b/dll/win32/browseui/shellfind/CFindFolder.h @@ -3,6 +3,7 @@ #include "shellfind.h" #define SWM_ADD_ITEM (WM_USER + 0) +#define SWM_UPDATE_STATUS (WM_USER + 1) class CFindFolder : public CWindowImpl, @@ -64,6 +65,7 @@ private: LPITEMIDLIST m_pidl; CComPtr m_pisfInner; CComPtr m_shellFolderView; + CComPtr m_shellBrowser; //// *** IPersistFolder2 methods *** STDMETHODIMP GetCurFolder(LPITEMIDLIST *pidl); @@ -78,6 +80,8 @@ private: LRESULT AddItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); + LRESULT UpdateStatus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled); + public: DECLARE_REGISTRY_RESOURCEID(IDR_FINDFOLDER) @@ -87,6 +91,7 @@ public: BEGIN_MSG_MAP(CFindFolder) MESSAGE_HANDLER(SWM_ADD_ITEM, AddItem) + MESSAGE_HANDLER(SWM_UPDATE_STATUS, UpdateStatus) END_MSG_MAP() BEGIN_COM_MAP(CFindFolder) -- 2.17.1