From 9c29004090defb2ba098f341fe87586ad01a77c8 Mon Sep 17 00:00:00 2001 From: Brock Mammen Date: Fri, 19 Jul 2019 19:15:38 -0500 Subject: [PATCH] [SHELLFIND] Set default folder view mode to details --- dll/win32/browseui/shellfind/CFindFolder.cpp | 17 +++++++++++++++++ dll/win32/browseui/shellfind/CFindFolder.h | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/dll/win32/browseui/shellfind/CFindFolder.cpp b/dll/win32/browseui/shellfind/CFindFolder.cpp index ac88c44e1a2..f9c1c957167 100644 --- a/dll/win32/browseui/shellfind/CFindFolder.cpp +++ b/dll/win32/browseui/shellfind/CFindFolder.cpp @@ -119,6 +119,7 @@ STDMETHODIMP CFindFolder::CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID * SFV_CREATE sfvparams = {}; sfvparams.cbSize = sizeof(SFV_CREATE); sfvparams.pshf = this; + sfvparams.psfvcb = this; return SHCreateShellFolderView(&sfvparams, (IShellView **) ppvOut); } return E_NOINTERFACE; @@ -146,6 +147,22 @@ STDMETHODIMP CFindFolder::SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLE UNIMPLEMENTED; return E_NOTIMPL; } + +//// *** IShellFolderViewCB method *** +STDMETHODIMP CFindFolder::MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch (uMsg) + { + case SFVM_DEFVIEWMODE: + { + FOLDERVIEWMODE *pViewMode = (FOLDERVIEWMODE *) lParam; + *pViewMode = FVM_DETAILS; + return S_OK; + } + } + return E_NOTIMPL; +} + //// *** IPersistFolder2 methods *** STDMETHODIMP CFindFolder::GetCurFolder(LPITEMIDLIST *pidl) { diff --git a/dll/win32/browseui/shellfind/CFindFolder.h b/dll/win32/browseui/shellfind/CFindFolder.h index 189e6d931ca..34f6165acdf 100644 --- a/dll/win32/browseui/shellfind/CFindFolder.h +++ b/dll/win32/browseui/shellfind/CFindFolder.h @@ -9,6 +9,7 @@ class CFindFolder : public CComCoClass, public CComObjectRootEx, public IShellFolder2, + public IShellFolderViewCB, public IPersistFolder2 { // *** IShellFolder2 methods *** @@ -51,6 +52,9 @@ class CFindFolder : STDMETHODIMP SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut); + //// *** IShellFolderViewCB methods *** + STDMETHODIMP MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam); + private: LPITEMIDLIST m_pidl; CComPtr m_pisfInner; @@ -76,6 +80,7 @@ public: BEGIN_COM_MAP(CFindFolder) COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2) COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder) + COM_INTERFACE_ENTRY_IID(IID_IShellFolderViewCB, IShellFolderViewCB) COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2) COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder) COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)