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)
{
case SFVM_WINDOWCREATED:
{
SubclassWindow((HWND) wParam);
- return S_OK;
+
+ CComPtr<IServiceProvider> 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;
#include "shellfind.h"
#define SWM_ADD_ITEM (WM_USER + 0)
+#define SWM_UPDATE_STATUS (WM_USER + 1)
class CFindFolder :
public CWindowImpl<CFindFolder>,
LPITEMIDLIST m_pidl;
CComPtr<IShellFolder2> m_pisfInner;
CComPtr<IShellFolderView> m_shellFolderView;
+ CComPtr<IShellBrowser> m_shellBrowser;
//// *** IPersistFolder2 methods ***
STDMETHODIMP GetCurFolder(LPITEMIDLIST *pidl);
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)
BEGIN_MSG_MAP(CFindFolder)
MESSAGE_HANDLER(SWM_ADD_ITEM, AddItem)
+ MESSAGE_HANDLER(SWM_UPDATE_STATUS, UpdateStatus)
END_MSG_MAP()
BEGIN_COM_MAP(CFindFolder)