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);
148 if (
uFlags & GIL_OPENICON)
174 if (
uFlags & GIL_DEFAULTICON)
245 CComPtr<IDefaultExtractIconInit> initIcon;
262 initIcon->SetNormalIcon(wTemp, icon_idx);
266 initIcon->SetShortcutIcon(wTemp, icon_idx);
269 pidl, GIL_DEFAULTICON, wTemp,
_countof(wTemp),
273 initIcon->SetDefaultIcon(wTemp, icon_idx);
283 pidl, GIL_OPENICON, wTemp,
_countof(wTemp),
287 initIcon->SetOpenIcon(wTemp, icon_idx);
295 WARN(
"Could not open DefaultIcon key!\n");
302 icon_idx =
_wtoi(sNum);
324 initIcon->SetNormalIcon(wTemp, icon_idx);
335 return initIcon->QueryInterface(iid, ppvOut);
352#define SUPER_HIDDEN (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM)
374 if (!
strcmpW(FindData.cFileName,
L".") || !
strcmpW(FindData.cFileName,
L".."))
388 ERR(
"Got CLSID override for '%S'\n", Tmp);
410 TRACE(
"Treating '%S' as directory!\n", FindData.cFileName);
427 if (
dwFlags & SHCONTF_NONFOLDERS)
457 if (!sPathTarget || !sPathTarget[0])
459 WARN(
"No path for CFileSysEnum, empty result!\n");
499 TRACE(
"(%p)->(hr=0x%08x)\n",
this,
hr);
524 TRACE(
"-- destroying IShellFolder(%p)\n",
this);
540#define GENERICSHELLVIEWCOLUMNS 6
608 ERR(
"Got wrong type of pidl!\n");
609 *pdwAttributes &= SFGAO_CANLINK;
616 dwShellAttributes = SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_CANLINK | SFGAO_CANRENAME | SFGAO_CANDELETE |
617 SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_FILESYSTEM;
652 TRACE(
"Treating '%S' as directory!\n", szFileName);
661 dwShellAttributes |= (SFGAO_FOLDER | SFGAO_STORAGE);
666 dwShellAttributes |= (SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR);
671 dwShellAttributes |= SFGAO_STREAM;
675 dwShellAttributes |= SFGAO_HIDDEN;
678 dwShellAttributes |= SFGAO_READONLY;
680 if (SFGAO_LINK & *pdwAttributes)
685 dwShellAttributes |= SFGAO_LINK;
688 if (SFGAO_HASSUBFOLDER & *pdwAttributes)
690 CComPtr<IShellFolder> psf2;
693 CComPtr<IEnumIDList> pEnumIL;
694 if (
SUCCEEDED(psf2->EnumObjects(0, SHCONTF_FOLDERS, &pEnumIL)))
696 if (pEnumIL->Skip(1) ==
S_OK)
697 dwShellAttributes |= SFGAO_HASSUBFOLDER;
702 *pdwAttributes = dwShellAttributes;
704 TRACE (
"-- 0x%08x\n", *pdwAttributes);
737 DWORD *pdwAttributes)
746 TRACE (
"(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n",
747 this, hwndOwner, pbc, lpszDisplayName,
debugstr_w (lpszDisplayName),
748 pchEaten, ppidl, pdwAttributes);
753 if (!lpszDisplayName)
764 if (*lpszDisplayName)
770 if (pidlTemp !=
NULL)
795 if (szNext && *szNext)
799 &pidlTemp, (
LPOLESTR) szNext, pchEaten, pdwAttributes);
804 if (pdwAttributes && *pdwAttributes)
815 TRACE(
"(%p)->(-- pidl=%p ret=0x%08x)\n",
this, ppidl ? *ppidl : 0,
hr);
830 LPENUMIDLIST *ppEnumIDList)
849 TRACE(
"(%p)->(pidl=%p,%p,%s,%p)\n",
this, pidl, pbc,
852 CComPtr<IShellFolder> pSF;
855 if (!
m_pidlRoot || !ppvOut || !pidl || !pidl->mkid.cb)
857 ERR(
"CFSFolder::BindToObject: Invalid parameters\n");
867 ERR(
"CFSFolder::BindToObject: Invalid pidl!\n");
898 ERR(
"CFSFolder::BindToObject: %s failed to bind, using fallback (0x%08x)\n",
wine_dbgstr_guid(&clsidFolder),
hr);
902 clsidFolder = CLSID_ShellFSFolder;
917 TRACE (
"-- returning (%p) %08x\n", *ppvOut,
hr);
937 FIXME(
"(%p)->(pidl=%p,%p,%s,%p) stub\n",
this, pidl, pbcReserved,
958 LPWSTR pExtension1, pExtension2;
964 if (bIsFolder1 != bIsFolder2)
981 if (pData1->u.file.dwFileSize > pData2->u.file.dwFileSize)
983 else if (pData1->u.file.dwFileSize < pData2->u.file.dwFileSize)
989 result = pData1->u.file.uFileDate - pData2->u.file.uFileDate;
991 result = pData1->u.file.uFileTime - pData2->u.file.uFileTime;
1012 CComPtr<IShellView> pShellView;
1025 if (bIsDropTarget || bIsShellView)
1035 CComPtr<IPersistFolder> spFolder;
1069 dcm.
hwnd = hwndOwner;
1080 else if (bIsShellView)
1091 TRACE(
"-- (%p)->(interface=%p)\n",
this, ppvOut);
1137 ERR(
"Got and unknown pidl!\n");
1142 while (cidl > 0 && *apidl)
1148 ERR(
"Got an unknown type of pidl!!!\n");
1154 *rgfInOut &= ~SFGAO_VALIDATE;
1156 TRACE(
"-- result=0x%08x\n", *rgfInOut);
1192 TRACE (
"(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
1213 dcm.
hwnd = hwndOwner;
1258 TRACE(
"(%p)->hr=0x%08x\n",
this,
hr);
1322 if (!(
dwFlags & SHGDN_FORPARSING) &&
1353 else if (pidl && !pidl->mkid.cb)
1410 TRACE (
"(%p)->(%p,pidl=%p,%s,%u,%p)\n",
this, hwndOwner, pidl,
1416 ERR(
"Got garbage pidl:\n");
1439 if (!
wcscmp(szSrc, szDest))
1467 FIXME (
"(%p)\n",
this);
1473 FIXME (
"(%p)\n",
this);
1480 TRACE (
"(%p)\n",
this);
1493 TRACE (
"(%p)\n",
this);
1506 FIXME (
"(%p)\n",
this);
1516 TRACE (
"(%p)->(%p %i %p)\n",
this, pidl, iColumn, psd);
1562 FIXME (
"(%p)\n",
this);
1571 TRACE (
"(%p)\n",
this);
1591 TRACE (
"(%p)->(%p)\n",
this, pidl);
1618 TRACE (
"(%p)->(%p)\n",
this, pidl);
1637 TRACE(
"(%p)->(%p,%p,%p)\n",
this, pbc, pidlRootx, ppfti);
1639 TRACE(
"--%p %s %s 0x%08x 0x%08x\n",
1664 if (ppfti->
csidl != -1)
1704 FIXME(
"(%p)->(%p)\n",
this, ppfti);
1713 sprintfW(
buf,
L"ShellEx\\{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
1736 TRACE(
"CFSFolder::_GetDropTarget entered\n");
1740 CComPtr<IShellFolder> psfChild;
1745 return psfChild->CreateViewObject(
NULL, IID_IDropTarget, ppvOut);
1784 ERR(
"Got garbage pidl\n");
1791 CComPtr<IPersistFile> pp;
1796 pp->Load(wszPath, 0);
1801 ERR(
"Failed to query for interface IID_IShellExtInit hr %x pclsid %s\n",
hr,
wine_dbgstr_guid(pclsid));
1822 CComPtr<IDataObject> pDataObj;
1827 CComHeapPtr<WCHAR> wszName;
1832 ERR(
"SH_ShowPropertiesDialog failed\n");
1858 CComPtr<IStream> pStream;
1866 CComPtr<IPicture> pPicture;
1872 pPicture->get_Handle((OLE_HANDLE *)&
hbm);
1915 static LPCWSTR TheGUID =
L"{BE098140-A513-11D0-A3A4-00C04FD706EC}";
1916 static LPCWSTR Space =
L" \t\n\r\f\v";
1945 if (pchEnd && !*pchEnd)
1959 if (pchEnd && !*pchEnd)
1960 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)
STDMETHOD() GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
STDMETHOD() CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam) override
STDMETHOD() Initialize(PCIDLIST_ABSOLUTE pidl) override
STDMETHOD() EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) override
HRESULT _CreateShellExtInstance(const CLSID *pclsid, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
STDMETHOD() SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut) override
DWORD m_bGroupPolicyActive
HRESULT _GetIconHandler(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
STDMETHOD() GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut) override
STDMETHOD() CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2) override
STDMETHOD() GetCurFolder(PIDLIST_ABSOLUTE *pidl) override
STDMETHOD() GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut) override
HRESULT _GetDropTarget(LPCITEMIDLIST pidl, LPVOID *ppvOut)
STDMETHOD() MapColumnToSCID(UINT column, SHCOLUMNID *pscid) override
STDMETHOD() BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes) override
STDMETHOD() InitializeEx(IBindCtx *pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO *ppfti) override
STDMETHOD() GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags) override
HRESULT WINAPI GetCustomViewInfo(ULONG unknown, SFVM_CUSTOMVIEWINFO_DATA *data)
STDMETHOD() MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) override
STDMETHOD() GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO *ppfti) override
STDMETHOD() GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv) override
STDMETHOD() EnumSearches(IEnumExtraSearch **ppenum) override
STDMETHOD() GetDefaultSearchGUID(GUID *pguid) override
STDMETHOD() GetClassID(CLSID *lpClassId) override
STDMETHOD() CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay) override
STDMETHOD() BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
HRESULT _CreateExtensionUIObject(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
STDMETHOD() GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd) override
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[]
#define FAILED_UNEXPECTEDLY(hr)
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 PathFindExtensionW(LPCWSTR lpszPath)
void WINAPI PathRemoveExtensionW(LPWSTR lpszPath)
VOID WINAPI PathUnquoteSpacesW(LPWSTR lpszPath)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
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
#define PathAddBackslashW
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 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)