53#define COLUMN_DELFROM 1
54#define COLUMN_DATEDEL 2
59#define COLUMNS_COUNT 6
64#define BBITEMFILETYPE (PT_FS | PT_FS_UNICODE_FLAG | PT_FS_FILE_FLAG)
65#define BBITEMFOLDERTYPE (PT_FS | PT_FS_UNICODE_FLAG | PT_FS_FOLDER_FLAG)
91 const UINT minstringsize =
sizeof(
L"X") +
sizeof(
"");
111 SIZE_T cbFSNames = cbName +
sizeof(
"") + 1;
168 return Data.OriginalLocation;
239 CComPtr<IEnumIDList> spEnumFiles;
241 CComHeapPtr<ITEMIDLIST> spPidl;
243 return FAILED(
hr) || spEnumFiles->Next(1, &spPidl, &itemcount) !=
S_OK;
274 info.LastModification = pFind->ftLastWriteTime;
276 info.FileSize = pFind->nFileSizeLow;
277 info.Attributes = pFind->dwFileAttributes;
290 CComPtr<IShellFolder> pSF;
306 ERR(
"Recycler could not retrieve the icon, this shouldn't happen\n");
315 public CComObjectRootEx<CComMultiThreadModelNoCS>,
368 if (
dwFlags & SHCONTF_NONFOLDERS)
370 TRACE(
"Starting Enumeration\n");
374 WARN(
"Error: EnumerateCRecycleBinW failed\n");
444 TRACE(
"(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n",
this, hMenu, indexMenu, idCmdFirst, idCmdLast,
uFlags);
449 idHigh =
max(idHigh,
id);
455 idHigh =
max(idHigh,
id);
462 idHigh =
max(idHigh,
id);
469 idHigh =
max(idHigh,
id);
478 if (lpcmi->fMask & CMIC_MASK_FLAG_NO_UI)
494 TRACE(
"(%p)->(invcom=%p verb=%p wnd=%p)\n",
this, lpcmi, lpcmi->
lpVerb, lpcmi->
hwnd);
529 FIXME(
"implement cut\n");
535 FIXME(
"implement properties\n");
544 TRACE(
"(%p)->(idcom=%lx flags=%x %p name=%p len=%x)\n",
this, idCommand,
uFlags,
lpReserved, lpszName, uMaxNameLen);
550 TRACE(
"CRecycleBin_IContextMenu2Item_HandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",
this, uMsg,
wParam,
lParam);
582 PERSIST_FOLDER_TARGET_INFO pfti = {};
587 CComHeapPtr<ITEMIDLIST> pidlRoot;
607 TRACE(
"(%p, %p)\n",
this, pClassID);
608 if (pClassID ==
NULL)
620 if (this->pidl ==
NULL)
637 ULONG *pdwAttributes)
689 if (pData1 && pData2)
703 hr = pSF->CompareIDs(
lParam, pidl1, pidl2);
743 CComPtr<IShellView> pShellView;
769 TRACE (
"-- (%p)->(interface=%p)\n",
this,
ppv);
777 TRACE(
"(%p, %d, {%p, ...}, {%x})\n",
this, cidl, apidl ? apidl[0] :
NULL, (
unsigned int)*rgfInOut);
779 const SFGAOF ThisFolder = SFGAO_FOLDER | SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_CANRENAME | SFGAO_CANLINK;
782 *rgfInOut &= ThisFolder;
784 *rgfInOut &= ~SFGAO_HASPROPSHEET;
787 SFGAOF remain = SFGAO_LINK & *rgfInOut;
788 *rgfInOut &= remain | SFGAO_HASPROPSHEET | SFGAO_CANDELETE | SFGAO_FILESYSTEM;
793 hr = pSF->GetAttributesOf(1, &apidl[
i], rgfInOut);
806 TRACE (
"(%p)->(%p,%u,apidl=%p, %p %p)\n",
this,
807 hwndOwner, cidl, apidl, prgfInOut,
ppv);
813 assert(!cidl || (apidl && apidl[0]));
818 hr = ShellObjectCreatorInit<CRecycleBinItemContextMenu>(apidl[0],
riid, &pObj);
835 TRACE (
"(%p)->hr=0x%08x\n",
this,
hr);
869 pName->cStr[0] =
'\0';
895 TRACE(
"(%p, %x, %p, %p)\n",
this, (
unsigned int)
dwReserved, pSort, pDisplay);
905 TRACE(
"(%p, %d, %p)\n",
this, iColumn, pcsFlags);
925 TRACE(
"(%p, %p, %d, %p)\n",
this,
pidl, iColumn, pDetails);
967 return SHSetStrRet(&pDetails->
str,
buffer);
972 TRACE(
"(%p, %d, %p)\n",
this, iColumn, pscid);
994 TRACE(
"QueryContextMenu %p %p %u %u %u %u\n",
this, hMenu, indexMenu, idCmdFirst, idCmdLast,
uFlags );
1005 idHigh =
max(idHigh,
id);
1011 idHigh =
max(idHigh,
id);
1031 CComPtr<IShellView> pSV;
1033 if (lpSB &&
SUCCEEDED(lpSB->QueryActiveShellView(&pSV)))
1063 FIXME(
"%p %lu %p %lu\n",
this, uPageID, pfnReplaceWith,
lParam);
1074 TRACE(
"%p %p %p %p\n",
this, pidlFolder, pdtobj, hkeyProgID );
1088 DWORD dwNukeOnDelete, dwType, VolSerialNumber, MaxComponentLength;
1092 WCHAR szKey[150] =
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\BitBucket\\Volume\\";
1094 if (wszPath[1] !=
L':')
1102 StringCbCopyW(wszRootPathName,
sizeof(wszRootPathName), wszPath);
1123 ERR(
"RegCreateKeyExW failed\n");
1138 dwSize =
sizeof(dwNukeOnDelete);
1150 BOOL bCanTrash = !dwNukeOnDelete;
1172 L"AppEvents\\Schemes\\Apps\\Explorer\\EmptyRecycleBin\\.Current",
1184 lError = regKey.QueryValue(
NULL, &dwType, pszValue, &
dwSize);
1200 else if (dwType ==
REG_SZ)
1272 LPENUMIDLIST penumFiles;
1293 hr = pRecycleBin->
EnumObjects(
hwnd, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &penumFiles);
1303 while (penumFiles->Next(1, &pidl,
NULL) ==
S_OK)
1310 penumFiles->Release();
1397 if (!pszRootPath || (pszRootPath[0] == 0) ||
1406 CComPtr<IRecycleBin> spRecycleBin;
1411 CComPtr<IRecycleBinEnumList> spEnumList;
1412 hr = spRecycleBin->EnumObjects(&spEnumList);
1418 CComPtr<IRecycleBinFile> spFile;
1419 hr = spEnumList->Next(1, &spFile,
NULL);
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
static HRESULT SHELL32_CoCreateInitSF(LPCITEMIDLIST pidlRoot, PERSIST_FOLDER_TARGET_INFO *ppfti, LPCITEMIDLIST pidlChild, const GUID *clsid, REFIID riid, LPVOID *ppvOut)
static BOOL IsRecycleBinEmpty(IShellFolder *pSF)
static BOOL IsFolder(LPCITEMIDLIST pidl)
EXTERN_C void CRecycleBin_NotifyRecycled(LPCWSTR OrigPath, const WIN32_FIND_DATAW *pFind, const RECYCLEBINFILEIDENTITY *pFI)
static HRESULT CRecyclerExtractIcon_CreateInstance(IShellFolder &FSFolder, LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppvOut)
static HDELFILE GetRecycleBinFileHandleFromItem(const BBITEMDATA &Data)
static void CRecycleBin_ChangeNotifyBBItem(_In_ LONG Event, _In_opt_ LPCITEMIDLIST BBItem)
static const CMVERBMAP g_BBFolderVerbMap[]
static void CRecycleBin_NotifyRemovedFromRecycleBin(LPCITEMIDLIST BBItem)
static LPCWSTR GetItemRecycledFileName(LPCITEMIDLIST pidl, const BBITEMDATA &Data)
HRESULT WINAPI SHQueryRecycleBinA(LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo)
static HRESULT CompareCanonical(const BBITEMDATA &Data1, const BBITEMDATA &Data2)
static const columninfo RecycleBinColumns[]
BOOL TRASH_TrashFile(LPCWSTR wszPath)
static LPITEMIDLIST CreateItem(LPCWSTR pszTrash, LPCWSTR pszOrig, const DELETED_FILE_INFO &Details)
static LPCWSTR GetItemOriginalFileName(const BBITEMDATA &Data)
static HRESULT GetItemTypeName(PCUITEMID_CHILD pidl, const BBITEMDATA &Data, SHFILEINFOW &shfi)
HRESULT WINAPI SHEmptyRecycleBinA(HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags)
static LPCWSTR GetGlobalRecycleBinPath()
static int GetItemDriveNumber(LPCITEMIDLIST pidl)
HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo)
static const CMVERBMAP g_BBItemVerbMap[]
EXTERN_C HRESULT WINAPI SHUpdateRecycleBinIcon(void)
static LPCWSTR GetItemOriginalFullPath(const BBITEMDATA &Data)
static BOOL ConfirmDelete(LPCMINVOKECOMMANDINFO lpcmi, UINT cidl, LPCITEMIDLIST pidl, const BBITEMDATA &Data)
static HRESULT GetItemOriginalFolder(const BBITEMDATA &Data, LPWSTR &Out)
HRESULT WINAPI SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags)
static BBITEMDATA * ValidateItem(LPCITEMIDLIST pidl)
BOOL TRASH_CanTrashFile(LPCWSTR wszPath)
static LPCWSTR GetItemRecycledFullPath(const BBITEMDATA &Data)
static UINT GetItemFileSize(LPCITEMIDLIST pidl)
static UINT GetDefaultRecycleDriveNumber()
static void TRASH_PlayEmptyRecycleBinSound()
HRESULT CRecyclerDropTarget_CreateInstance(REFIID riid, LPVOID *ppvOut)
#define shell32_hInstance
static DWORD const LPVOID const lpReserved
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define RegCloseKey(hKey)
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
BOOL AddToEnumList(LPITEMIDLIST pidl)
static int CompareUiStrings(LPCWSTR a, LPCWSTR b)
static HRESULT CompareSortFoldersFirst(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
static HRESULT FormatSize(UINT64 size, LPWSTR Buf, UINT cchBuf)
static HRESULT FormatDateTime(const FILETIME &ft, LPWSTR Buf, UINT cchBuf)
bool AllocateBytes(_In_ size_t nBytes)
bool Allocate(_In_ size_t nElements=1)
BOOL CBEnumRecycleBin(IN HDELFILE hDeletedFile)
HRESULT WINAPI Initialize(DWORD dwFlags)
static BOOL CALLBACK CBEnumRecycleBin(IN PVOID Context, IN HDELFILE hDeletedFile)
STDMETHOD() GetDefaultSearchGUID(GUID *pguid) override
STDMETHOD() BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() AddPages(LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam) override
STDMETHOD() SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut) override
STDMETHOD() GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut) override
STDMETHOD() EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList) override
STDMETHOD() GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet) override
STDMETHOD() GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut) override
STDMETHOD() GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd) override
STDMETHOD() InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) override
STDMETHOD() GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv) override
STDMETHOD() CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut) override
STDMETHOD() GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay) override
STDMETHOD() MapColumnToSCID(UINT column, SHCOLUMNID *pscid) override
STDMETHOD() GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen) override
IShellFolder * m_pFSFolders[RECYCLEBINMAXDRIVECOUNT]
static REFCLSID GetClassID()
STDMETHOD() GetCurFolder(PIDLIST_ABSOLUTE *pidl) override
STDMETHOD() ReplacePage(EXPPS uPageID, LPFNSVADDPROPSHEETPAGE pfnReplaceWith, LPARAM lParam) override
STDMETHOD() CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2) override
STDMETHOD() ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes) override
IShellFolder * GetFSFolderForItem(LPCITEMIDLIST pidl)
STDMETHOD() EnumSearches(IEnumExtraSearch **ppenum) override
STDMETHOD() Initialize(PCIDLIST_ABSOLUTE pidl) override
STDMETHOD() QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
STDMETHOD() GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags) override
#define IDS_SHV_COLUMN_TYPE
#define IDS_SHV_COLUMN_NAME
#define SHCIDS_CANONICALONLY
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 RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
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)
#define ERROR_NOT_SUPPORTED
#define HeapFree(x, y, z)
#define MultiByteToWideChar
#define FAILED_UNEXPECTEDLY(hr)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
BOOL WINAPI GetVolumeInformationW(IN LPCWSTR lpRootPathName, IN LPWSTR lpVolumeNameBuffer, IN DWORD nVolumeNameSize, OUT LPDWORD lpVolumeSerialNumber OPTIONAL, OUT LPDWORD lpMaximumComponentLength OPTIONAL, OUT LPDWORD lpFileSystemFlags OPTIONAL, OUT LPWSTR lpFileSystemNameBuffer OPTIONAL, IN DWORD nFileSystemNameSize)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
BOOL WINAPI FileTimeToDosDateTime(IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime)
void SHELL_FS_ProcessDisplayFilename(LPWSTR szPath, DWORD dwFlags)
EXTERN_C HRESULT SHBindToObject(_In_opt_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ REFIID riid, _Out_ void **ppvObj)
BOOL WINAPI EnumerateRecycleBinW(IN LPCWSTR pszRoot OPTIONAL, IN PENUMERATE_RECYCLEBIN_CALLBACK pFnCallback, IN PVOID Context OPTIONAL)
EXTERN_C HRESULT GetRecycleBinPathFromDriveNumber(UINT Drive, LPWSTR Path)
EXTERN_C HRESULT GetDefaultRecycleBin(IN LPCWSTR pszVolume OPTIONAL, OUT IRecycleBin **pprb)
BOOL WINAPI CloseRecycleBinHandle(IN HDELFILE hDeletedFile)
BOOL WINAPI DeleteFileInRecycleBin(IN HDELFILE hDeletedFile)
BOOL WINAPI RestoreFileFromRecycleBin(IN HDELFILE hDeletedFile)
BOOL WINAPI EmptyRecycleBinW(IN LPCWSTR pszRoot OPTIONAL)
EXTERN_C HDELFILE GetRecycleBinFileHandle(IN LPCWSTR pszRoot OPTIONAL, IN const RECYCLEBINFILEIDENTITY *pFI)
HRESULT SHILClone(_In_opt_ LPCITEMIDLIST pidl, _Outptr_ LPITEMIDLIST *ppidl)
HRESULT SHELL_GetCommandStringImpl(SIZE_T CmdId, UINT uFlags, LPSTR Buf, UINT cchBuf, const CMVERBMAP *pMap)
HRESULT SHELL_MapContextMenuVerbToCmdId(LPCMINVOKECOMMANDINFO pICI, const CMVERBMAP *pMap)
static HRESULT SHELL_CreateFallbackExtractIconForNoAssocFile(REFIID riid, LPVOID *ppvOut)
static HRESULT SHELL_CreateFallbackExtractIconForFolder(REFIID riid, LPVOID *ppvOut)
void WINAPI SHFree(LPVOID pv)
LPVOID WINAPI SHAlloc(SIZE_T len)
HRESULT WINAPI SHGetFolderLocation(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPITEMIDLIST *ppidl)
int WINAPI PathGetDriveNumberW(const WCHAR *path)
BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath)
LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
BOOL WINAPI PathStripToRootW(LPWSTR lpszPath)
HRESULT WINAPI SHStrDupW(LPCWSTR src, LPWSTR *dest)
#define MAKE_HRESULT(sev, fac, code)
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
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
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
VOID WINAPI CoTaskMemFree(LPVOID ptr)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
HRESULT GetUIObjectOf([in] HWND hwndOwner, [in] UINT cidl, [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, [in] REFIID riid, [in, out, unique] UINT *prgfInOut, [out, iid_is(riid)] void **ppvOut)
HRESULT EnumObjects([in] HWND hwndOwner, [in] SHCONTF grfFlags, [out] IEnumIDList **ppenumIDList)
HRESULT BindToObject([in] PCUIDLIST_RELATIVE pidl, [in] LPBC pbcReserved, [in] REFIID riid, [out, iid_is(riid)] void **ppvOut)
HRESULT GetDisplayNameOf([in] PCUITEMID_CHILD pidl, [in] SHGDNF uFlags, [out] STRRET *lpName)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
HRESULT SHELL_ShowItemIDListProperties(LPCITEMIDLIST pidl)
#define COM_INTERFACE_ENTRY_IID(iid, x)
#define ERROR_FILE_NOT_FOUND
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static HMODULE MODULEINFO DWORD cb
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
#define REG_CREATED_NEW_KEY
#define FILE_ATTRIBUTE_DIRECTORY
#define PID_STG_STORAGETYPE
#define PID_STG_WRITETIME
interface IBindCtx * LPBC
LPITEMIDLIST WINAPI SHCloneSpecialIDList(HWND hwndOwner, int nFolder, BOOL fCreate)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
LPITEMIDLIST SHELL32_CreateSimpleIDListFromPath(LPCWSTR pszPath, DWORD dwAttributes)
BOOL _ILGetFileDateTime(LPCITEMIDLIST pidl, FILETIME *pFt)
DWORD _ILSimpleGetTextW(LPCITEMIDLIST pidl, LPWSTR szOut, UINT uOutSize)
static BYTE _ILGetType(LPCITEMIDLIST pidl)
static BYTE _ILGetFSType(LPCITEMIDLIST pidl)
struct tagPIDLDATA * LPPIDLDATA
BOOL WINAPI PlaySoundW(LPCWSTR pszSoundW, HMODULE hmod, DWORD fdwSound)
#define IsEqualIID(riid1, riid2)
static void FreeRecycleBinString(PRECYCLEBINSTRING pRBS)
#define DeleteFileToRecycleBin
#define IRecycleBinFileFromHDELFILE(hDF)
UINT RECYCLEBINFILESIZETYPE
HRESULT RecycleBin_AddPropSheetPages(LPFNSVADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
#define ASK_DELETE_MULTIPLE_ITEM
#define ASK_DELETE_FOLDER
#define SHGFI_USEFILEATTRIBUTES
#define SHERB_NOPROGRESSUI
#define SHERB_NOCONFIRMATION
#define MAKE_COMPARE_HRESULT(x)
#define IS_SHGDN_FOR_PARSING(flags)
void WINAPI _InsertMenuItemW(HMENU hmenu, UINT indexMenu, BOOL fByPosition, UINT wID, UINT fType, LPCWSTR dwTypeData, UINT fState)
BOOL SHELL_ConfirmYesNoW(HWND hWnd, int nKindOfDialog, LPCWSTR szDir)
#define PID_DISPLACED_FROM
#define PID_DISPLACED_DATE
#define SHCNE_UPDATEIMAGE
struct _SFV_CREATE SFV_CREATE
LPARAM LPFNSVADDPROPSHEETPAGE
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
#define IDS_SHV_COLUMN_DELFROM
#define IDS_SHV_COLUMN_SIZE
#define IDS_SHV_COLUMN_MODIFIED
#define FCIDM_SHVIEW_PROPERTIES
#define IDS_DELETEITEM_TEXT
#define FCIDM_SHVIEW_DELETE
#define IDS_EMPTY_BITBUCKET
#define IDS_SHV_COLUMN_DELDATE
#define IDS_DELETEMULTIPLE_TEXT
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
static BOOL ValidateItem(int index, BOOL bNewState, BOOL bDisplayErrors)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
STRSAFEAPI StringCbPrintfW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszFormat,...)
WCHAR OriginalLocation[ANYSIZE_ARRAY]
RECYCLEBINFILESIZETYPE FileSize
FILETIME LastModification
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define FIELD_OFFSET(t, f)
#define CWM_GETISHELLBROWSER
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
DWORD WINAPI GetLastError(void)
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define HRESULT_FROM_WIN32(x)
#define HKEY_CURRENT_USER
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
#define MB_ICONEXCLAMATION
#define MAKEINTRESOURCEW(i)
#define IID_PPV_ARG(Itype, ppType)