Vincent Povirk : shell32: Implement Get/SetIDList on ShellItem objects.
Alexandre Julliard
julliard at winehq.org
Thu Feb 26 09:04:51 CST 2009
Module: wine
Branch: master
Commit: b4ea7d32217c782c270a0f0037409d50d03ef5f5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b4ea7d32217c782c270a0f0037409d50d03ef5f5
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Fri Feb 13 16:40:19 2009 -0600
shell32: Implement Get/SetIDList on ShellItem objects.
---
dlls/shell32/shellitem.c | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/dlls/shell32/shellitem.c b/dlls/shell32/shellitem.c
index b995534..643f1b5 100644
--- a/dlls/shell32/shellitem.c
+++ b/dlls/shell32/shellitem.c
@@ -204,9 +204,20 @@ static HRESULT WINAPI ShellItem_IPersistIDList_SetIDList(IPersistIDList* iface,
LPCITEMIDLIST pidl)
{
ShellItem *This = impl_from_IPersistIDList(iface);
+ LPITEMIDLIST new_pidl;
- FIXME("(%p,%p)\n", This, pidl);
- return E_NOTIMPL;
+ TRACE("(%p,%p)\n", This, pidl);
+
+ new_pidl = ILClone(pidl);
+
+ if (new_pidl)
+ {
+ ILFree(This->pidl);
+ This->pidl = new_pidl;
+ return S_OK;
+ }
+ else
+ return E_OUTOFMEMORY;
}
static HRESULT WINAPI ShellItem_IPersistIDList_GetIDList(IPersistIDList* iface,
@@ -214,8 +225,13 @@ static HRESULT WINAPI ShellItem_IPersistIDList_GetIDList(IPersistIDList* iface,
{
ShellItem *This = impl_from_IPersistIDList(iface);
- FIXME("(%p,%p)\n", This, ppidl);
- return E_NOTIMPL;
+ TRACE("(%p,%p)\n", This, ppidl);
+
+ *ppidl = ILClone(This->pidl);
+ if (*ppidl)
+ return S_OK;
+ else
+ return E_OUTOFMEMORY;
}
static const IPersistIDListVtbl ShellItem_IPersistIDList_Vtbl = {
More information about the wine-cvs
mailing list