33 WARN(
"Failed to get progid for extension %S (%x), error %d\n", pExtension, pExtension,
res);
43 WARN(
"Could not open key %S for extension %S\n",
KeyName, pExtension);
52 ERR(
"Invalid pidl!\n");
59 ERR(
"Invalid pidl!\n");
77 WARN(
"OpenKeyFromFileType failed for key %S\n",
KeyName);
87 ERR(
"OpenKeyFromFileType succeeded but RegGetValueW failed\n");
94 L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved",
102 ERR(
"DropHandler extension %S not approved\n", wszName);
109 L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Blocked",
116 ERR(
"Extension %S not approved\n", wszCLSIDValue);
145 if (
uFlags & GIL_OPENICON)
171 if (
uFlags & GIL_DEFAULTICON)
242 CComPtr<IDefaultExtractIconInit> initIcon;
259 initIcon->SetNormalIcon(wTemp, icon_idx);
263 initIcon->SetShortcutIcon(wTemp, icon_idx);
266 pidl, GIL_DEFAULTICON, wTemp,
_countof(wTemp),
270 initIcon->SetDefaultIcon(wTemp, icon_idx);
280 pidl, GIL_OPENICON, wTemp,
_countof(wTemp),
284 initIcon->SetOpenIcon(wTemp, icon_idx);
292 WARN(
"Could not open DefaultIcon key!\n");
299 icon_idx =
_wtoi(sNum);
321 initIcon->SetNormalIcon(wTemp, icon_idx);
332 return initIcon->QueryInterface(iid, ppvOut);
349#define SUPER_HIDDEN (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM)
371 if (!
strcmpW(FindData.cFileName,
L".") || !
strcmpW(FindData.cFileName,
L".."))
385 ERR(
"Got CLSID override for '%S'\n", Tmp);
407 TRACE(
"Treating '%S' as directory!\n", FindData.cFileName);
424 if (
dwFlags & SHCONTF_NONFOLDERS)
454 if (!sPathTarget || !sPathTarget[0])
456 WARN(
"No path for CFileSysEnum, empty result!\n");
496 TRACE(
"(%p)->(hr=0x%08x)\n",
this,
hr);
521 TRACE(
"-- destroying IShellFolder(%p)\n",
this);
537#define GENERICSHELLVIEWCOLUMNS 6
605 ERR(
"Got wrong type of pidl!\n");
606 *pdwAttributes &= SFGAO_CANLINK;
613 dwShellAttributes = SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_CANLINK | SFGAO_CANRENAME | SFGAO_CANDELETE |
614 SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_FILESYSTEM;
649 TRACE(
"Treating '%S' as directory!\n", szFileName);
658 dwShellAttributes |= (SFGAO_FOLDER | SFGAO_STORAGE);
663 dwShellAttributes |= (SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR);
668 dwShellAttributes |= SFGAO_STREAM;
672 dwShellAttributes |= SFGAO_HIDDEN;
675 dwShellAttributes |= SFGAO_READONLY;
677 if (SFGAO_LINK & *pdwAttributes)
682 dwShellAttributes |= SFGAO_LINK;
685 if (SFGAO_HASSUBFOLDER & *pdwAttributes)
687 CComPtr<IShellFolder> psf2;
690 CComPtr<IEnumIDList> pEnumIL;
691 if (
SUCCEEDED(psf2->EnumObjects(0, SHCONTF_FOLDERS, &pEnumIL)))
693 if (pEnumIL->Skip(1) ==
S_OK)
694 dwShellAttributes |= SFGAO_HASSUBFOLDER;
699 *pdwAttributes = dwShellAttributes;
701 TRACE (
"-- 0x%08x\n", *pdwAttributes);
734 DWORD *pdwAttributes)
743 TRACE (
"(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n",
744 this, hwndOwner, pbc, lpszDisplayName,
debugstr_w (lpszDisplayName),
745 pchEaten, ppidl, pdwAttributes);
750 if (!lpszDisplayName)
761 if (*lpszDisplayName)
767 if (pidlTemp !=
NULL)
792 if (szNext && *szNext)
796 &pidlTemp, (
LPOLESTR) szNext, pchEaten, pdwAttributes);
801 if (pdwAttributes && *pdwAttributes)
812 TRACE(
"(%p)->(-- pidl=%p ret=0x%08x)\n",
this, ppidl ? *ppidl : 0,
hr);
827 LPENUMIDLIST *ppEnumIDList)
846 TRACE(
"(%p)->(pidl=%p,%p,%s,%p)\n",
this, pidl, pbc,
849 CComPtr<IShellFolder> pSF;
852 if (!
m_pidlRoot || !ppvOut || !pidl || !pidl->mkid.cb)
854 ERR(
"CFSFolder::BindToObject: Invalid parameters\n");
864 ERR(
"CFSFolder::BindToObject: Invalid pidl!\n");
895 ERR(
"CFSFolder::BindToObject: %s failed to bind, using fallback (0x%08x)\n",
wine_dbgstr_guid(&clsidFolder),
hr);
899 clsidFolder = CLSID_ShellFSFolder;
914 TRACE (
"-- returning (%p) %08x\n", *ppvOut,
hr);
934 FIXME(
"(%p)->(pidl=%p,%p,%s,%p) stub\n",
this, pidl, pbcReserved,
955 LPWSTR pExtension1, pExtension2;
961 if (bIsFolder1 != bIsFolder2)
978 if (pData1->u.file.dwFileSize > pData2->u.file.dwFileSize)
980 else if (pData1->u.file.dwFileSize < pData2->u.file.dwFileSize)
986 result = pData1->u.file.uFileDate - pData2->u.file.uFileDate;
988 result = pData1->u.file.uFileTime - pData2->u.file.uFileTime;
1009 CComPtr<IShellView> pShellView;
1022 if (bIsDropTarget || bIsShellView)
1032 CComPtr<IPersistFolder> spFolder;
1066 dcm.
hwnd = hwndOwner;
1077 else if (bIsShellView)
1088 TRACE(
"-- (%p)->(interface=%p)\n",
this, ppvOut);
1134 ERR(
"Got and unknown pidl!\n");
1139 while (cidl > 0 && *apidl)
1145 ERR(
"Got an unknown type of pidl!!!\n");
1151 *rgfInOut &= ~SFGAO_VALIDATE;
1153 TRACE(
"-- result=0x%08x\n", *rgfInOut);
1189 TRACE (
"(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
1210 dcm.
hwnd = hwndOwner;
1255 TRACE(
"(%p)->hr=0x%08x\n",
this,
hr);
1319 if (!(
dwFlags & SHGDN_FORPARSING) &&
1350 else if (pidl && !pidl->mkid.cb)
1407 TRACE (
"(%p)->(%p,pidl=%p,%s,%u,%p)\n",
this, hwndOwner, pidl,
1413 ERR(
"Got garbage pidl:\n");
1436 if (!
wcscmp(szSrc, szDest))
1464 FIXME (
"(%p)\n",
this);
1470 FIXME (
"(%p)\n",
this);
1477 TRACE (
"(%p)\n",
this);
1490 TRACE (
"(%p)\n",
this);
1503 FIXME (
"(%p)\n",
this);
1513 TRACE (
"(%p)->(%p %i %p)\n",
this, pidl, iColumn, psd);
1559 FIXME (
"(%p)\n",
this);
1568 TRACE (
"(%p)\n",
this);
1588 TRACE (
"(%p)->(%p)\n",
this, pidl);
1615 TRACE (
"(%p)->(%p)\n",
this, pidl);
1634 TRACE(
"(%p)->(%p,%p,%p)\n",
this, pbc, pidlRootx, ppfti);
1636 TRACE(
"--%p %s %s 0x%08x 0x%08x\n",
1661 if (ppfti->
csidl != -1)
1701 FIXME(
"(%p)->(%p)\n",
this, ppfti);
1710 sprintfW(
buf,
L"ShellEx\\{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
1733 TRACE(
"CFSFolder::_GetDropTarget entered\n");
1737 CComPtr<IShellFolder> psfChild;
1742 return psfChild->CreateViewObject(
NULL, IID_IDropTarget, ppvOut);
1781 ERR(
"Got garbage pidl\n");
1788 CComPtr<IPersistFile> pp;
1793 pp->Load(wszPath, 0);
1798 ERR(
"Failed to query for interface IID_IShellExtInit hr %x pclsid %s\n",
hr,
wine_dbgstr_guid(pclsid));
1819 CComPtr<IDataObject> pDataObj;
1824 CComHeapPtr<WCHAR> wszName;
1829 ERR(
"SH_ShowPropertiesDialog failed\n");
1855 CComPtr<IStream> pStream;
1863 CComPtr<IPicture> pPicture;
1869 pPicture->get_Handle((OLE_HANDLE *)&
hbm);
1912 static LPCWSTR TheGUID =
L"{BE098140-A513-11D0-A3A4-00C04FD706EC}";
1913 static LPCWSTR Space =
L" \t\n\r\f\v";
1942 if (pchEnd && !*pchEnd)
1956 if (pchEnd && !*pchEnd)
1957 data->clrTextBack = cr;
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
HRESULT CFSDropTarget_CreateInstance(LPWSTR sPathTarget, REFIID riid, LPVOID *ppvOut)
HRESULT IDataObject_Constructor(HWND hwndOwner, PCIDLIST_ABSOLUTE pMyPidl, PCUIDLIST_RELATIVE_ARRAY apidl, UINT cidl, BOOL bExtendedObject, IDataObject **dataObject)
HRESULT WINAPI SHCreateDataObject(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IDataObject *pdtInner, REFIID riid, void **ppv)
#define SFVM_GET_CUSTOMVIEWINFO
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
#define RegCloseKey(hKey)
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
BOOL AddToEnumList(LPITEMIDLIST pidl)
virtual HRESULT WINAPI GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut)
virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid)
virtual HRESULT WINAPI GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO *ppfti)
virtual HRESULT WINAPI CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT _CreateShellExtInstance(const CLSID *pclsid, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
DWORD m_bGroupPolicyActive
virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut)
virtual HRESULT WINAPI GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv)
virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay)
HRESULT _GetIconHandler(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
HRESULT _GetDropTarget(LPCITEMIDLIST pidl, LPVOID *ppvOut)
virtual HRESULT WINAPI MapColumnToSCID(UINT column, SHCOLUMNID *pscid)
virtual HRESULT WINAPI InitializeEx(IBindCtx *pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO *ppfti)
virtual HRESULT WINAPI BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut)
virtual HRESULT WINAPI BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut)
virtual HRESULT WINAPI GetClassID(CLSID *lpClassId)
HRESULT WINAPI GetCustomViewInfo(ULONG unknown, SFVM_CUSTOMVIEWINFO_DATA *data)
virtual HRESULT WINAPI EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList)
virtual HRESULT WINAPI ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes)
virtual HRESULT WINAPI MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags)
virtual HRESULT WINAPI GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet)
virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum)
virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE *pidl)
virtual HRESULT WINAPI CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2)
virtual HRESULT WINAPI Initialize(PCIDLIST_ABSOLUTE pidl)
virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut)
virtual HRESULT WINAPI GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd)
HRESULT _CreateExtensionUIObject(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
virtual HRESULT WINAPI SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut)
HRESULT _AddFindResult(LPWSTR sParentDir, const WIN32_FIND_DATAW &FindData, DWORD dwFlags)
HRESULT WINAPI Initialize(LPWSTR sPathTarget, DWORD dwFlags)
void pdump_always(LPCITEMIDLIST pidl)
void pdump(LPCITEMIDLIST pidl)
const char * shdebugstr_guid(const struct _GUID *id)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
#define IDS_SHV_COLUMN_TYPE
#define IDS_SHV_COLUMN_NAME
#define GET_SHGDN_RELATION(dwFlags)
#define DFM_MERGECONTEXTMENU
#define DFM_INVOKECOMMAND
#define GET_SHGDN_FOR(dwFlags)
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
BOOL WINAPI _ILIsPidlSimple(LPCITEMIDLIST pidl)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
static const WCHAR *const ext[]
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI MoveFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
UINT WINAPI GetPrivateProfileIntW(LPCWSTR section, LPCWSTR entry, INT def_val, LPCWSTR filename)
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
HRESULT WINAPI OleLoadPicture(LPSTREAM lpstream, LONG lSize, BOOL fRunmode, REFIID riid, LPVOID *ppvObj)
BOOL SHELL_FS_HideExtension(LPCWSTR szPath)
static HRESULT SHELL32_GetCLSIDForDirectory(LPCWSTR pwszDir, LPCWSTR KeyName, CLSID *pclsidFolder)
#define GENERICSHELLVIEWCOLUMNS
static BOOL getShellClassInfo(LPCWSTR Entry, LPWSTR pszValue, DWORD cchValueLen, LPCWSTR IniFile)
LPITEMIDLIST SHELL32_CreatePidlFromBindCtx(IBindCtx *pbc, LPCWSTR path)
static HRESULT getIconLocationForFolder(IShellFolder *psf, PCITEMID_CHILD pidl, UINT uFlags, LPWSTR szIconFile, UINT cchMax, int *piIndex, UINT *pwFlags)
HRESULT SHELL32_GetFSItemAttributes(IShellFolder *psf, LPCITEMIDLIST pidl, LPDWORD pdwAttributes)
static HRESULT getDefaultIconLocation(LPWSTR szIconFile, UINT cchMax, int *piIndex, UINT uFlags)
HRESULT GetCLSIDForFileTypeFromExtension(LPWSTR pExtension, LPCWSTR KeyName, CLSID *pclsid)
static const shvheader GenericSFHeader[]
HRESULT GetCLSIDForFileType(PCUIDLIST_RELATIVE pidl, LPCWSTR KeyName, CLSID *pclsid)
void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags)
HRESULT CFSExtractIcon_CreateInstance(IShellFolder *psf, LPCITEMIDLIST pidl, REFIID iid, LPVOID *ppvOut)
static HBITMAP DoLoadPicture(LPCWSTR pszFileName)
HKEY OpenKeyFromFileType(LPWSTR pExtension, LPCWSTR KeyName)
LPWSTR ExtensionFromPidl(PCUIDLIST_RELATIVE pidl)
HRESULT WINAPI Shell_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdtobj)
void WINAPI SHFree(LPVOID pv)
LPVOID WINAPI SHAlloc(SIZE_T len)
HRESULT WINAPI SHCoCreateInstance(LPCWSTR aclsid, const CLSID *clsid, LPUNKNOWN pUnkOuter, REFIID refiid, LPVOID *ppv)
BOOL WINAPI SHGetSpecialFolderPathW(HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate)
HRESULT WINAPI SHCreateStreamOnFileEx(LPCWSTR lpszPath, DWORD dwMode, DWORD dwAttributes, BOOL bCreate, IStream *lpTemplate, IStream **lppStream)
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
void WINAPI PathRemoveExtensionW(LPWSTR lpszPath)
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
VOID WINAPI PathUnquoteSpacesW(LPWSTR lpszPath)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
LPWSTR WINAPI PathCombineW(LPWSTR lpszDest, LPCWSTR lpszDir, LPCWSTR lpszFile)
int WINAPI PathParseIconLocationW(LPWSTR lpszPath)
BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath)
HRESULT WINAPI SHRegGetCLSIDKeyW(REFGUID, LPCWSTR, BOOL, BOOL, PHKEY)
DWORD WINAPI SHQueryValueExW(HKEY hKey, LPCWSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
BOOL WINAPI StrTrimW(LPWSTR lpszStr, LPCWSTR lpszTrim)
WCHAR swShell32Name[MAX_PATH]
BOOL SH_ShowPropertiesDialog(LPCWSTR pwszPath, IDataObject *pDataObj)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT GetObjectParam([in] LPOLESTR pszKey, [out] IUnknown **ppunk)
HRESULT GetFindData([out] WIN32_FIND_DATAW *pfd)
HRESULT BindToObject([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
HRESULT GetAttributesOf([in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, out] SFGAOF *rgfInOut)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define COM_INTERFACE_ENTRY_IID(iid, x)
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static HANDLE ULONG_PTR dwData
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define FILE_ATTRIBUTE_READONLY
#define FILE_ATTRIBUTE_HIDDEN
#define FILE_ATTRIBUTE_SYSTEM
#define FILE_ATTRIBUTE_DIRECTORY
interface IBindCtx * LPBC
const GUID IID_IDataObject
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
BOOL _ILGetFileDate(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
DWORD _ILGetFileAttributes(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
LPPIDLDATA _ILGetDataPointer(LPCITEMIDLIST pidl)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
DWORD _ILGetFileSize(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
HRESULT _ILCreateFromPathW(LPCWSTR szPath, LPITEMIDLIST *ppidl)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
void _ILGetFileType(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
BOOL _ILIsValue(LPCITEMIDLIST pidl)
BOOL _ILIsDrive(LPCITEMIDLIST pidl)
BOOL _ILGetExtension(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
LPITEMIDLIST _ILCreateFromFindDataW(const WIN32_FIND_DATAW *wfd)
#define IsEqualIID(riid1, riid2)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
static __inline const char * wine_dbgstr_guid(const GUID *id)
BOOL HCR_GetIconW(LPCWSTR szClass, LPWSTR szDest, LPCWSTR szName, DWORD len, int *picon_idx)
#define __SHFreeAndNil(ptr)
DWORD WINAPI ParseFieldW(LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len) DECLSPEC_HIDDEN
#define CSIDL_FLAG_CREATE
#define FAILED_UNEXPECTEDLY(hr)
#define MAKE_COMPARE_HRESULT(x)
HRESULT SHELL32_BindToSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidl, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
HRESULT SHELL32_GetDisplayNameOfChild(IShellFolder2 *psf, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
HRESULT SHELL32_CompareChildren(IShellFolder2 *psf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
void AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
HRESULT SHELL32_CompareDetails(IShellFolder2 *isf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
HRESULT SHELL32_ParseNextElement(IShellFolder2 *psf, HWND hwndOwner, LPBC pbc, LPITEMIDLIST *pidlInOut, LPOLESTR szNext, DWORD *pEaten, DWORD *pdwAttributes)
void AddFSClassKeysToArray(PCUITEMID_CHILD pidl, HKEY *array, UINT *cKeys)
LPCWSTR GetNextElementW(LPCWSTR pszNext, LPWSTR pszOut, DWORD dwOut)
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
static IFileSystemBindData fsbd
#define SHCNE_RENAMEFOLDER
struct _SFV_CREATE SFV_CREATE
#define DFM_CMD_PROPERTIES
LSTATUS WINAPI SHRegGetValueW(_In_ HKEY hkey, _In_opt_ LPCWSTR pszSubKey, _In_opt_ LPCWSTR pszValue, _In_ SRRF srrfFlags, _Out_opt_ LPDWORD pdwType, _Out_writes_bytes_to_opt_(*pcbData, *pcbData) LPVOID pvData, _Inout_opt_ LPDWORD pcbData)
#define PathIsNetworkPath
#define IDS_SHV_COLUMN_SIZE
#define IDS_SHV_COLUMN_MODIFIED
#define IDI_SHELL_DOCUMENT
#define IDS_SHV_COLUMN_COMMENTS
#define IDS_SHV_COLUMN_ATTRIBUTES
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
base of all file and directory entries
WCHAR szTargetParsingName[MAX_PATH]
PIDLIST_ABSOLUTE pidlTargetFolder
WCHAR szNetworkProvider[MAX_PATH]
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
WORD WORD PSZ PSZ pszFileName
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
DWORD WINAPI GetLastError(void)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define ERROR_NO_MORE_FILES
#define HRESULT_FROM_WIN32(x)
#define HKEY_LOCAL_MACHINE
#define HKEY_CURRENT_USER
#define HKEY_CLASSES_ROOT
HMENU WINAPI CreatePopupMenu(void)
UINT WINAPI PrivateExtractIconsW(_In_reads_(MAX_PATH) LPCWSTR szFileName, _In_ int nIconIndex, _In_ int cxIcon, _In_ int cyIcon, _Out_writes_opt_(nIcons) HICON *phicon, _Out_writes_opt_(nIcons) UINT *piconid, _In_ UINT nIcons, _In_ UINT flags)
#define LR_CREATEDIBSECTION
HANDLE WINAPI CopyImage(_In_ HANDLE, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define MAKEINTRESOURCEW(i)
#define IID_PPV_ARG(Itype, ppType)