96 return psf->QueryInterface(
riid, ppvOut);
105 return psf->GetDetailsEx(pidl, (
const SHCOLUMNID*)&
key, pvar);
130 return psf_parent->GetUIObjectOf(
NULL, 1, &pidl,
riid,
NULL, ppvOut);
143 return psf->CreateViewObject(
NULL,
riid, ppvOut);
156 TRACE(
"(%p,%p)\n",
this, ppsi);
179 TRACE(
"(%p,%x,%p)\n",
this, sfgaoMask, psfgaoAttribs);
189 *psfgaoAttribs = sfgaoMask;
190 hr = parent_folder->GetAttributesOf(1, &child_pidl, psfgaoAttribs);
191 *psfgaoAttribs &= sfgaoMask;
196 return (sfgaoMask == *psfgaoAttribs) ?
S_OK :
S_FALSE;
206 TRACE(
"(%p,%p,%x,%p)\n",
this, oth,
hint, piOrder);
214 hr = pIDList->GetIDList(&pidl);
252 if (!punkCreateObject)
399 TRACE(
"(%p,%p)\n",
this, pClassID);
401 *pClassID = CLSID_ShellItem;
409 TRACE(
"(%p,%p)\n",
this, pidlx);
424 TRACE(
"(%p,%p)\n",
this, ppidl);
441 TRACE(
"(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi);
448 if (pidlParent || psfParent)
457 FIXME(
"couldn't get IPersistFolder2 interface of parent\n");
461 if (
FAILED(ppf2Parent->GetCurFolder(&temp_parent)))
463 FIXME(
"couldn't get parent PIDL\n");
467 pidlParent = temp_parent;
495 hr = newPersistIDList->SetIDList(new_pidl);
503 *ppsi = newShellItem.
Detach();
570 STGMEDIUM medium = { 0 };
580 fmt.dwAspect = DVASPECT_CONTENT;
582 fmt.tymed = TYMED_HGLOBAL;
584 hr = pdtobj->GetData(&
fmt, &medium);
588 if (pida && pida->
cidl >= 1 &&
605 TRACE(
"Failed to create item, cidl=%u, dwFlags=%#x\n", pida ? pida->
cidl : 0,
dwFlags);
618 TRACE(
"Attempting to fall back on CF_HDROP.\n");
622 fmt.dwAspect = DVASPECT_CONTENT;
624 fmt.tymed = TYMED_HGLOBAL;
627 hr = pdtobj->GetData(&
fmt, &medium);
660 FIXME(
"Failed to create item, should try CF_URL.\n");
665#if DLL_EXPORT_VERSION >= _WIN32_WINNT_VISTA
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define IID_PPV_ARG(Itype, ppType)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
STDMETHOD() BindToHandler(IBindCtx *pbc, REFGUID rbhid, REFIID riid, void **ppvOut) override
STDMETHOD() GetPropertyDescriptionList(_In_ REFPROPERTYKEY keyType, _In_ REFIID riid, _Out_ void **ppv) override
STDMETHOD() Compare(IShellItem *oth, SICHINTF hint, int *piOrder) override
STDMETHOD() GetAttributes(SFGAOF sfgaoMask, SFGAOF *psfgaoAttribs) override
STDMETHOD() GetUInt32(_In_ REFPROPERTYKEY key, _Out_ ULONG *pui) override
STDMETHOD() GetInt32(_In_ REFPROPERTYKEY key, _Out_ int *pi) override
STDMETHOD() GetString(_In_ REFPROPERTYKEY key, _Out_ LPWSTR *ppsz) override
STDMETHOD() GetPropertyStoreForKeys(const PROPERTYKEY *rgKeys, _In_ UINT cKeys, _In_ GETPROPERTYSTOREFLAGS flags, _In_ REFIID riid, _Out_ void **ppv) override
STDMETHOD() GetBool(_In_ REFPROPERTYKEY key, _Out_ BOOL *pf) override
STDMETHOD() GetProperty(_In_ REFPROPERTYKEY key, _Out_ PROPVARIANT *ppropvar) override
STDMETHOD() GetClassID(CLSID *pClassID) override
STDMETHOD() GetDisplayName(SIGDN sigdnName, LPWSTR *ppszName) override
HRESULT get_parent_shellfolder(IShellFolder **ppsf)
STDMETHOD() GetPropertyStore(_In_ GETPROPERTYSTOREFLAGS flags, _In_ REFIID riid, _Out_ void **ppv)
HRESULT get_property_from_folder(REFPROPERTYKEY key, VARIANT *pvar)
HRESULT get_shellfolder(IBindCtx *pbc, REFIID riid, void **ppvOut)
HRESULT get_converted_property(REFPROPERTYKEY key, PROPVARIANT *ppropvar, VARTYPE vt)
STDMETHOD() GetCLSID(_In_ REFPROPERTYKEY key, _Out_ CLSID *pclsid) override
STDMETHOD() SetIDList(PCIDLIST_ABSOLUTE pidl) override
STDMETHOD() GetFileTime(_In_ REFPROPERTYKEY key, _Out_ FILETIME *pft) override
STDMETHOD() GetIDList(PIDLIST_ABSOLUTE *ppidl) override
STDMETHOD() Update(_In_ IBindCtx *pbc) override
STDMETHOD() GetParent(IShellItem **ppsi) override
STDMETHOD() GetPropertyStoreWithCreateObject(_In_ GETPROPERTYSTOREFLAGS flags, _In_ IUnknown *punkCreateObject, _In_ REFIID riid, _Out_ void **ppv) override
STDMETHOD() GetUInt64(_In_ REFPROPERTYKEY key, _Out_ ULONGLONG *pull) override
HRESULT get_parent_pidl(LPITEMIDLIST *parent_pidl)
const char * shdebugstr_guid(const struct _GUID *id)
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
#define MultiByteToWideChar
static REFPROPVARIANT PROPVAR_CHANGE_FLAGS VARTYPE vt
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
EXTERN_C HRESULT WINAPI SHCreateItemFromParsingName(_In_ PCWSTR pszPath, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv)
EXTERN_C HRESULT WINAPI SHGetKnownFolderIDList(REFKNOWNFOLDERID rfid, DWORD flags, HANDLE token, PIDLIST_ABSOLUTE *pidl)
EXTERN_C HRESULT WINAPI SHCreateItemFromRelativeName(_In_ IShellItem *parent, _In_ PCWSTR pszName, _In_opt_ IBindCtx *pbc, _In_ REFIID riid, _Out_ void **ppv)
EXTERN_C HRESULT WINAPI SHCreateItemInKnownFolder(_In_ REFKNOWNFOLDERID kfid, _In_ DWORD dwFlags, _In_opt_ PCWSTR pszFileName, _In_ REFIID riid, _Out_ void **ppv)
EXTERN_C HRESULT WINAPI SHGetItemFromObject(_In_ IUnknown *punk, _In_ REFIID riid, _Out_ void **ppv)
EXTERN_C HRESULT WINAPI SHGetItemFromDataObject(_In_ IDataObject *pdtobj, _In_ DATAOBJ_GET_ITEM_FLAGS dwFlags, _In_ REFIID riid, _Out_ void **ppv)
HRESULT WINAPI SHCreateShellItem(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi)
EXTERN_C HRESULT WINAPI SHGetPropertyStoreFromParsingName(_In_ PCWSTR pszPath, _In_opt_ IBindCtx *pbc, _In_ GETPROPERTYSTOREFLAGS flags, _In_ REFIID riid, _Out_ void **ppv)
EXTERN_C HRESULT WINAPI SHCreateItemFromIDList(_In_ PCIDLIST_ABSOLUTE pidl, _In_ REFIID riid, _Out_ void **ppv)
#define FAILED_UNEXPECTEDLY
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HRESULT ParseDisplayName([in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
static ERESOURCE GlobalLock
int WINAPI lstrlenA(LPCSTR lpString)
static PROCESS_INFORMATION pi
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
const GUID IID_IDataObject
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
HRESULT WINAPI SHParseDisplayName(LPCWSTR pszName, IBindCtx *pbc, LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
HRESULT SHELL_PropVariantChangeType(_Out_ PROPVARIANT *ppvDest, _In_ REFPROPVARIANT pvSrc, _In_ VARTYPE vt)
HRESULT SHELL_VariantToPropVariant(_In_ const VARIANT *pVar, _Out_ PROPVARIANT *pPropVar)
PROPERTYKEY * REFPROPERTYKEY
#define IsEqualGUID(rguid1, rguid2)
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)
SYMCRYPT_XMSSKEY_TYPE keyType
static PCUIDLIST_RELATIVE HIDA_GetPIDLItem(CIDA const *pida, SIZE_T i)
static PCUIDLIST_ABSOLUTE HIDA_GetPIDLFolder(CIDA const *pida)
static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static PWSTR *static DATAOBJ_GET_ITEM_FLAGS
static const WCHAR CFSTR_SHELLIDLISTW[]
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
WORD WORD PSZ PSZ pszFileName
#define HRESULT_FACILITY(hr)