SFV_CREATE sfvparams = {};
sfvparams.cbSize = sizeof(SFV_CREATE);
sfvparams.pshf = this;
+ sfvparams.psfvcb = this;
return SHCreateShellFolderView(&sfvparams, (IShellView **) ppvOut);
}
return E_NOINTERFACE;
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)
{
public CComCoClass<CFindFolder, &CLSID_FindFolder>,
public CComObjectRootEx<CComMultiThreadModelNoCS>,
public IShellFolder2,
+ public IShellFolderViewCB,
public IPersistFolder2
{
// *** IShellFolder2 methods ***
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;
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)