From: Katayama Hirofumi MZ Date: Mon, 17 Dec 2018 10:22:31 +0000 (+0900) Subject: [SHELL32] Add CDefView::DefMessageSFVCB (Retrial of #1145) (#1151) X-Git-Tag: 0.4.13-dev~989 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=5525c81b2f0663cfabff3773d8099c5f7cdcf3ab;ds=sidebyside [SHELL32] Add CDefView::DefMessageSFVCB (Retrial of #1145) (#1151) CORE-14976 --- diff --git a/dll/win32/shell32/CDefView.cpp b/dll/win32/shell32/CDefView.cpp index 640bb143ffc..b382dcd31f4 100644 --- a/dll/win32/shell32/CDefView.cpp +++ b/dll/win32/shell32/CDefView.cpp @@ -128,6 +128,7 @@ class CDefView : BOOL CreateList(); void UpdateListColors(); BOOL InitList(); + HRESULT DefMessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam); static INT CALLBACK ListViewCompareItems(LPARAM lParam1, LPARAM lParam2, LPARAM lpData); PCUITEMID_CHILD _PidlByItem(int i); @@ -3263,13 +3264,29 @@ HRESULT CDefView::_MergeToolbar() return S_OK; } +// The default processing of IShellFolderView callbacks +HRESULT CDefView::DefMessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + // TODO: SFVM_GET_CUSTOMVIEWINFO, SFVM_WINDOWCREATED + TRACE("CDefView::DefMessageSFVCB uMsg=%u\n", uMsg); + return E_NOTIMPL; +} + HRESULT CDefView::_DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam) { + HRESULT hr = E_NOTIMPL; + if (m_pShellFolderViewCB) { - return m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam); + hr = m_pShellFolderViewCB->MessageSFVCB(uMsg, wParam, lParam); } - return E_NOINTERFACE; + + if (hr == E_NOTIMPL) + { + hr = DefMessageSFVCB(uMsg, wParam, lParam); + } + + return hr; } HRESULT CDefView_CreateInstance(IShellFolder *pFolder, REFIID riid, LPVOID * ppvOut)