[SHELLFIND] Set default folder view mode to details
authorBrock Mammen <brockmammen@gmail.com>
Sat, 20 Jul 2019 00:15:38 +0000 (19:15 -0500)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Sun, 15 Sep 2019 16:46:36 +0000 (19:46 +0300)
dll/win32/browseui/shellfind/CFindFolder.cpp
dll/win32/browseui/shellfind/CFindFolder.h

index ac88c44..f9c1c95 100644 (file)
@@ -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)
 {
index 189e6d9..34f6165 100644 (file)
@@ -9,6 +9,7 @@ class CFindFolder :
         public CComCoClass<CFindFolder, &CLSID_FindFolder>,
         public CComObjectRootEx<CComMultiThreadModelNoCS>,
         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<IShellFolder2> 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)