shell32: Partially implement SHCreateShellItem.
This commit is contained in:
parent
e69c663c66
commit
9b9325fbd1
|
@ -2369,10 +2369,3 @@ LPITEMIDLIST* _ILCopyCidaToaPidl(LPITEMIDLIST* pidl, const CIDA * cida)
|
||||||
|
|
||||||
return dst;
|
return dst;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,
|
|
||||||
IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi)
|
|
||||||
{
|
|
||||||
FIXME("STUB: %p %p %p %p\n",pidlParent, psfParent, pidl, ppsi);
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
|
@ -174,3 +174,38 @@ HRESULT WINAPI IShellItem_Constructor(IUnknown *pUnkOuter, REFIID riid, void **p
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,
|
||||||
|
IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi)
|
||||||
|
{
|
||||||
|
ShellItem *This;
|
||||||
|
LPITEMIDLIST new_pidl;
|
||||||
|
HRESULT ret;
|
||||||
|
|
||||||
|
TRACE("(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi);
|
||||||
|
|
||||||
|
if (!pidlParent && !psfParent && pidl)
|
||||||
|
{
|
||||||
|
new_pidl = ILClone(pidl);
|
||||||
|
if (!new_pidl)
|
||||||
|
return E_OUTOFMEMORY;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FIXME("(%p,%p,%p) not implemented\n", pidlParent, psfParent, pidl);
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = IShellItem_Constructor(NULL, &IID_IShellItem, (void**)&This);
|
||||||
|
if (This)
|
||||||
|
{
|
||||||
|
*ppsi = (IShellItem*)This;
|
||||||
|
This->pidl = new_pidl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*ppsi = NULL;
|
||||||
|
ILFree(new_pidl);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue