95 return psf->QueryInterface(
riid, ppvOut);
119 return psf_parent->GetUIObjectOf(
NULL, 1, &pidl,
riid,
NULL, ppvOut);
132 return psf->CreateViewObject(
NULL,
riid, ppvOut);
145 TRACE(
"(%p,%p)\n",
this, ppsi);
168 TRACE(
"(%p,%x,%p)\n",
this, sfgaoMask, psfgaoAttribs);
178 *psfgaoAttribs = sfgaoMask;
179 hr = parent_folder->GetAttributesOf(1, &child_pidl, psfgaoAttribs);
180 *psfgaoAttribs &= sfgaoMask;
185 return (sfgaoMask == *psfgaoAttribs) ?
S_OK :
S_FALSE;
195 TRACE(
"(%p,%p,%x,%p)\n",
this, oth,
hint, piOrder);
203 hr = pIDList->GetIDList(&pidl);
227 TRACE(
"(%p,%p)\n",
this, pClassID);
229 *pClassID = CLSID_ShellItem;
237 TRACE(
"(%p,%p)\n",
this, pidlx);
252 TRACE(
"(%p,%p)\n",
this, ppidl);
269 TRACE(
"(%p,%p,%p,%p)\n", pidlParent, psfParent, pidl, ppsi);
276 if (pidlParent || psfParent)
285 FIXME(
"couldn't get IPersistFolder2 interface of parent\n");
289 if (
FAILED(ppf2Parent->GetCurFolder(&temp_parent)))
291 FIXME(
"couldn't get parent PIDL\n");
295 pidlParent = temp_parent;
323 hr = newPersistIDList->SetIDList(new_pidl);
331 *ppsi = newShellItem.
Detach();
398 STGMEDIUM medium = { 0 };
408 fmt.dwAspect = DVASPECT_CONTENT;
410 fmt.tymed = TYMED_HGLOBAL;
412 hr = pdtobj->GetData(&
fmt, &medium);
416 if (pida && pida->
cidl >= 1 &&
433 TRACE(
"Failed to create item, cidl=%u, dwFlags=%#x\n", pida ? pida->
cidl : 0,
dwFlags);
446 TRACE(
"Attempting to fall back on CF_HDROP.\n");
450 fmt.dwAspect = DVASPECT_CONTENT;
452 fmt.tymed = TYMED_HGLOBAL;
455 hr = pdtobj->GetData(&
fmt, &medium);
488 FIXME(
"Failed to create item, should try CF_URL.\n");
493#if DLL_EXPORT_VERSION >= _WIN32_WINNT_VISTA
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
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 WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
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 MultiByteToWideChar
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
#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)
_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)
#define IsEqualGUID(rguid1, rguid2)
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
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)
#define IID_PPV_ARG(Itype, ppType)