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);
139 static const WCHAR folder[] = {
'F',
'o',
'l',
'd',
'e',
'r', 0 };
147 if (
uFlags & GIL_OPENICON)
159 static const WCHAR s_shellClassInfo[] = {
'.',
'S',
'h',
'e',
'l',
'l',
'C',
'l',
'a',
's',
's',
'I',
'n',
'f',
'o', 0 };
174 static const WCHAR iconFile[] = {
'I',
'c',
'o',
'n',
'F',
'i',
'l',
'e', 0 };
175 static const WCHAR clsid[] = {
'C',
'L',
'S',
'I',
'D', 0 };
176 static const WCHAR clsid2[] = {
'C',
'L',
'S',
'I',
'D',
'2', 0 };
177 static const WCHAR iconIndex[] = {
'I',
'c',
'o',
'n',
'I',
'n',
'd',
'e',
'x', 0 };
178 static const WCHAR iconResource[] = {
'I',
'c',
'o',
'n',
'R',
'e',
's',
'o',
'u',
'r',
'c',
'e', 0 };
179 static const WCHAR wszDesktopIni[] = {
'd',
'e',
's',
'k',
't',
'o',
'p',
'.',
'i',
'n',
'i',0 };
181 if (
uFlags & GIL_DEFAULTICON)
252 CComPtr<IDefaultExtractIconInit> initIcon;
269 initIcon->SetNormalIcon(wTemp, icon_idx);
273 initIcon->SetShortcutIcon(wTemp, icon_idx);
276 pidl, GIL_DEFAULTICON, wTemp,
_countof(wTemp),
280 initIcon->SetDefaultIcon(wTemp, icon_idx);
290 pidl, GIL_OPENICON, wTemp,
_countof(wTemp),
294 initIcon->SetOpenIcon(wTemp, icon_idx);
302 WARN(
"Could not open DefaultIcon key!\n");
309 icon_idx =
_wtoi(sNum);
328 initIcon->SetNormalIcon(wTemp, icon_idx);
339 return initIcon->QueryInterface(iid, ppvOut);
356 #define SUPER_HIDDEN (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM) 378 if (!
strcmpW(FindData.cFileName,
L".") || !
strcmpW(FindData.cFileName,
L".."))
392 ERR(
"SHOULD DO SOMETHING WITH CLSID?\n");
414 TRACE(
"Treating '%S' as directory!\n", FindData.cFileName);
431 if (
dwFlags & SHCONTF_NONFOLDERS)
461 if (!sPathTarget || !sPathTarget[0])
463 WARN(
"No path for CFileSysEnum, empty result!\n");
503 TRACE(
"(%p)->(hr=0x%08x)\n",
this,
hr);
528 TRACE(
"-- destroying IShellFolder(%p)\n",
this);
544 #define GENERICSHELLVIEWCOLUMNS 6 611 ERR(
"Got wrong type of pidl!\n");
612 *pdwAttributes &= SFGAO_CANLINK;
619 dwShellAttributes = SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_CANLINK | SFGAO_CANRENAME | SFGAO_CANDELETE |
620 SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_FILESYSTEM;
655 TRACE(
"Treating '%S' as directory!\n", szFileName);
664 dwShellAttributes |= (SFGAO_FOLDER | SFGAO_STORAGE);
669 dwShellAttributes |= (SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR);
674 dwShellAttributes |= SFGAO_STREAM;
678 dwShellAttributes |= SFGAO_HIDDEN;
681 dwShellAttributes |= SFGAO_READONLY;
683 if (SFGAO_LINK & *pdwAttributes)
688 dwShellAttributes |= SFGAO_LINK;
691 if (SFGAO_HASSUBFOLDER & *pdwAttributes)
693 CComPtr<IShellFolder> psf2;
696 CComPtr<IEnumIDList> pEnumIL;
697 if (
SUCCEEDED(psf2->EnumObjects(0, SHCONTF_FOLDERS, &pEnumIL)))
699 if (pEnumIL->Skip(1) ==
S_OK)
700 dwShellAttributes |= SFGAO_HASSUBFOLDER;
705 *pdwAttributes = dwShellAttributes;
707 TRACE (
"-- 0x%08x\n", *pdwAttributes);
740 DWORD *pdwAttributes)
749 TRACE (
"(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n",
750 this, hwndOwner, pbc, lpszDisplayName,
debugstr_w (lpszDisplayName),
751 pchEaten, ppidl, pdwAttributes);
756 if (!lpszDisplayName)
767 if (*lpszDisplayName)
773 if (pidlTemp !=
NULL)
798 if (szNext && *szNext)
802 &pidlTemp, (
LPOLESTR) szNext, pchEaten, pdwAttributes);
807 if (pdwAttributes && *pdwAttributes)
818 TRACE(
"(%p)->(-- pidl=%p ret=0x%08x)\n",
this, ppidl ? *ppidl : 0,
hr);
833 LPENUMIDLIST *ppEnumIDList)
852 TRACE(
"(%p)->(pidl=%p,%p,%s,%p)\n",
this, pidl, pbc,
855 CComPtr<IShellFolder> pSF;
858 if (!
m_pidlRoot || !ppvOut || !pidl || !pidl->mkid.cb)
860 ERR(
"CFSFolder::BindToObject: Invalid parameters\n");
870 ERR(
"CFSFolder::BindToObject: Invalid pidl!\n");
886 clsidFolder = CLSID_ShellFSFolder;
904 TRACE (
"-- returning (%p) %08x\n", *ppvOut,
hr);
924 FIXME(
"(%p)->(pidl=%p,%p,%s,%p) stub\n",
this, pidl, pbcReserved,
945 LPWSTR pExtension1, pExtension2;
951 if (bIsFolder1 != bIsFolder2)
971 if (pData1->u.file.dwFileSize > pData2->u.file.dwFileSize)
973 else if (pData1->u.file.dwFileSize < pData2->u.file.dwFileSize)
979 result = pData1->u.file.uFileDate - pData2->u.file.uFileDate;
981 result = pData1->u.file.uFileTime - pData2->u.file.uFileTime;
999 CComPtr<IShellView> pShellView;
1012 if (bIsDropTarget || bIsShellView)
1022 CComPtr<IPersistFolder> spFolder;
1030 hr = spFolder->QueryInterface(
riid, ppvOut);
1056 dcm.
hwnd = hwndOwner;
1067 else if (bIsShellView)
1078 TRACE(
"-- (%p)->(interface=%p)\n",
this, ppvOut);
1124 ERR(
"Got and unknown pidl!\n");
1129 while (cidl > 0 && *apidl)
1135 ERR(
"Got an unknown type of pidl!!!\n");
1141 *rgfInOut &= ~SFGAO_VALIDATE;
1143 TRACE(
"-- result=0x%08x\n", *rgfInOut);
1179 TRACE (
"(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
1200 dcm.
hwnd = hwndOwner;
1245 TRACE(
"(%p)->hr=0x%08x\n",
this,
hr);
1249 static const WCHAR AdvancedW[] =
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced";
1300 if (!(
dwFlags & SHGDN_FORPARSING) &&
1331 else if (pidl && !pidl->mkid.cb)
1388 TRACE (
"(%p)->(%p,pidl=%p,%s,%u,%p)\n",
this, hwndOwner, pidl,
1394 ERR(
"Got garbage pidl\n");
1416 if (!
wcscmp(szSrc, szDest))
1444 FIXME (
"(%p)\n",
this);
1450 FIXME (
"(%p)\n",
this);
1457 TRACE (
"(%p)\n",
this);
1470 TRACE (
"(%p)\n",
this);
1483 FIXME (
"(%p)\n",
this);
1493 TRACE (
"(%p)->(%p %i %p)\n",
this, pidl, iColumn, psd);
1539 FIXME (
"(%p)\n",
this);
1548 TRACE (
"(%p)\n",
this);
1568 TRACE (
"(%p)->(%p)\n",
this, pidl);
1595 TRACE (
"(%p)->(%p)\n",
this, pidl);
1614 TRACE(
"(%p)->(%p,%p,%p)\n",
this, pbc, pidlRootx, ppfti);
1616 TRACE(
"--%p %s %s 0x%08x 0x%08x\n",
1641 if (ppfti->
csidl != -1)
1681 FIXME(
"(%p)->(%p)\n",
this, ppfti);
1688 static const WCHAR formatW[] = {
'S',
'h',
'e',
'l',
'l',
'E',
'x',
'\\',
1689 '{',
'%',
'0',
'8',
'x',
'-',
'%',
'0',
'4',
'x',
'-',
'%',
'0',
'4',
'x',
'-',
1690 '%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'-',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
1691 '%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'}',0};
1716 TRACE(
"CFSFolder::_GetDropTarget entered\n");
1720 CComPtr<IShellFolder> psfChild;
1725 return psfChild->CreateViewObject(
NULL, IID_IDropTarget, ppvOut);
1764 ERR(
"Got garbage pidl\n");
1770 CComPtr<IPersistFile>
pp;
1775 pp->Load(wszPath, 0);
1777 hr =
pp->QueryInterface(
riid, ppvOut);
1780 ERR(
"Failed to query for interface IID_IShellExtInit hr %x pclsid %s\n",
hr,
wine_dbgstr_guid(pclsid));
1801 ERR(
"SH_ShowPropertiesDialog failed\n");
1827 CComPtr<IStream> pStream;
1835 CComPtr<IPicture> pPicture;
1884 static LPCWSTR TheGUID =
L"{BE098140-A513-11D0-A3A4-00C04FD706EC}";
1885 static LPCWSTR Space =
L" \t\n\r\f\v";
1914 if (pchEnd && !*pchEnd)
1928 if (pchEnd && !*pchEnd)
1929 data->clrTextBack = cr;
LSTATUS WINAPI RegGetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwFlags, LPDWORD pdwType, PVOID pvData, LPDWORD pcbData)
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
#define IDS_SHV_COLUMN_COMMENTS
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
HRESULT _CreateShellExtInstance(const CLSID *pclsid, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath)
LPPIDLDATA _ILGetDataPointer(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
WCHAR szNetworkProvider[MAX_PATH]
#define HRESULT_FROM_WIN32(x)
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
HRESULT CFSDropTarget_CreateInstance(LPWSTR sPathTarget, REFIID riid, LPVOID *ppvOut)
DWORD _ILGetFileAttributes(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
virtual HRESULT WINAPI GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd)
static HRESULT getDefaultIconLocation(LPWSTR szIconFile, UINT cchMax, int *piIndex, UINT uFlags)
interface IBindCtx * LPBC
#define GET_SHGDN_RELATION(dwFlags)
#define FILE_ATTRIBUTE_SYSTEM
virtual HRESULT WINAPI EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList)
GLdouble GLdouble GLdouble r
BOOL AddToEnumList(LPITEMIDLIST pidl)
HRESULT _GetDropTarget(LPCITEMIDLIST pidl, LPVOID *ppvOut)
#define HKEY_CURRENT_USER
BOOL HCR_GetIconW(LPCWSTR szClass, LPWSTR szDest, LPCWSTR szName, DWORD len, int *picon_idx)
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
ITEMID_CHILD UNALIGNED * PUITEMID_CHILD
HRESULT WINAPI Shell_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdtobj)
void AddClassKeyToArray(const WCHAR *szClass, HKEY *array, UINT *cKeys)
#define SHCNE_RENAMEFOLDER
LPWSTR ExtensionFromPidl(PCUIDLIST_RELATIVE pidl)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
static HRESULT SHELL32_GetCLSIDForDirectory(LPCWSTR pwszDir, LPCWSTR KeyName, CLSID *pclsidFolder)
virtual HRESULT WINAPI GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv)
const char * shdebugstr_guid(const struct _GUID *id)
WCHAR swShell32Name[MAX_PATH]
static const WCHAR NeverShowExtW[]
static HANDLE ULONG_PTR dwData
const char * wine_dbgstr_guid(const GUID *guid)
#define INVALID_HANDLE_VALUE
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
DWORD WINAPI GetLastError(VOID)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
const GUID IID_IDataObject
HRESULT WINAPI Initialize(LPWSTR sPathTarget, DWORD dwFlags)
virtual HRESULT WINAPI MapColumnToSCID(UINT column, SHCOLUMNID *pscid)
#define MAKE_COMPARE_HRESULT(x)
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
static BOOL getShellClassInfo(LPCWSTR Entry, LPWSTR pszValue, DWORD cchValueLen, LPCWSTR IniFile)
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
#define PathIsNetworkPath
HRESULT SHELL32_BindToSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidl, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
HRESULT GetFindData([out] WIN32_FIND_DATAW *pfd)
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
#define IID_PPV_ARG(Itype, ppType)
virtual HRESULT WINAPI GetClassID(CLSID *lpClassId)
virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE *pidl)
#define SFVM_GET_CUSTOMVIEWINFO
#define IDS_SHV_COLUMN_TYPE
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)
static HRESULT getIconLocationForFolder(IShellFolder *psf, PCITEMID_CHILD pidl, UINT uFlags, LPWSTR szIconFile, UINT cchMax, int *piIndex, UINT *pwFlags)
BOOL WINAPI PathAppendW(LPWSTR lpszPath, LPCWSTR lpszAppend)
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
#define __SHFreeAndNil(ptr)
UINT WINAPI GetPrivateProfileIntW(LPCWSTR section, LPCWSTR entry, INT def_val, LPCWSTR filename)
#define IDS_SHV_COLUMN_SIZE
GLenum GLuint GLenum GLsizei const GLchar * buf
LONG WINAPI RegCloseKey(HKEY hKey)
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
static const WCHAR szText[]
void WINAPI PathRemoveExtensionW(LPWSTR lpszPath)
HRESULT CFSExtractIcon_CreateInstance(IShellFolder *psf, LPCITEMIDLIST pidl, REFIID iid, LPVOID *ppvOut)
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
BOOL SHELL_FS_HideExtension(LPWSTR szPath)
#define GET_SHGDN_FOR(dwFlags)
HRESULT _ILCreateFromPathW(LPCWSTR szPath, LPITEMIDLIST *ppidl)
UINT WINAPI ExtractIconExW(LPCWSTR lpszFile, INT nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons)
HRESULT SHELL32_CompareChildren(IShellFolder2 *psf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
BOOL WINAPI MoveFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName)
HANDLE WINAPI CopyImage(_In_ HANDLE, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
WORD WORD PSZ PSZ pszFileName
static HBITMAP DoLoadPicture(LPCWSTR pszFileName)
HRESULT GetAttributesOf([in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in, out] SFGAOF *rgfInOut)
DWORD _ILGetFileSize(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
BOOL _ILIsFolder(LPCITEMIDLIST pidl)
#define DFM_INVOKECOMMAND
HRESULT WINAPI OleLoadPicture(LPSTREAM lpstream, LONG lSize, BOOL fRunmode, REFIID riid, LPVOID *ppvObj)
HRESULT _AddFindResult(LPWSTR sParentDir, const WIN32_FIND_DATAW &FindData, DWORD dwFlags)
BOOL _ILGetExtension(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
HRESULT IDataObject_Constructor(HWND hwndOwner, PCIDLIST_ABSOLUTE pMyPidl, PCUIDLIST_RELATIVE_ARRAY apidl, UINT cidl, BOOL bExtendedObject, IDataObject **dataObject)
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
HRESULT BindToObject([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
HRESULT SHELL32_GetDisplayNameOfChild(IShellFolder2 *psf, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
struct _SFV_CREATE SFV_CREATE
HRESULT _GetIconHandler(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
HRESULT WINAPI SHCoCreateInstance(LPCWSTR aclsid, const CLSID *clsid, LPUNKNOWN pUnkOuter, REFIID refiid, LPVOID *ppv)
#define ERROR_FILE_NOT_FOUND
HRESULT GetObjectParam([in] LPOLESTR pszKey, [out] IUnknown **ppunk)
#define ERROR_NO_MORE_FILES
BOOL WINAPI _ILIsPidlSimple(LPCITEMIDLIST pidl)
#define FILE_ATTRIBUTE_DIRECTORY
HRESULT SHELL32_ParseNextElement(IShellFolder2 *psf, HWND hwndOwner, LPBC pbc, LPITEMIDLIST *pidlInOut, LPOLESTR szNext, DWORD *pEaten, DWORD *pdwAttributes)
HRESULT SHELL32_CompareDetails(IShellFolder2 *isf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid)
virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay)
static IFileSystemBindData fsbd
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
HRESULT WINAPI SHRegGetCLSIDKeyW(REFGUID, LPCWSTR, BOOL, BOOL, PHKEY)
DWORD m_bGroupPolicyActive
LPITEMIDLIST SHELL32_CreatePidlFromBindCtx(IBindCtx *pbc, LPCWSTR path)
#define FAILED_UNEXPECTEDLY(hr)
LSTATUS WINAPI RegQueryValueW(HKEY hkey, LPCWSTR name, LPWSTR data, LPLONG count)
#define DFM_MERGECONTEXTMENU
#define FILE_ATTRIBUTE_READONLY
WCHAR szTargetParsingName[MAX_PATH]
#define DFM_CMD_PROPERTIES
HKEY OpenKeyFromFileType(LPWSTR pExtension, LPCWSTR KeyName)
BOOL SH_ShowPropertiesDialog(LPCWSTR pwszPath, LPCITEMIDLIST pidlFolder, PCUITEMID_CHILD_ARRAY apidl)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut)
HRESULT WINAPI SHCreateStreamOnFileEx(LPCWSTR lpszPath, DWORD dwMode, DWORD dwAttributes, BOOL bCreate, IStream *lpTemplate, IStream **lppStream)
BOOL _ILIsDrive(LPCITEMIDLIST pidl)
LPCWSTR GetNextElementW(LPCWSTR pszNext, LPWSTR pszOut, DWORD dwOut)
virtual HRESULT WINAPI ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes)
DWORD WINAPI ParseFieldW(LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len) DECLSPEC_HIDDEN
virtual HRESULT WINAPI BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut)
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
#define FILE_ATTRIBUTE_NORMAL
DWORD WINAPI SHQueryValueExW(HKEY hKey, LPCWSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
BOOL _ILIsValue(LPCITEMIDLIST pidl)
WINE_DEFAULT_DEBUG_CHANNEL(shell)
#define memcpy(s1, s2, n)
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)
virtual HRESULT WINAPI GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO *ppfti)
HRESULT GetCLSIDForFileTypeFromExtension(LPWSTR pExtension, LPCWSTR KeyName, CLSID *pclsid)
#define IDS_SHV_COLUMN_MODIFIED
virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut)
static const shvheader GenericSFHeader[]
SFGAO_STORAGEANCESTOR typedef ULONG SFGAOF
BOOL WINAPI DestroyMenu(_In_ HMENU)
static const WCHAR HideFileExtW[]
int WINAPI PathParseIconLocationW(LPWSTR lpszPath)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags)
virtual HRESULT WINAPI Initialize(PCIDLIST_ABSOLUTE pidl)
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
HRESULT GetCLSIDForFileType(PCUIDLIST_RELATIVE pidl, LPCWSTR KeyName, CLSID *pclsid)
virtual HRESULT WINAPI SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut)
BOOL WINAPI SHGetSpecialFolderPathW(HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate)
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
BOOL _ILGetFileDate(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
void shell(int argc, const char *argv[])
void AddFSClassKeysToArray(PCUITEMID_CHILD pidl, HKEY *array, UINT *cKeys)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
#define COM_INTERFACE_ENTRY_IID(iid, x)
virtual HRESULT WINAPI GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet)
void pdump(LPCITEMIDLIST pidl)
#define LR_CREATEDIBSECTION
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
VOID WINAPI PathUnquoteSpacesW(LPWSTR lpszPath)
#define FILE_ATTRIBUTE_HIDDEN
#define CSIDL_FLAG_CREATE
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum)
BOOL WINAPI StrTrimW(LPWSTR lpszStr, LPCWSTR lpszTrim)
HMENU WINAPI CreatePopupMenu(void)
void WINAPI SHFree(LPVOID pv)
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
LPITEMIDLIST _ILCreateFromFindDataW(const WIN32_FIND_DATAW *wfd)
void _ILGetFileType(LPCITEMIDLIST pidl, LPSTR pOut, UINT uOutSize)
WINE_UNICODE_INLINE int strcmpW(const WCHAR *str1, const WCHAR *str2)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
virtual HRESULT WINAPI BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut)
static const WCHAR s_shellClassInfo[]
#define HKEY_CLASSES_ROOT
#define GENERICSHELLVIEWCOLUMNS
static const WCHAR AdvancedW[]
#define MAKEINTRESOURCEW(i)
virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags)
#define IDS_SHV_COLUMN_NAME
virtual HRESULT WINAPI GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
LPWSTR WINAPI PathCombineW(LPWSTR lpszDest, LPCWSTR lpszDir, LPCWSTR lpszFile)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
virtual HRESULT WINAPI InitializeEx(IBindCtx *pbc, LPCITEMIDLIST pidlRoot, const PERSIST_FOLDER_TARGET_INFO *ppfti)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
LPVOID WINAPI SHAlloc(SIZE_T len)
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
#define IDS_SHV_COLUMN_ATTRIBUTES
base of all file and directory entries
#define IsEqualIID(riid1, riid2)
HRESULT SHELL32_GetFSItemAttributes(IShellFolder *psf, LPCITEMIDLIST pidl, LPDWORD pdwAttributes)
HRESULT _CreateExtensionUIObject(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
virtual HRESULT WINAPI CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2)
PIDLIST_ABSOLUTE pidlTargetFolder
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
#define HKEY_LOCAL_MACHINE
virtual HRESULT WINAPI CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam, LPARAM lParam)
virtual HRESULT WINAPI MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL WINAPI FindClose(HANDLE hFindFile)
HRESULT WINAPI GetCustomViewInfo(ULONG unknown, SFVM_CUSTOMVIEWINFO_DATA *data)