[SHELL32] CDefView: Query SFVM_DEFVIEWMODE before creating the list view.

CORE-14976
This commit is contained in:
Mark Jansen 2018-10-09 20:57:23 +02:00
parent 8c0c90112e
commit 80c53821c9
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B

View file

@ -114,7 +114,7 @@ class CDefView :
private: private:
HRESULT _MergeToolbar(); HRESULT _MergeToolbar();
BOOL _Sort(); BOOL _Sort();
VOID _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam); HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam);
public: public:
CDefView(); CDefView();
@ -520,7 +520,9 @@ void CDefView::SetStyle(DWORD dwAdd, DWORD dwRemove)
*/ */
BOOL CDefView::CreateList() BOOL CDefView::CreateList()
{ {
HRESULT hr;
DWORD dwStyle, dwExStyle; DWORD dwStyle, dwExStyle;
UINT ViewMode;
TRACE("%p\n", this); TRACE("%p\n", this);
@ -533,6 +535,16 @@ BOOL CDefView::CreateList()
else else
dwStyle |= LVS_ALIGNTOP | LVS_SHOWSELALWAYS; dwStyle |= LVS_ALIGNTOP | LVS_SHOWSELALWAYS;
ViewMode = m_FolderSettings.ViewMode;
hr = _DoFolderViewCB(SFVM_DEFVIEWMODE, NULL, (LPARAM)&ViewMode);
if (SUCCEEDED(hr))
{
if (ViewMode >= FVM_FIRST && ViewMode <= FVM_LAST)
m_FolderSettings.ViewMode = ViewMode;
else
ERR("Ignoring invalid ViewMode from SFVM_DEFVIEWMODE: %u (was: %u)\n", ViewMode, m_FolderSettings.ViewMode);
}
switch (m_FolderSettings.ViewMode) switch (m_FolderSettings.ViewMode)
{ {
case FVM_ICON: case FVM_ICON:
@ -3245,12 +3257,13 @@ HRESULT CDefView::_MergeToolbar()
return S_OK; return S_OK;
} }
VOID CDefView::_DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam) HRESULT CDefView::_DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
if (m_pShellFolderViewCB) if (m_pShellFolderViewCB)
{ {
m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam); return m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam);
} }
return E_NOINTERFACE;
} }
HRESULT CDefView_CreateInstance(IShellFolder *pFolder, REFIID riid, LPVOID * ppvOut) HRESULT CDefView_CreateInstance(IShellFolder *pFolder, REFIID riid, LPVOID * ppvOut)