98 return psf->QueryInterface(
riid, ppvOut);
122 return psf_parent->GetUIObjectOf(
NULL, 1, &pidl,
riid,
NULL, ppvOut);
135 return psf->CreateViewObject(
NULL,
riid, ppvOut);
148 TRACE(
"(%p,%p)\n",
this, ppsi);
171 TRACE(
"(%p,%x,%p)\n",
this, sfgaoMask, psfgaoAttribs);
181 *psfgaoAttribs = sfgaoMask;
182 hr = parent_folder->GetAttributesOf(1, &child_pidl, psfgaoAttribs);
183 *psfgaoAttribs &= sfgaoMask;
188 return (sfgaoMask == *psfgaoAttribs) ?
S_OK :
S_FALSE;
198 TRACE(
"(%p,%p,%x,%p)\n",
this, oth,
hint, piOrder);
206 hr = pIDList->GetIDList(&pidl);
230 TRACE(
"(%p,%p)\n",
this, pClassID);
232 *pClassID = CLSID_ShellItem;
240 TRACE(
"(%p,%p)\n",
this, pidlx);
255 TRACE(
"(%p,%p)\n",
this, ppidl);
272 TRACE(
"(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi);
279 if (pidlParent || psfParent)
288 FIXME(
"couldn't get IPersistFolder2 interface of parent\n");
292 if (
FAILED(ppf2Parent->GetCurFolder(&temp_parent)))
294 FIXME(
"couldn't get parent PIDL\n");
298 pidlParent = temp_parent;
326 hr = newPersistIDList->SetIDList(new_pidl);
334 *ppsi = newShellItem.
Detach();
342 public IShellItemArray
431 return ShellObjectCreatorInit<CShellItemArray>(pdo,
riid,
ppv);
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
EXTERN_C HRESULT WINAPI SHCreateShellItemArrayFromDataObject(_In_ IDataObject *pdo, _In_ REFIID riid, _Out_ void **ppv)
EXTERN_C HRESULT WINAPI SHCreateShellItem(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
STDMETHODIMP EnumItems(IEnumShellItems **ppESI) override
STDMETHODIMP GetItemAt(DWORD nIndex, IShellItem **ppItem) override
STDMETHODIMP BindToHandler(IBindCtx *pbc, REFGUID rbhid, REFIID riid, void **ppv) override
STDMETHODIMP GetPropertyDescriptionList(REFPROPERTYKEY keyType, REFIID riid, void **ppv) override
STDMETHODIMP GetAttributes(SIATTRIBFLAGS dwAttribFlags, SFGAOF sfgaoMask, SFGAOF *psfgaoAttribs) override
STDMETHODIMP GetPropertyStore(GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv) override
HRESULT Initialize(IDataObject *pdo)
STDMETHODIMP GetCount(DWORD *pCount) override
virtual ~CShellItemArray()
STDMETHOD() BindToHandler(IBindCtx *pbc, REFGUID rbhid, REFIID riid, void **ppvOut) override
STDMETHOD() Compare(IShellItem *oth, SICHINTF hint, int *piOrder) override
STDMETHOD() GetAttributes(SFGAOF sfgaoMask, SFGAOF *psfgaoAttribs) override
STDMETHOD() GetClassID(CLSID *pClassID) override
STDMETHOD() GetDisplayName(SIGDN sigdnName, LPWSTR *ppszName) override
HRESULT get_parent_shellfolder(IShellFolder **ppsf)
HRESULT get_shellfolder(IBindCtx *pbc, REFIID riid, void **ppvOut)
STDMETHOD() SetIDList(PCIDLIST_ABSOLUTE pidl) override
STDMETHOD() GetIDList(PIDLIST_ABSOLUTE *ppidl) override
STDMETHOD() GetParent(IShellItem **ppsi) override
HRESULT get_parent_pidl(LPITEMIDLIST *parent_pidl)
const char * shdebugstr_guid(const struct _GUID *id)
#define FAILED_UNEXPECTEDLY(hr)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define COM_INTERFACE_ENTRY_IID(iid, x)
#define DECLARE_NOT_AGGREGATABLE(x)
#define DECLARE_NO_REGISTRY()
const GUID IID_IDataObject
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
PROPERTYKEY * REFPROPERTYKEY
#define IsEqualGUID(rguid1, rguid2)
static PCUIDLIST_RELATIVE HIDA_GetPIDLItem(CIDA const *pida, SIZE_T i)
static PCUIDLIST_ABSOLUTE HIDA_GetPIDLFolder(CIDA const *pida)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
#define IID_PPV_ARG(Itype, ppType)