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;
235 CComPtr<IEnumIDList> spEnumFiles;
237 CComHeapPtr<ITEMIDLIST> spPidl;
239 return FAILED(
hr) || spEnumFiles->Next(1, &spPidl, &itemcount) !=
S_OK;
270 info.LastModification = pFind->ftLastWriteTime;
272 info.FileSize = pFind->nFileSizeLow;
273 info.Attributes = pFind->dwFileAttributes;
294 ERR(
"Recycler could not retrieve the icon, this shouldn't happen\n");
303 public CComObjectRootEx<CComMultiThreadModelNoCS>,
357 if (
dwFlags & SHCONTF_NONFOLDERS)
359 TRACE(
"Starting Enumeration\n");
363 WARN(
"Error: EnumerateCRecycleBinW failed\n");
435 TRACE(
"(%p)->(hmenu=%p indexmenu=%x cmdfirst=%x cmdlast=%x flags=%x )\n",
this, hMenu, indexMenu, idCmdFirst, idCmdLast,
uFlags);
440 idHigh =
max(idHigh,
id);
446 idHigh =
max(idHigh,
id);
453 idHigh =
max(idHigh,
id);
460 idHigh =
max(idHigh,
id);
470 if (lpcmi->fMask & CMIC_MASK_FLAG_NO_UI)
487 for (
SIZE_T i = 0,
cb = 0, cb2, cbPath;
i < cidl; ++
i,
cb = cb2)
536 CComPtr<IShellFolder> pSF;
548 TRACE(
"(%p)->(invcom=%p verb=%p wnd=%p)\n",
this, lpcmi, lpcmi->
lpVerb, lpcmi->
hwnd);
586 if (lpcmi->
fMask & CMIC_MASK_FLAG_NO_UI)
599 FIXME(
"implement cut\n");
605 FIXME(
"implement properties\n");
614 TRACE(
"(%p)->(idcom=%lx flags=%x %p name=%p len=%x)\n",
this, idCommand,
uFlags,
lpReserved, lpszName, uMaxNameLen);
620 TRACE(
"CRecycleBin_IContextMenu2Item_HandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",
this, uMsg,
wParam,
lParam);
652 PERSIST_FOLDER_TARGET_INFO pfti = {};
657 CComHeapPtr<ITEMIDLIST> pidlRoot;
677 TRACE(
"(%p, %p)\n",
this, pClassID);
678 if (pClassID ==
NULL)
690 if (this->pidl ==
NULL)
707 ULONG *pdwAttributes)
759 if (pData1 && pData2)
773 hr = pSF->CompareIDs(
lParam, pidl1, pidl2);
813 CComPtr<IShellView> pShellView;
839 TRACE (
"-- (%p)->(interface=%p)\n",
this,
ppv);
847 TRACE(
"(%p, %d, {%p, ...}, {%x})\n",
this, cidl, apidl ? apidl[0] :
NULL, (
unsigned int)*rgfInOut);
849 const SFGAOF ThisFolder = SFGAO_FOLDER | SFGAO_HASPROPSHEET | SFGAO_DROPTARGET | SFGAO_CANRENAME | SFGAO_CANLINK;
852 *rgfInOut &= ThisFolder;
854 *rgfInOut &= ~SFGAO_HASPROPSHEET;
857 SFGAOF remain = SFGAO_LINK & *rgfInOut;
858 *rgfInOut &= remain | SFGAO_HASPROPSHEET | SFGAO_CANDELETE | SFGAO_FILESYSTEM;
863 hr = pSF->GetAttributesOf(1, &apidl[
i], rgfInOut);
876 TRACE (
"(%p)->(%p,%u,apidl=%p, %p %p)\n",
this,
877 hwndOwner, cidl, apidl, prgfInOut,
ppv);
883 assert(!cidl || (apidl && apidl[0]));
887 hr = ShellObjectCreatorInit<CRecycleBinItemContextMenu>(cidl, apidl,
riid, &pObj);
904 TRACE (
"(%p)->hr=0x%08x\n",
this,
hr);
938 pName->cStr[0] =
'\0';
964 TRACE(
"(%p, %x, %p, %p)\n",
this, (
unsigned int)
dwReserved, pSort, pDisplay);
974 TRACE(
"(%p, %d, %p)\n",
this, iColumn, pcsFlags);
994 TRACE(
"(%p, %p, %d, %p)\n",
this,
pidl, iColumn, pDetails);
1036 return SHSetStrRet(&pDetails->
str,
buffer);
1041 TRACE(
"(%p, %d, %p)\n",
this, iColumn, pscid);
1063 TRACE(
"QueryContextMenu %p %p %u %u %u %u\n",
this, hMenu, indexMenu, idCmdFirst, idCmdLast,
uFlags );
1074 idHigh =
max(idHigh,
id);
1080 idHigh =
max(idHigh,
id);
1100 CComPtr<IShellView> pSV;
1102 if (lpSB &&
SUCCEEDED(lpSB->QueryActiveShellView(&pSV)))
1132 FIXME(
"%p %lu %p %lu\n",
this, uPageID, pfnReplaceWith,
lParam);
1143 TRACE(
"%p %p %p %p\n",
this, pidlFolder, pdtobj, hkeyProgID );
1157 DWORD dwNukeOnDelete, dwType, VolSerialNumber, MaxComponentLength;
1161 WCHAR szKey[150] =
L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\BitBucket\\Volume\\";
1163 if (wszPath[1] !=
L':')
1171 StringCbCopyW(wszRootPathName,
sizeof(wszRootPathName), wszPath);
1192 ERR(
"RegCreateKeyExW failed\n");
1207 dwSize =
sizeof(dwNukeOnDelete);
1219 BOOL bCanTrash = !dwNukeOnDelete;
1241 L"AppEvents\\Schemes\\Apps\\Explorer\\EmptyRecycleBin\\.Current",
1253 lError = regKey.QueryValue(
NULL, &dwType, pszValue, &
dwSize);
1269 else if (dwType ==
REG_SZ)
1341 LPENUMIDLIST penumFiles;
1362 hr = pRecycleBin->
EnumObjects(
hwnd, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &penumFiles);
1372 while (penumFiles->Next(1, &pidl,
NULL) ==
S_OK)
1379 penumFiles->Release();
1466 if (!pszRootPath || (pszRootPath[0] == 0) ||
1475 CComPtr<IRecycleBin> spRecycleBin;
1480 CComPtr<IRecycleBinEnumList> spEnumList;
1481 hr = spRecycleBin->EnumObjects(&spEnumList);
1487 CComPtr<IRecycleBinFile> spFile;
1488 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 void CRecycleBin_ChangeNotifyBBItem(_In_ LONG Event, _In_opt_ LPCITEMIDLIST BBItem)
static const CMVERBMAP g_BBFolderVerbMap[]
static void CRecycleBin_NotifyRemovedFromRecycleBin(LPCITEMIDLIST BBItem)
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 BOOL ConfirmDelete(LPCMINVOKECOMMANDINFO lpcmi, UINT cidl, LPCITEMIDLIST pidl)
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)
struct _FILEOPDATA FILEOPDATA
static HRESULT CALLBACK FileOpCallback(FILEOPCALLBACKEVENT Event, LPCWSTR Src, LPCWSTR Dst, UINT Attrib, HRESULT hrOp, void *CallerData)
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 LPWSTR CreateFileOpStrings(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, BOOL RecycledPath)
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)
enum _FILEOPCALLBACKEVENT FILEOPCALLBACKEVENT
EXTERN_C HRESULT SHBindToObject(_In_opt_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ REFIID riid, _Out_ void **ppvObj)
int SHELL32_FileOperation(LPSHFILEOPSTRUCTW lpFileOp, FILEOPCALLBACK Callback, void *CallerData)
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)
EXTERN_C BOOL RemoveFromRecycleBinDatabase(IN const RECYCLEBINFILEIDENTITY *pFI)
BOOL WINAPI CloseRecycleBinHandle(IN HDELFILE hDeletedFile)
BOOL WINAPI EmptyRecycleBinW(IN LPCWSTR pszRoot OPTIONAL)
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
HLOCAL NTAPI LocalReAlloc(HLOCAL hMem, SIZE_T dwBytes, UINT uFlags)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
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)
PITEMID_CHILD * _ILCopyaPidl(PCUITEMID_CHILD_ARRAY apidlsrc, UINT cidl)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
void WINAPI ILFree(LPITEMIDLIST pidl)
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
FileStructW * _ILGetFileStructW(LPCITEMIDLIST pidl)
void _ILFreeaPidl(LPITEMIDLIST *apidl, UINT cidl)
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 FOF_MULTIDESTFILES
#define SHGFI_USEFILEATTRIBUTES
#define FOF_NOCONFIRMMKDIR
#define FOF_NOCONFIRMATION
#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
PCUITEMID_CHILD_ARRAY apidl
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)