mirror of
https://github.com/reactos/reactos.git
synced 2025-04-26 16:40:27 +00:00
[SHELL32]
- Import SHCreateShellFolderView implementation and fixes for -Ex from Wine CORE-7334 #resolve svn path=/trunk/; revision=60731
This commit is contained in:
parent
9a3424b618
commit
508dc39a87
1 changed files with 21 additions and 25 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
|
Loading…
Reference in a new issue