[SHELL32]

- Import SHCreateShellFolderView implementation and fixes for -Ex from Wine
CORE-7334 #resolve

svn path=/trunk/; revision=60731
This commit is contained in:
Thomas Faber 2013-10-22 19:01:07 +00:00
parent 9a3424b618
commit 508dc39a87

View file

@ -1009,21 +1009,18 @@ HRESULT WINAPI SHCreateShellFolderViewEx(
LPCSFV psvcbi, /* [in] shelltemplate struct */ LPCSFV psvcbi, /* [in] shelltemplate struct */
IShellView **ppv) /* [out] IShellView pointer */ IShellView **ppv) /* [out] IShellView pointer */
{ {
IShellView * psf; IShellView *psf;
HRESULT hRes; HRESULT hRes;
TRACE("sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n", TRACE("sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n",
psvcbi->pshf, psvcbi->pidl, psvcbi->pfnCallback, psvcbi->pshf, psvcbi->pidl, psvcbi->pfnCallback,
psvcbi->fvm, psvcbi->psvOuter); psvcbi->fvm, psvcbi->psvOuter);
*ppv = NULL;
hRes = IShellView_Constructor(psvcbi->pshf, &psf); hRes = IShellView_Constructor(psvcbi->pshf, &psf);
if (FAILED(hRes)) if (FAILED(hRes))
return hRes; return hRes;
if (!psf)
return E_OUTOFMEMORY;
psf->AddRef();
hRes = psf->QueryInterface(IID_IShellView, (LPVOID *)ppv); hRes = psf->QueryInterface(IID_IShellView, (LPVOID *)ppv);
psf->Release(); psf->Release();
@ -1914,25 +1911,24 @@ HRESULT WINAPI SHCreateStdEnumFmtEtc(
*/ */
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv) HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
{ {
HRESULT ret = S_OK; IShellView *psf;
HRESULT hRes;
FIXME("SHCreateShellFolderView() stub\n"); *ppsv = NULL;
if (!pcsfv || pcsfv->cbSize != sizeof(*pcsfv))
return E_INVALIDARG;
if (!pcsfv || sizeof(*pcsfv) != pcsfv->cbSize) TRACE("sf=%p outer=%p callback=%p\n",
ret = E_INVALIDARG; pcsfv->pshf, pcsfv->psvOuter, pcsfv->psfvcb);
else
{
LPVOID lpdata = 0;/*LocalAlloc(LMEM_ZEROINIT, 0x4E4);*/
if (!lpdata) hRes = IShellView_Constructor(pcsfv->pshf, &psf);
ret = E_OUTOFMEMORY; if (FAILED(hRes))
else return hRes;
{
/* Initialize and return unknown lpdata structure */
}
}
return ret; hRes = psf->QueryInterface(IID_IShellView, (LPVOID *)ppsv);
psf->Release();
return hRes;
} }
/************************************************************************* /*************************************************************************