34 ERR(
"Invalid pidl!\n");
41 ERR(
"Invalid pidl!\n");
46 if (!pExtension || *pExtension ==
NULL)
63 WARN(
"Failed to get progid for file %S, extension %S (%x), address %x, pidl: %x, error %d\n", pDataW->
wszName, pExtension, pExtension, &
dwSize, pidl,
res);
73 WARN(
"Could not open key %S for extension %S\n",
KeyName, pExtension);
83 WARN(
"OpenKeyFromFileType failed for key %S\n",
KeyName);
93 ERR(
"OpenKeyFromFileType succeeded but RegGetValueW failed\n");
100 L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved",
108 ERR(
"DropHandler extension %S not approved\n", wszName);
115 L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Blocked",
122 ERR(
"Extension %S not approved\n", wszCLSIDValue);
136 static const WCHAR folder[] = {
'F',
'o',
'l',
'd',
'e',
'r', 0 };
144 if (
uFlags & GIL_OPENICON)
156 static const WCHAR s_shellClassInfo[] = {
'.',
'S',
'h',
'e',
'l',
'l',
'C',
'l',
'a',
's',
's',
'I',
'n',
'f',
'o', 0 };
171 static const WCHAR iconFile[] = {
'I',
'c',
'o',
'n',
'F',
'i',
'l',
'e', 0 };
172 static const WCHAR clsid[] = {
'C',
'L',
'S',
'I',
'D', 0 };
173 static const WCHAR clsid2[] = {
'C',
'L',
'S',
'I',
'D',
'2', 0 };
174 static const WCHAR iconIndex[] = {
'I',
'c',
'o',
'n',
'I',
'n',
'd',
'e',
'x', 0 };
175 static const WCHAR iconResource[] = {
'I',
'c',
'o',
'n',
'R',
'e',
's',
'o',
'u',
'r',
'c',
'e', 0 };
176 static const WCHAR wszDesktopIni[] = {
'd',
'e',
's',
'k',
't',
'o',
'p',
'.',
'i',
'n',
'i',0 };
178 if (
uFlags & GIL_DEFAULTICON)
249 CComPtr<IDefaultExtractIconInit> initIcon;
266 initIcon->SetNormalIcon(wTemp, icon_idx);
270 initIcon->SetShortcutIcon(wTemp, icon_idx);
273 pidl, GIL_DEFAULTICON, wTemp,
_countof(wTemp),
277 initIcon->SetDefaultIcon(wTemp, icon_idx);
287 pidl, GIL_OPENICON, wTemp,
_countof(wTemp),
291 initIcon->SetOpenIcon(wTemp, icon_idx);
298 WARN(
"Could not open DefaultIcon key!\n");
305 icon_idx =
_wtoi(sNum);
324 initIcon->SetNormalIcon(wTemp, icon_idx);
335 return initIcon->QueryInterface(iid, ppvOut);
377 static const WCHAR stars[] = {
'*',
'.',
'*',0 };
378 static const WCHAR dot[] = {
'.',0 };
379 static const WCHAR dotdot[] = {
'.',
'.',0 };
383 if(!lpszPath || !lpszPath[0])
return FALSE;
394 #define HIDDEN FILE_ATTRIBUTE_HIDDEN 395 #define SUPER_HIDDEN (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM) 399 if ((stffile.dwFileAttributes &
HIDDEN) == 0 ||
400 ((
dwFlags & SHCONTF_INCLUDEHIDDEN) &&
402 ((
dwFlags & SHCONTF_INCLUDESUPERHIDDEN) &&
409 strcmpW(stffile.cFileName, dot) &&
strcmpW(stffile.cFileName, dotdot))
415 &&
dwFlags & SHCONTF_NONFOLDERS)
431 }
while (succeeded && !findFinished);
448 TRACE(
"-- destroying IShellFolder(%p)\n",
this);
464 #define GENERICSHELLVIEWCOLUMNS 6 531 ERR(
"Got wrong type of pidl!\n");
532 *pdwAttributes &= SFGAO_CANLINK;
539 dwShellAttributes = SFGAO_CANCOPY | SFGAO_CANMOVE | SFGAO_CANLINK | SFGAO_CANRENAME | SFGAO_CANDELETE |
540 SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_FILESYSTEM;
543 dwShellAttributes |= (SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR | SFGAO_STORAGE);
545 dwShellAttributes |= SFGAO_STREAM;
548 dwShellAttributes |= SFGAO_HIDDEN;
551 dwShellAttributes |= SFGAO_READONLY;
553 if (SFGAO_LINK & *pdwAttributes)
558 dwShellAttributes |= SFGAO_LINK;
561 if (SFGAO_HASSUBFOLDER & *pdwAttributes)
563 CComPtr<IShellFolder> psf2;
566 CComPtr<IEnumIDList> pEnumIL;
567 if (
SUCCEEDED(psf2->EnumObjects(0, SHCONTF_FOLDERS, &pEnumIL)))
569 if (pEnumIL->Skip(1) ==
S_OK)
570 dwShellAttributes |= SFGAO_HASSUBFOLDER;
575 *pdwAttributes = dwShellAttributes;
577 TRACE (
"-- 0x%08x\n", *pdwAttributes);
610 DWORD *pdwAttributes)
619 TRACE (
"(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n",
620 this, hwndOwner, pbc, lpszDisplayName,
debugstr_w (lpszDisplayName),
621 pchEaten, ppidl, pdwAttributes);
626 if (!lpszDisplayName)
637 if (*lpszDisplayName)
643 if (pidlTemp !=
NULL)
668 if (szNext && *szNext)
672 &pidlTemp, (
LPOLESTR) szNext, pchEaten, pdwAttributes);
677 if (pdwAttributes && *pdwAttributes)
688 TRACE(
"(%p)->(-- pidl=%p ret=0x%08x)\n",
this, ppidl ? *ppidl : 0,
hr);
703 LPENUMIDLIST *ppEnumIDList)
722 TRACE(
"(%p)->(pidl=%p,%p,%s,%p)\n",
this, pidl, pbc,
725 CComPtr<IShellFolder> pSF;
728 if (!
m_pidlRoot || !ppvOut || !pidl || !pidl->mkid.cb)
730 ERR(
"CFSFolder::BindToObject: Invalid parameters\n");
740 ERR(
"CFSFolder::BindToObject: Invalid pidl!\n");
756 clsidFolder = CLSID_ShellFSFolder;
774 TRACE (
"-- returning (%p) %08x\n", *ppvOut,
hr);
794 FIXME(
"(%p)->(pidl=%p,%p,%s,%p) stub\n",
this, pidl, pbcReserved,
815 LPWSTR pExtension1, pExtension2;
821 if (bIsFolder1 != bIsFolder2)
841 result = pData1->u.file.dwFileSize - pData2->u.file.dwFileSize;
844 result = pData1->u.file.uFileDate - pData2->u.file.uFileDate;
846 result = pData1->u.file.uFileTime - pData2->u.file.uFileTime;
864 CComPtr<IShellView> pShellView;
877 if (bIsDropTarget || bIsShellView)
887 CComPtr<IPersistFolder> spFolder;
895 hr = spFolder->QueryInterface(
riid, ppvOut);
921 dcm.
hwnd = hwndOwner;
932 else if (bIsShellView)
943 TRACE(
"-- (%p)->(interface=%p)\n",
this, ppvOut);
989 ERR(
"Got and unknown pidl!\n");
994 while (cidl > 0 && *apidl)
1000 ERR(
"Got an unknown type of pidl!!!\n");
1006 *rgfInOut &= ~SFGAO_VALIDATE;
1008 TRACE(
"-- result=0x%08x\n", *rgfInOut);
1044 TRACE (
"(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
1065 dcm.
hwnd = hwndOwner;
1110 TRACE(
"(%p)->hr=0x%08x\n",
this,
hr);
1114 static const WCHAR AdvancedW[] =
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced";
1165 if (!(
dwFlags & SHGDN_FORPARSING) &&
1196 else if (pidl && !pidl->mkid.cb)
1253 TRACE (
"(%p)->(%p,pidl=%p,%s,%u,%p)\n",
this, hwndOwner, pidl,
1259 ERR(
"Got garbage pidl\n");
1281 if (!
wcscmp(szSrc, szDest))
1309 FIXME (
"(%p)\n",
this);
1315 FIXME (
"(%p)\n",
this);
1322 TRACE (
"(%p)\n",
this);
1335 TRACE (
"(%p)\n",
this);
1348 FIXME (
"(%p)\n",
this);
1358 TRACE (
"(%p)->(%p %i %p)\n",
this, pidl, iColumn, psd);
1404 FIXME (
"(%p)\n",
this);
1413 TRACE (
"(%p)\n",
this);
1433 TRACE (
"(%p)->(%p)\n",
this, pidl);
1460 TRACE (
"(%p)->(%p)\n",
this, pidl);
1479 TRACE(
"(%p)->(%p,%p,%p)\n",
this, pbc, pidlRootx, ppfti);
1481 TRACE(
"--%p %s %s 0x%08x 0x%08x\n",
1506 if (ppfti->
csidl != -1)
1546 FIXME(
"(%p)->(%p)\n",
this, ppfti);
1553 static const WCHAR formatW[] = {
'S',
'h',
'e',
'l',
'l',
'E',
'x',
'\\',
1554 '{',
'%',
'0',
'8',
'x',
'-',
'%',
'0',
'4',
'x',
'-',
'%',
'0',
'4',
'x',
'-',
1555 '%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'-',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
1556 '%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'}',0};
1581 TRACE(
"CFSFolder::_GetDropTarget entered\n");
1585 CComPtr<IShellFolder> psfChild;
1590 return psfChild->CreateViewObject(
NULL, IID_IDropTarget, ppvOut);
1629 ERR(
"Got garbage pidl\n");
1635 CComPtr<IPersistFile>
pp;
1640 pp->Load(wszPath, 0);
1642 hr =
pp->QueryInterface(
riid, ppvOut);
1645 ERR(
"Failed to query for interface IID_IShellExtInit hr %x pclsid %s\n",
hr,
wine_dbgstr_guid(pclsid));
1666 ERR(
"SH_ShowPropertiesDialog failed\n");
1692 CComPtr<IStream> pStream;
1700 CComPtr<IPicture> pPicture;
1749 static LPCWSTR TheGUID =
L"{BE098140-A513-11D0-A3A4-00C04FD706EC}";
1750 static LPCWSTR Space =
L" \t\n\r\f\v";
1779 if (pchEnd && !*pchEnd)
1793 if (pchEnd && !*pchEnd)
1794 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)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING KeyName
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)
GLenum GLuint GLenum GLsizei const GLchar * buf
#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
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
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)
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)
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)
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)
HKEY OpenKeyFromFileType(PCUIDLIST_RELATIVE pidl, LPCWSTR KeyName)
#define DFM_MERGECONTEXTMENU
#define FILE_ATTRIBUTE_READONLY
WCHAR szTargetParsingName[MAX_PATH]
#define DFM_CMD_PROPERTIES
BOOL SH_ShowPropertiesDialog(LPCWSTR pwszPath, LPCITEMIDLIST pidlFolder, PCUITEMID_CHILD_ARRAY apidl)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
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)
#define FILE_ATTRIBUTE_NORMAL
DWORD WINAPI SHQueryValueExW(HKEY hKey, LPCWSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
LPITEMIDLIST pidlTargetFolder
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
BOOL _ILIsValue(LPCITEMIDLIST pidl)
WINE_DEFAULT_DEBUG_CHANNEL(shell)
#define memcpy(s1, s2, n)
virtual HRESULT WINAPI GetFolderTargetInfo(PERSIST_FOLDER_TARGET_INFO *ppfti)
void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
#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)
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)