Index: dll/win32/shell32/shellord.cpp =================================================================== --- dll/win32/shell32/shellord.cpp (revision 60677) +++ dll/win32/shell32/shellord.cpp (working copy) @@ -1914,25 +1914,24 @@ */ HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv) { - HRESULT ret = S_OK; + IShellView * psf; + HRESULT hRes; - FIXME("SHCreateShellFolderView() stub\n"); + TRACE("sf=%p outer=%p callback=%p\n", + pcsfv->pshf, pcsfv->psvOuter, pcsfv->psfvcb); - if (!pcsfv || sizeof(*pcsfv) != pcsfv->cbSize) - ret = E_INVALIDARG; - else - { - LPVOID lpdata = 0;/*LocalAlloc(LMEM_ZEROINIT, 0x4E4);*/ + hRes = IShellView_Constructor(pcsfv->pshf, &psf); + if (FAILED(hRes)) + return hRes; - if (!lpdata) - ret = E_OUTOFMEMORY; - else - { - /* Initialize and return unknown lpdata structure */ - } - } + if (!psf) + return E_OUTOFMEMORY; - return ret; + psf->AddRef(); + hRes = psf->QueryInterface(IID_IShellView, (LPVOID *)ppsv); + psf->Release(); + + return hRes; } /*************************************************************************