27 #define WIN32_NO_STATUS 30 #define NONAMELESSUNION 31 #define NONAMELESSSTRUCT 41 #include <wine/unicode.h> 93 LPSHELLFOLDER psfParent, lsf = psf;
114 flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
120 flag = SHGDN_INFOLDER;
123 FIXME(
"Unknown type parameter = %x\n",
type);
124 flag = SHGDN_FORPARSING | SHGDN_FORADDRESSBAR;
130 ret = IShellFolder_GetDisplayNameOf(lsf, pidl,
flag, &strret);
142 ret = IShellFolder_GetDisplayNameOf(psfParent, pidllast,
flag, &strret);
148 IShellFolder_Release(psfParent);
155 IShellFolder_Release(lsf);
193 TRACE(
"(pidl=%p)\n",pidl);
198 while (pidl->mkid.cb)
241 TRACE(
"pidl=%p newpidl=%p\n",pidl, newpidl);
258 TRACE(
"pidl=%p\n", pidl);
273 TRACE(
"-- newpidl=%p\n",pidlNew);
296 IStream_AddRef (pStream);
298 if (
SUCCEEDED(IStream_Read(pStream, &wLen, 2, &dwBytesRead)))
300 TRACE(
"PIDL length is %d\n", wLen);
304 if (
SUCCEEDED(IStream_Read(pStream, *ppPidl , wLen, &dwBytesRead)))
306 TRACE(
"Stream read OK\n");
311 WARN(
"reading pidl failed\n");
324 if (*ppPidl && !
pcheck(*ppPidl))
326 WARN(
"Check failed\n");
331 IStream_Release (pStream);
349 IStream_AddRef (pStream);
358 IStream_Release (pStream);
384 TRACE_(
shell)(
"%s %p 0x%08x\n",
path, ppidl, attributes ? *attributes : 0);
402 ret = IShellFolder_ParseDisplayName(sf, 0,
NULL, (
LPWSTR)
path, &pchEaten, ppidl, attributes);
403 IShellFolder_Release(sf);
473 TRACE(
"pidl=%p newpidl=%p\n",pidl, newpidl);
498 else if (iid1 || iid2)
500 if (!iid1 || !iid2 ||
memcmp(iid1, iid2,
sizeof(
GUID)))
503 else if (pDataW1 || pDataW2)
520 if (!
_ILIsDrive(pidltemp1) || !
_ILIsDrive(pidltemp2) || pdata1->u.drive.szDriveName[0] != pdata2->u.drive.szDriveName[0])
540 TRACE(
"pidl1=%p pidl2=%p\n",pidl1, pidl2);
552 if (!pidl1 || !pidl2)
555 while (pidltemp1->mkid.cb && pidltemp2->mkid.cb)
564 if (!pidltemp1->mkid.cb && !pidltemp2->mkid.cb)
597 TRACE(
"%p %p %x\n", pidlParent, pidlChild, bImmediate);
599 if (!pParent || !pChild)
602 while (pParent->mkid.cb && pChild->mkid.cb)
612 if (pParent->mkid.cb)
616 if ((!pChild->mkid.cb ||
ILGetNext(pChild)->mkid.cb) && bImmediate)
647 TRACE(
"pidl1=%p pidl2=%p\n",pidl1, pidl2);
663 while (pidltemp1->mkid.cb && pidltemp2->mkid.cb)
673 if (pidltemp1->mkid.cb)
704 TRACE(
"pidl=%p pidl=%p\n",pidl1,pidl2);
706 if (!pidl1 && !pidl2)
return NULL;
729 memcpy(pidlNew,pidl1,len1);
747 hr = IShellFolder_GetUIObjectOf(lpsf, 0, 1, &pidlSimple,
756 fmt.dwAspect = DVASPECT_CONTENT;
758 fmt.tymed = TYMED_HGLOBAL;
760 hr = IDataObject_GetData(pDataObj, &
fmt, &medium);
762 IDataObject_Release(pDataObj);
772 *pidlReal =
ILCombine(pidl_folder, pidl_child);
794 FIXME(
"(pidl=%p)\n",pidl);
831 TRACE(
"pidl=%p size=%u\n",pidl,
len);
863 TRACE(
"-- %p\n", pidl);
890 WARN(
"(pidl=%p,pidl=%p,%08u)semi-stub\n",pidl,
item,bEnd);
927 TRACE(
"(pidl=%p)\n",pidl);
1033 LPSHELLFOLDER pSF =
NULL;
1038 ppidl, ppidl ? *ppidl :
NULL,
1039 prgfInOut, prgfInOut ? *prgfInOut : 0);
1045 if (lpFindFile || bBindCtx)
1055 IBindCtx_Release(pBC);
1059 IShellFolder_Release(pSF);
1170 pfd->cFileName[0] =
'\0';
1173 lstrcpynA(
pfd->cAlternateFileName, shortname,
sizeof(
pfd->cAlternateFileName));
1175 pfd->cAlternateFileName[0] =
'\0';
1184 ERR_(
shell)(
"Unknown SHGDFIL %i, please report\n", nFormat);
1227 pfd->cFileName[0] =
'\0';
1232 pfd->cAlternateFileName[0] =
'\0';
1234 pfd->cAlternateFileName[13] = 0;
1243 ERR_(
shell)(
"Unknown SHGDFIL %i, please report\n", nFormat);
1284 LPSHELLFOLDER psfFolder;
1298 ERR(
"SHBindToParent failed: %x\n",
hr);
1303 hr = IShellFolder_GetAttributesOf(psfFolder, 1, &pidlLast, &
dwAttributes);
1305 WARN(
"Wrong dwAttributes or GetAttributesOf failed: %x\n",
hr);
1306 IShellFolder_Release(psfFolder);
1310 hr = IShellFolder_GetDisplayNameOf(psfFolder, pidlLast, SHGDN_FORPARSING, &strret);
1311 IShellFolder_Release(psfFolder);
1345 hr = IShellFolder_QueryInterface(psfDesktop,
riid,
ppv);
1351 hr = IShellFolder_BindToObject(psfDesktop, pidlParent,
NULL,
riid,
ppv);
1355 IShellFolder_Release(psfDesktop);
1372 ULONG dwAttr=sfgaoIn;
1392 IShellFolder_Release(psfDesktop);
1396 if (psfgaoOut) *psfgaoOut = dwAttr;
1425 case SIGDN_NORMALDISPLAY:
1426 case SIGDN_PARENTRELATIVEPARSING:
1427 case SIGDN_PARENTRELATIVEEDITING:
1428 case SIGDN_DESKTOPABSOLUTEPARSING:
1429 case SIGDN_DESKTOPABSOLUTEEDITING:
1430 case SIGDN_PARENTRELATIVEFORADDRESSBAR:
1431 case SIGDN_PARENTRELATIVE:
1434 ret = IShellFolder_GetDisplayNameOf(psfparent, child_pidl,
1442 case SIGDN_FILESYSPATH:
1462 IShellFolder_Release(psfparent);
1486 ret = IUnknown_QueryInterface(punk, &IID_IPersistIDList, (
void**)&ppersidl);
1489 TRACE(
"IPersistIDList (%p)\n", ppersidl);
1490 ret = IPersistIDList_GetIDList(ppersidl, ppidl);
1491 IPersistIDList_Release(ppersidl);
1497 ret = IUnknown_QueryInterface(punk, &IID_IPersistFolder2, (
void**)&ppf2);
1500 TRACE(
"IPersistFolder2 (%p)\n", ppf2);
1501 ret = IPersistFolder2_GetCurFolder(ppf2, ppidl);
1502 IPersistFolder2_Release(ppf2);
1512 TRACE(
"IDataObject (%p)\n", pdo);
1514 &IID_IShellItem, (
void**)&psi);
1518 IShellItem_Release(psi);
1520 IDataObject_Release(pdo);
1527 ret = IUnknown_QueryInterface(punk, &IID_IFolderView, (
void**)&pfv);
1531 TRACE(
"IFolderView (%p)\n", pfv);
1532 ret = IFolderView_GetFolder(pfv, &IID_IShellFolder, (
void**)&psf);
1538 IFolderView_Release(pfv);
1573 pidlOut->mkid.cb =
size + 3;
1581 pidlNext->mkid.cb = 0x00;
1582 TRACE(
"-- (pidl=%p, size=%u)\n", pidlOut,
size);
1685 TRACE(
"-- create GUID-pidl %s\n",
1691 WARN(
"%d: invalid type for GUID\n",
type);
1704 ERR(
"%s is not a GUID\n", szGUID);
1746 wlen =
lstrlenW(wfd->cFileName) + 1;
1757 fs->dwFileSize = wfd->nFileSizeLow;
1758 fs->uFileAttribs = wfd->dwFileAttributes;
1827 pData->u.network.dummy = 0;
1828 strcpy(
pData->u.network.szNames,
"Entire Network");
1843 TRACE(
"(%p,%p,%u)\n",pidl,pOut,uSize);
1872 TRACE(
"(%p)\n",pidl);
1879 TRACE(
"(%p)\n",pidl);
1881 return !pidl || !pidl->mkid.cb;
1888 TRACE(
"(%p)\n", pidl);
1899 TRACE(
"(%p)\n", pidl);
1902 return IsEqualIID(iid, &CLSID_NetworkPlaces);
1910 TRACE(
"(%p)\n",pidl);
1921 TRACE(
"(%p)\n", pidl);
1932 TRACE(
"(%p)\n",pidl);
1935 (pidl && pidl->mkid.cb == 0x00)
1943 TRACE(
"(%p)\n",pidl);
1945 return (pidl && lpPData && (
PT_DRIVE == lpPData->
type ||
1955 TRACE(
"(%p)\n",pidl);
1964 TRACE(
"(%p)\n",pidl);
1973 TRACE(
"(%p)\n",pidl);
1975 return (pidl && lpPData && (lpPData->
type == 0));
1990 if (pidlnext->mkid.cb)
2018 TRACE(
"(%p %p %x)\n",pidl,szOut,uOutSize);
2034 dwReturn =
strlen (szTemp);
2043 dwReturn =
strlen(szSrc);
2053 dwReturn =
strlen (szTemp);
2063 dwReturn =
strlen (szTemp);
2068 ERR(
"-- no text\n");
2087 TRACE(
"(%p %p %x)\n",pidl,szOut,uOutSize);
2147 ERR(
"-- no text\n");
2182 switch (
pdata->type)
2217 return pdata->u.cpanel.szName;
2238 switch (
pdata->type)
2249 return pdata->u.drive.szDriveName;
2256 return pdata->u.file.szNames;
2263 return pdata->u.network.szNames;
2281 switch (
pdata->type)
2304 TRACE(
"%p\n", pidl);
2310 switch (
pdata->type)
2315 return &(
pdata->u.guid.guid);
2318 TRACE(
"Unknown pidl type 0x%04x\n",
pdata->type);
2343 cbOffset = *(
const WORD *)((
const BYTE *)pidl + pidl->mkid.cb -
sizeof(
WORD));
2349 if ((cbOffset & 0
x1) ||
2353 cbOffset > pidl->mkid.cb -
sizeof(cbOffset) -
sizeof(
FileStructW) ||
2354 pidl->mkid.cb != cbOffset + pFileStructW->
cbLen)
2356 WARN(
"Invalid pidl format (cbOffset = %d)!\n", cbOffset);
2360 return pFileStructW;
2385 switch (
pdata->type)
2449 switch (
pdata->type)
2465 const char * pPoint;
2468 TRACE(
"pidl=%p\n",pidl);
2557 pOut[uOutSize-1] =
'\0';
2594 wAttrib =
pData->u.file.uFileAttribs;
2627 for (
i = 0;
i < cidl;
i++)
2648 for (
i = 0;
i < cidl;
i++)
2671 for (
i = 0;
i < cida->cidl;
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
#define SHGDFIL_NETRESOURCE
const GUID CLSID_AdminFolderShortcut
const SHITEMID * LPCSHITEMID
HRESULT WINAPI SHILCreateFromPathA(LPCSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID dest, int len)
BOOL _ILIsSpecialFolder(LPCITEMIDLIST pidl)
LPPIDLDATA _ILGetDataPointer(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateEntireNetwork(void)
BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST _ILCreateDesktop(void)
static BOOL _ILIsEmpty(LPCITEMIDLIST pidl)
#define HRESULT_FROM_WIN32(x)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
#define SHGDFIL_DESCRIPTIONID
#define WideCharToMultiByte
BOOL _ILHACKCompareSimpleIds(LPCITEMIDLIST pidltemp1, LPCITEMIDLIST pidltemp2)
DWORD _ILGetFileAttributes(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
char * strcat(char *DstString, const char *SrcString)
LPITEMIDLIST _ILCreatePrinters(void)
interface IBindCtx * LPBC
static LPITEMIDLIST _ILAlloc(PIDLTYPE type, unsigned int size)
ACPI_SIZE strlen(const char *String)
HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv)
BOOL _ILIsMyComputer(LPCITEMIDLIST pidl)
GLsizei const GLchar ** path
#define FILE_ATTRIBUTE_SYSTEM
BOOL _ILIsNetHood(LPCITEMIDLIST pidl)
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)
LPITEMIDLIST WINAPI SHCloneSpecialIDList(HWND hwndOwner, int nFolder, BOOL fCreate)
LPITEMIDLIST _ILCreateDrive(LPCWSTR lpszNew)
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
#define LOCALE_USER_DEFAULT
void WINAPI ILGlobalFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI SHLogILFromFSIL(LPITEMIDLIST pidl)
static LPWSTR _ILGetTextPointerW(LPCITEMIDLIST pidl)
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
DWORD WINAPI SHCLSIDFromStringA(LPCSTR clsid, CLSID *id)
int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPSTR lpBuffer, _In_ int cchBufferMax)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid)
GLuint GLuint GLsizei GLenum type
#define INVALID_HANDLE_VALUE
LPSTR WINAPI StrFormatKBSizeA(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
const GUID IID_IDataObject
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
static __inline BOOL SHELL_OsIsUnicode(void)
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
HRESULT WINAPI SHGetRealIDL(LPSHELLFOLDER lpsf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST *pidlReal)
BOOL _ILIsPidlSimple(LPCITEMIDLIST pidl)
LPITEMIDLIST * _ILCopyCidaToaPidl(LPITEMIDLIST *pidl, const CIDA *cida)
HRESULT WINAPI ILSaveToStream(IStream *pStream, LPCITEMIDLIST pPidl)
LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path)
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
HINSTANCE shell32_hInstance
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
HRESULT _ILCreateFromPathW(LPCWSTR szPath, LPITEMIDLIST *ppidl)
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
STRSAFEAPI StringCchPrintfA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszFormat,...)
LPITEMIDLIST _ILCreateAdminTools(void)
BOOL _ILIsUnicode(LPCITEMIDLIST pidl)
BOOL _ILIsBitBucket(LPCITEMIDLIST pidl)
DWORD _ILGetFileSize(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
BOOL WINAPI ILGetDisplayName(LPCITEMIDLIST pidl, LPVOID path)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
static const WCHAR CFSTR_SHELLIDLISTW[]
BOOL _ILGetExtension(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
BOOL WINAPI GUIDFromStringW(_In_ PCWSTR psz, _Out_ LPGUID pguid)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
BOOL _ILGetFileDateTime(LPCITEMIDLIST pidl, FILETIME *pFt)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
LPITEMIDLIST _ILCreateMyComputer(void)
BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
BOOL _ILIsMyDocuments(LPCITEMIDLIST pidl)
#define ERROR_FILE_NOT_FOUND
static PROTOCOLDATA * pdata
LPSTR _ILGetTextPointer(LPCITEMIDLIST pidl)
#define FILE_ATTRIBUTE_DIRECTORY
WINE_UNICODE_INLINE WCHAR toupperW(WCHAR ch)
LPITEMIDLIST _ILCreateGuidFromStrW(LPCWSTR szGUID)
BOOL _ILIsCPanelStruct(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST pidl, LPCSHITEMID item, BOOL bEnd)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW(LPCWSTR lpszPath)
LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
BOOL WINAPI DosDateTimeToFileTime(IN WORD wFatDate, IN WORD wFatTime, OUT LPFILETIME lpFileTime)
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
static BOOL ILGetDisplayNameExA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPSTR path, DWORD type)
IID * _ILGetGUIDPointer(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl)
#define FILE_ATTRIBUTE_READONLY
BOOL HCR_GetClassNameA(REFIID riid, LPSTR szDest, DWORD len)
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
WINE_DEFAULT_DEBUG_CHANNEL(pidl)
#define FILE_ATTRIBUTE_COMPRESSED
DWORD WINAPI SHCLSIDFromStringW(LPCWSTR clsid, CLSID *id)
BOOL _ILIsDrive(LPCITEMIDLIST pidl)
BOOL HCR_MapTypeToValueA(LPCSTR szExtension, LPSTR szFileType, LONG len, BOOL bPrependDot)
#define FILE_ATTRIBUTE_ARCHIVE
static PIXELFORMATDESCRIPTOR pfd
static HRESULT _ILParsePathW(LPCWSTR path, LPWIN32_FIND_DATAW lpFindFile, BOOL bBindCtx, LPITEMIDLIST *ppidl, LPDWORD prgfInOut)
HRESULT WINAPI ILLoadFromStream(IStream *pStream, LPITEMIDLIST *ppPidl)
struct tagFileStructW FileStructW
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
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
HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
BOOL _ILIsValue(LPCITEMIDLIST pidl)
#define memcpy(s1, s2, n)
DWORD _ILSimpleGetText(LPCITEMIDLIST pidl, LPSTR szOut, UINT uOutSize)
static LPSTR _ILGetSTextPointer(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
void _ILFreeaPidl(LPITEMIDLIST *apidl, UINT cidl)
WINE_DECLARE_DEBUG_CHANNEL(shell)
LPITEMIDLIST WINAPI ILCreateFromPathAW(LPCVOID path)
BOOL WINAPI ILIsParent(LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidlChild, BOOL bImmediate)
BOOL WINAPI FileTimeToDosDateTime(IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime)
LPITEMIDLIST _ILCreateNetwork(void)
_CRTIMP char *__cdecl _strupr(_Inout_z_ char *_String)
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
LPSTR WINAPI PathFindExtensionA(LPCSTR lpszPath)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
UINT WINAPI ILGetSize(LPCITEMIDLIST pidl)
BOOL _ILGetFileDate(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
void shell(int argc, const char *argv[])
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void pdump(LPCITEMIDLIST pidl)
HRESULT WINAPI SHParseDisplayName(LPCWSTR pszName, IBindCtx *pbc, LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut)
#define FIELD_OFFSET(t, f)
BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
#define FILE_ATTRIBUTE_HIDDEN
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
BOOL pcheck(LPCITEMIDLIST pidl)
#define CSIDL_FLAG_CREATE
HRESULT WINAPI SHILCreateFromPathAW(LPCVOID path, LPITEMIDLIST *ppidl, DWORD *attributes)
#define MultiByteToWideChar
HRESULT WINAPI IFileSystemBindData_Constructor(const WIN32_FIND_DATAW *pfd, LPBC *ppV)
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
LPITEMIDLIST WINAPI SHSimpleIDListFromPathA(LPCSTR lpszPath)
void WINAPI SHFree(LPVOID pv)
LPITEMIDLIST _ILCreateGuidFromStrA(LPCSTR szGUID)
LPITEMIDLIST _ILCreateFromFindDataW(const WIN32_FIND_DATAW *wfd)
void _ILGetFileType(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW(LPCVOID lpszPath)
char * strcpy(char *DstString, const char *SrcString)
HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID dest, int len)
int strcmp(const char *String1, const char *String2)
LPITEMIDLIST _ILCreateIExplore(void)
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path)
struct tagFileStruct FileStruct
LPITEMIDLIST _ILCreateMyDocuments(void)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
LPITEMIDLIST _ILCreateControlPanel(void)
DWORD _ILGetDrive(LPCITEMIDLIST pidl, LPSTR pOut, UINT uSize)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
static unsigned char buff[32768]
LPVOID WINAPI SHAlloc(SIZE_T len)
#define HeapFree(x, y, z)
LPITEMIDLIST _ILCreateBitBucket(void)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
PITEMID_CHILD * _ILCopyaPidl(PCUITEMID_CHILD_ARRAY apidlsrc, UINT cidl)
#define IsEqualIID(riid1, riid2)
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
BOOL WINAPI StrRetToStrNW(LPWSTR dest, DWORD len, LPSTRRET src, const ITEMIDLIST *pidl)
HRESULT WINAPI StrRetToStrW(LPSTRRET lpStrRet, const ITEMIDLIST *pidl, LPWSTR *ppszName)
BOOL HCR_GetClassNameW(REFIID riid, LPWSTR szDest, DWORD len)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)