27#define WIN32_NO_STATUS
30#define NONAMELESSUNION
31#define NONAMELESSSTRUCT
41#include <wine/unicode.h>
102 LPSHELLFOLDER psfParent, lsf = psf;
123 flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
129 flag = SHGDN_INFOLDER;
132 FIXME(
"Unknown type parameter = %x\n",
type);
133 flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
157 IShellFolder_Release(psfParent);
164 IShellFolder_Release(lsf);
202 TRACE(
"(pidl=%p)\n",pidl);
207 while (pidl->mkid.cb)
250 TRACE(
"pidl=%p newpidl=%p\n",pidl, newpidl);
267 TRACE(
"pidl=%p\n", pidl);
282 TRACE(
"-- newpidl=%p\n",pidlNew);
305 IStream_AddRef (pStream);
307 if (
SUCCEEDED(IStream_Read(pStream, &wLen, 2, &dwBytesRead)))
309 TRACE(
"PIDL length is %d\n", wLen);
313 if (
SUCCEEDED(IStream_Read(pStream, *ppPidl , wLen, &dwBytesRead)))
315 TRACE(
"Stream read OK\n");
320 WARN(
"reading pidl failed\n");
333 if (*ppPidl && !
pcheck(*ppPidl))
335 WARN(
"Check failed\n");
342 IStream_Release (pStream);
360 IStream_AddRef (pStream);
369 IStream_Release (pStream);
395 TRACE_(
shell)(
"%s %p 0x%08x\n",
path, ppidl, attributes ? *attributes : 0);
414 IShellFolder_Release(sf);
484 TRACE(
"pidl=%p newpidl=%p\n",pidl, newpidl);
500 if (!pidl || !pidl->mkid.cb)
502 pidl = _ILUnsafeNext(pidl);
508 for (;; p1 = _ILUnsafeNext(p1), p2 = _ILUnsafeNext(p2))
510 DWORD cb1 = p1 ? p1->mkid.cb : 0x80000000;
511 DWORD cb2 = p2 ? p2->mkid.cb : 0x80000000;
540 else if (iid1 || iid2)
542 if (!iid1 || !iid2 ||
memcmp(iid1, iid2,
sizeof(
GUID)))
545 else if (pDataW1 || pDataW2)
567 if ((pidltemp1->mkid.cb != pidltemp2->mkid.cb) ||
587 TRACE(
"pidl1=%p pidl2=%p\n",pidl1, pidl2);
593 if (pidl1 == pidl2 || _ILMemCmpEqualIDList(pidltemp1, pidltemp2))
600 IShellFolder_Release(psfDesktop);
620 if (!pidl1 || !pidl2)
623 while (pidltemp1->mkid.cb && pidltemp2->mkid.cb)
632 if (!pidltemp1->mkid.cb && !pidltemp2->mkid.cb)
644 if (!pidlParent || !pidlChild)
647 while (pidlParent->mkid.cb)
649 cb += pidlChild->mkid.cb;
650 if (!pidlChild->mkid.cb)
652 if (pidlParent->mkid.cb)
657 pidlChild = _ILUnsafeNext(pidlChild);
658 pidlParent = _ILUnsafeNext(pidlParent);
661 if (bImmediate && (!pidlChild->mkid.cb || _ILUnsafeNext(pidlChild)->mkid.cb))
702 TRACE(
"%p %p %x\n", pidlParent, pidlChild, bImmediate);
710 while (
pParent->mkid.cb && pChild->mkid.cb)
724 if ((!pChild->mkid.cb ||
ILGetNext(pChild)->mkid.cb) && bImmediate)
753 TRACE(
"pidl1=%p pidl2=%p\n", pidl1, pidl2);
763 TRACE(
"pidl1=%p pidl2=%p\n",pidl1, pidl2);
779 while (pidltemp1->mkid.cb && pidltemp2->mkid.cb)
789 if (pidltemp1->mkid.cb)
821 TRACE(
"pidl=%p pidl=%p\n",pidl1,pidl2);
823 if (!pidl1 && !pidl2)
return NULL;
846 memcpy(pidlNew,pidl1,len1);
865 hr = IShellFolder_GetUIObjectOf(lpsf, 0, 1, &pidlSimple,
874 fmt.dwAspect = DVASPECT_CONTENT;
876 fmt.tymed = TYMED_HGLOBAL;
878 hr = IDataObject_GetData(pDataObj, &
fmt, &medium);
880 IDataObject_Release(pDataObj);
890 *pidlReal =
ILCombine(pidl_folder, pidl_child);
913 FIXME(
"(pidl=%p)\n",pidl);
950 TRACE(
"pidl=%p size=%u\n",pidl,
len);
982 TRACE(
"-- %p\n", pidl);
1009 WARN(
"(pidl=%p,pidl=%p,%08u)semi-stub\n",pidl,
item,bEnd);
1046 TRACE(
"(pidl=%p)\n",pidl);
1066 TRACE(
"%p\n", pidl);
1152 LPSHELLFOLDER pSF =
NULL;
1157 ppidl, ppidl ? *ppidl :
NULL,
1158 prgfInOut, prgfInOut ? *prgfInOut : 0);
1164 if (lpFindFile || bBindCtx)
1174 IBindCtx_Release(pBC);
1178 IShellFolder_Release(pSF);
1258 const SHCOLUMNID *pscid,
void*
buf,
UINT cb)
1262 HRESULT hr = IShellFolder2_GetDetailsEx(psf2, pidl, pscid, &
var);
1272 const SHCOLUMNID *pscid,
void*
buf,
UINT cb)
1275 HRESULT hr = IShellFolder_QueryInterface(psf, &IID_IShellFolder2, (
void**)&psf2);
1279 IShellFolder2_Release(psf2);
1325 pfd->cFileName[0] =
'\0';
1328 lstrcpynA(
pfd->cAlternateFileName, shortname,
sizeof(
pfd->cAlternateFileName));
1330 pfd->cAlternateFileName[0] =
'\0';
1341 ERR_(
shell)(
"Unknown SHGDFIL %i, please report\n", nFormat);
1384 pfd->cFileName[0] =
'\0';
1389 pfd->cAlternateFileName[0] =
'\0';
1391 pfd->cAlternateFileName[13] = 0;
1406 ERR_(
shell)(
"Unknown SHGDFIL %i, please report\n", nFormat);
1451 LPSHELLFOLDER psfFolder;
1465 ERR(
"SHBindToParent failed: %x\n",
hr);
1470 hr = IShellFolder_GetAttributesOf(psfFolder, 1, &pidlLast, &
dwAttributes);
1473 WARN(
"Wrong dwAttributes or GetAttributesOf failed: %x\n",
hr);
1474 IShellFolder_Release(psfFolder);
1479 IShellFolder_Release(psfFolder);
1519 hr = IShellFolder_QueryInterface(psfDesktop,
riid,
ppv);
1525 hr = IShellFolder_BindToObject(psfDesktop, pidlParent,
NULL,
riid,
ppv);
1529 IShellFolder_Release(psfDesktop);
1549 TRACE(
"(%s, %p, %p, 0x%X, %p)\n", pszName, pbc, ppidl, sfgaoIn, psfgaoOut);
1556 pszNameDup =
StrDupW(pszName);
1576 ULONG sfgao = sfgaoIn, cchEaten;
1584 (psfgaoOut ? &sfgao :
NULL));
1586 *psfgaoOut = (sfgao & sfgaoIn);
1592 psfDesktop->lpVtbl->
Release(psfDesktop);
1595 pBindCtx->lpVtbl->
Release(pBindCtx);
1619 case SIGDN_NORMALDISPLAY:
1620 case SIGDN_PARENTRELATIVEPARSING:
1621 case SIGDN_PARENTRELATIVEEDITING:
1622 case SIGDN_DESKTOPABSOLUTEPARSING:
1623 case SIGDN_DESKTOPABSOLUTEEDITING:
1624 case SIGDN_PARENTRELATIVEFORADDRESSBAR:
1625 case SIGDN_PARENTRELATIVE:
1636 case SIGDN_FILESYSPATH:
1656 IShellFolder_Release(psfparent);
1687 ret = IUnknown_QueryInterface(punk, &IID_IPersistIDList, (
void**)&ppersidl);
1690 TRACE(
"IPersistIDList (%p)\n", ppersidl);
1691 ret = IPersistIDList_GetIDList(ppersidl, ppidl);
1692 IPersistIDList_Release(ppersidl);
1698 ret = IUnknown_QueryInterface(punk, &IID_IPersistFolder2, (
void**)&ppf2);
1701 TRACE(
"IPersistFolder2 (%p)\n", ppf2);
1702 ret = IPersistFolder2_GetCurFolder(ppf2, ppidl);
1703 IPersistFolder2_Release(ppf2);
1713 TRACE(
"IDataObject (%p)\n", pdo);
1715 &IID_IShellItem, (
void**)&psi);
1719 IShellItem_Release(psi);
1721 IDataObject_Release(pdo);
1728 ret = IUnknown_QueryInterface(punk, &IID_IFolderView, (
void**)&pfv);
1732 TRACE(
"IFolderView (%p)\n", pfv);
1733 ret = IFolderView_GetFolder(pfv, &IID_IShellFolder, (
void**)&psf);
1739 IFolderView_Release(pfv);
1772 pidlOut->mkid.cb =
size + 3;
1780 pidlNext->mkid.cb = 0x00;
1781 TRACE(
"-- (pidl=%p, size=%u)\n", pidlOut,
size);
1889 pData->u.guid.uSortOrder = SortOrder;
1891 TRACE(
"-- create GUID-pidl %s\n",
1897 WARN(
"%d: invalid type for GUID\n",
type);
1910 ERR(
"%s is not a GUID\n", szGUID);
1952 wlen =
lstrlenW(wfd->cFileName) + 1;
1963 fs->dwFileSize = wfd->nFileSizeLow;
1964 fs->uFileAttribs = wfd->dwFileAttributes;
2013 pszDest[0] =
toupper(lpszNew[0]);
2031 pData->u.network.dummy = 0;
2032 strcpy(
pData->u.network.szNames,
"Entire Network");
2047 TRACE(
"(%p,%p,%u)\n",pidl,pOut,uSize);
2074 TRACE(
"(%p)\n",pidl);
2081 TRACE(
"(%p)\n",pidl);
2083 return !pidl || !pidl->mkid.cb;
2090 TRACE(
"(%p)\n", pidl);
2101 TRACE(
"(%p)\n",pidl);
2112 TRACE(
"(%p)\n", pidl);
2123 TRACE(
"(%p)\n",pidl);
2126 (pidl && pidl->mkid.cb == 0x00)
2147 return type && !(
type & PT_FS_FOLDER_FLAG);
2154 TRACE(
"(%p)\n",pidl);
2156 return (pidl && lpPData && (lpPData->
type == 0));
2171 if (pidlnext->mkid.cb)
2196 TRACE(
"(%p %p %x)\n",pidl,szOut,uOutSize);
2256 ERR(
"-- no text\n");
2294 switch (
pdata->type)
2323 return pdata->u.cpanel.szName;
2346 return pdata->u.file.szNames;
2349 return pdata->u.drive.szDriveName;
2351 switch (
pdata->type)
2360 return pdata->u.file.szNames;
2367 return pdata->u.network.szNames;
2411 TRACE(
"%p\n", pidl);
2417 switch (
pdata->type)
2422 return &(
pdata->u.guid.guid);
2425 TRACE(
"Unknown pidl type 0x%04x\n",
pdata->type);
2447 if (!_ILIsFolderOrFile(pidl))
2450 cbOffset = *(
const WORD *)((
const BYTE *)pidl + pidl->mkid.cb -
sizeof(
WORD));
2456 if ((cbOffset & 0x1) ||
2460 cbOffset > pidl->mkid.cb -
sizeof(cbOffset) -
sizeof(
FileStructW) ||
2461 pidl->mkid.cb != cbOffset + pFileStructW->
cbLen)
2463 WARN(
"Invalid pidl format (cbOffset = %d)!\n", cbOffset);
2467 return pFileStructW;
2537 TRACE(
"pidl=%p\n",pidl);
2613 for (
i = 0;
i < cidl;
i++)
2634 for (
i = 0;
i < cidl;
i++)
2657 for (
i = 0;
i < cida->
cidl;
i++)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
HRESULT WINAPI IFileSystemBindData_Constructor(const WIN32_FIND_DATAW *pfd, LPBC *ppV)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
void pdump(LPCITEMIDLIST pidl)
BOOL pcheck(LPCITEMIDLIST pidl)
#define SHCIDS_CANONICALONLY
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
#define WideCharToMultiByte
#define MultiByteToWideChar
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI DosDateTimeToFileTime(IN WORD wFatDate, IN WORD wFatTime, OUT LPFILETIME lpFileTime)
BOOL WINAPI FileTimeToDosDateTime(IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime)
const GUID CLSID_AdminFolderShortcut
void WINAPI SHFree(LPVOID pv)
DWORD WINAPI SHCLSIDFromStringA(LPCSTR clsid, CLSID *id)
DWORD WINAPI SHCLSIDFromStringW(LPCWSTR clsid, CLSID *id)
LPVOID WINAPI SHAlloc(SIZE_T len)
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
LPWSTR WINAPI StrFormatKBSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
HRESULT WINAPI StrRetToStrW(LPSTRRET lpStrRet, const ITEMIDLIST *pidl, LPWSTR *ppszName)
LPWSTR WINAPI StrDupW(LPCWSTR lpszStr)
#define IShellFolder_ParseDisplayName
#define IShellFolder_CompareIDs
#define IShellFolder_GetDisplayNameOf
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
static unsigned char buff[32768]
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
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 flag
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 GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
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 GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
HRESULT ParseDisplayName([in] HWND hwndOwner, [in] LPBC pbcReserved, [in, string] LPOLESTR lpszDisplayName, [out] ULONG *pchEaten, [out] PIDLIST_RELATIVE *ppidl, [in, out, unique] ULONG *pdwAttributes)
#define RtlEqualMemory(dst, src, len)
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static HMODULE MODULEINFO DWORD cb
static PROTOCOLDATA * pdata
#define FILE_ATTRIBUTE_READONLY
#define FILE_ATTRIBUTE_COMPRESSED
#define FILE_ATTRIBUTE_HIDDEN
#define FILE_ATTRIBUTE_SYSTEM
#define FILE_ATTRIBUTE_ARCHIVE
#define FILE_ATTRIBUTE_DIRECTORY
interface IBindCtx * LPBC
const GUID IID_IDataObject
BOOL WINAPI GUIDFromStringW(_In_ PCWSTR psz, _Out_ LPGUID pguid)
LPITEMIDLIST WINAPI SHSimpleIDListFromPathA(LPCSTR lpszPath)
BOOL _ILIsUnicode(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI SHCloneSpecialIDList(HWND hwndOwner, int nFolder, BOOL fCreate)
LPITEMIDLIST _ILCreateMyComputer(void)
PITEMID_CHILD * _ILCopyaPidl(PCUITEMID_CHILD_ARRAY apidlsrc, UINT cidl)
static HRESULT _ILParsePathW(LPCWSTR path, LPWIN32_FIND_DATAW lpFindFile, BOOL bBindCtx, LPITEMIDLIST *ppidl, LPDWORD prgfInOut)
static LPWSTR _ILGetTextPointerW(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateIExplore(void)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl)
static LPSTR _ILGetSTextPointer(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST * _ILCopyCidaToaPidl(LPITEMIDLIST *pidl, const CIDA *cida)
BOOL _ILHACKCompareSimpleIds(LPCITEMIDLIST pidltemp1, LPCITEMIDLIST pidltemp2)
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
DWORD _ILGetFileAttributes(LPCITEMIDLIST pidl, LPWSTR pOut, UINT uOutSize)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
LPITEMIDLIST _ILCreateEntireNetwork(void)
BOOL WINAPI ILIsParent(LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidlChild, BOOL bImmediate)
LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW(LPCVOID lpszPath)
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
HRESULT WINAPI SHParseDisplayName(LPCWSTR pszName, IBindCtx *pbc, LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut)
BOOL _ILIsMyDocuments(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateDrive(LPCWSTR lpszNew)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
LPSTR _ILGetTextPointer(LPCITEMIDLIST pidl)
static HRESULT GetShellFolder2ItemDetailsExToBuffer(IShellFolder2 *psf2, LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, void *buf, UINT cb)
LPITEMIDLIST _ILCreateDesktop(void)
LPPIDLDATA _ILGetDataPointer(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI SHLogILFromFSIL(LPITEMIDLIST pidl)
HRESULT WINAPI SHGetRealIDL(LPSHELLFOLDER lpsf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST *pidlReal)
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
LPCITEMIDLIST _ILIsParentEx(LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidlChild, BOOL bImmediate)
BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath)
LPITEMIDLIST WINAPI ILCreateFromPathAW(LPCVOID path)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
BOOL _ILIsSpecialFolder(LPCITEMIDLIST pidl)
HRESULT _ILCreateFromPathW(LPCWSTR szPath, LPITEMIDLIST *ppidl)
HRESULT WINAPI ILSaveToStream(IStream *pStream, LPCITEMIDLIST pPidl)
LPITEMIDLIST _ILCreateNetwork(void)
BOOL WINAPI ILGetDisplayName(LPCITEMIDLIST pidl, LPVOID path)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
DWORD _ILGetDrive(LPCITEMIDLIST pidl, LPWSTR pOut, UINT uSize)
LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST pidl, LPCSHITEMID item, BOOL bEnd)
BOOL _ILIsPidlSimple(LPCITEMIDLIST pidl)
BOOL _ILIsBitBucket(LPCITEMIDLIST pidl)
BOOL _ILIsMyComputer(LPCITEMIDLIST pidl)
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
void _ILFreeaPidl(LPITEMIDLIST *apidl, UINT cidl)
HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID dest, int len)
void WINAPI ILGlobalFree(LPITEMIDLIST pidl)
BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
HRESULT WINAPI ILLoadFromStream(IStream *pStream, LPITEMIDLIST *ppPidl)
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW(LPCWSTR lpszPath)
HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv)
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateGuidFromStrA(LPCSTR szGUID)
EXTERN_C HRESULT BindCtx_RegisterObjectParam(_In_ IBindCtx *pBindCtx, _In_ LPOLESTR pszKey, _In_opt_ IUnknown *punk, _Out_ LPBC *ppbc)
LPITEMIDLIST _ILCreateGuidFromStrW(LPCWSTR szGUID)
BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
static LPITEMIDLIST _ILAlloc(PIDLTYPE type, unsigned int size)
IID * _ILGetGUIDPointer(LPCITEMIDLIST pidl)
LPITEMIDLIST SHELL32_CreateSimpleIDListFromPath(LPCWSTR pszPath, DWORD dwAttributes)
HRESULT WINAPI SHGetPathCchFromIDListW(_In_ LPCITEMIDLIST pidl, _Out_writes_(cchPathMax) LPWSTR pszPath, _In_ SIZE_T cchPathMax)
HRESULT WINAPI SHILCreateFromPathAW(LPCVOID path, LPITEMIDLIST *ppidl, DWORD *attributes)
PUIDLIST_RELATIVE WINAPI ILFindChild(PIDLIST_ABSOLUTE pidl1, PCIDLIST_ABSOLUTE pidl2)
BOOL _ILGetFileDateTime(LPCITEMIDLIST pidl, FILETIME *pFt)
LPITEMIDLIST _ILCreatePrinters(void)
HRESULT WINAPI SHILCreateFromPathA(LPCSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
DWORD _ILGetFileSize(LPCITEMIDLIST pidl, LPWSTR pOut, UINT uOutSize)
LPITEMIDLIST _ILCreateControlPanel(void)
static HRESULT GetShellFolder1ItemDetailsExToBuffer(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, const SHCOLUMNID *pscid, void *buf, UINT cb)
EXTERN_C HWND BindCtx_GetUIWindow(_In_ IBindCtx *pBindCtx)
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
BOOL _ILIsValue(LPCITEMIDLIST pidl)
static BOOL ILGetDisplayNameExA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPSTR path, DWORD type)
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path)
BOOL _ILIsDrive(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID dest, int len)
LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid, BYTE SortOrder)
BOOL _ILGetExtension(LPCITEMIDLIST pidl, LPWSTR pOut, UINT uOutSize)
LPITEMIDLIST _ILCreateMyDocuments(void)
LPITEMIDLIST _ILCreateBitBucket(void)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path)
LPITEMIDLIST _ILCreateFromFindDataW(const WIN32_FIND_DATAW *wfd)
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
LPITEMIDLIST _ILCreateAdminTools(void)
BOOL _ILIsCPanelStruct(LPCITEMIDLIST pidl)
struct tagFileStruct FileStruct
static BYTE _ILGetType(LPCITEMIDLIST pidl)
static BYTE _ILGetFSType(LPCITEMIDLIST pidl)
UINT _ILGetDepth(LPCITEMIDLIST pidl)
static BOOL _ILIsEmpty(LPCITEMIDLIST pidl)
#define IsEqualIID(riid1, riid2)
BOOL HCR_GetClassNameW(REFIID riid, LPWSTR szDest, DWORD len)
static HRESULT SHELL_VariantToBuffer(VARIANT *pVar, void *pData, SIZE_T cb)
static __inline BOOL SHELL_OsIsUnicode(void)
#define CSIDL_FLAG_CREATE
BOOL WINAPI StrRetToStrNW(LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl)
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
#define PID_DESCRIPTIONID
#define SHGDFIL_NETRESOURCE
#define SHGDFIL_DESCRIPTIONID
static const WCHAR CFSTR_SHELLIDLISTW[]
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
const SHITEMID * LPCSHITEMID
ITEMIDLIST_RELATIVE UNALIGNED * PUIDLIST_RELATIVE
static PIXELFORMATDESCRIPTOR pfd
struct tagDriveStruct drive
struct tagFileStruct file
union tagPIDLDATA::@596 u
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define FIELD_OFFSET(t, f)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define HRESULT_FROM_WIN32(x)
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free