56 *
ppvObject =
static_cast<IRecycleBinFile *
>(
this);
77 TRACE(
"(%p)\n",
this);
83 TRACE(
"(%p)\n",
this);
90 TRACE(
"(%p)\n",
this);
99 TRACE(
"(%p, %p)\n",
this, pLastModificationTime);
128 TRACE(
"(%p, %p)\n",
this, pDeletionTime);
135 TRACE(
"(%p, %p)\n",
this, pFileSize);
163 TRACE(
"(%p, %p)\n",
this, pPhysicalFileSize);
164 pPhysicalFileSize->
u.HighPart = 0;
173 TRACE(
"(%p, %p)\n",
this, pAttributes);
234 TRACE(
"(%p)\n",
this);
240 TRACE(
"(%p)\n",
this);
262 WCHAR szUniqueId[32];
266 strFullName +=
L"\\D";
267 strFullName += (
WCHAR)(
L'a' + pDeletedFile->dwDriveNumber);
268 strFullName += szUniqueId;
281 _Out_ IRecycleBinFile **ppFile)
299 *ppFile =
static_cast<IRecycleBinFile *
>(pThis);
342 *
ppvObject =
static_cast<IRecycleBinEnumList *
>(
this);
355 TRACE(
"(%p)\n",
this);
361 TRACE(
"(%p)\n",
this);
371 TRACE(
"(%p)\n",
this);
383 TRACE(
"(%p, %u, %p, %p)\n",
this, celt, rgelt, pceltFetched);
387 if (!pceltFetched && celt > 1)
400 for (; iEntry < dwEntries && fetched < celt; ++iEntry)
410 *pceltFetched = fetched;
419 TRACE(
"(%p, %u)\n",
this, celt);
426 TRACE(
"(%p)\n",
this);
491 *ppUnknown =
static_cast<IRecycleBinEnumList *
>(pThis);
#define InterlockedIncrement
#define InterlockedDecrement
STDMETHODIMP Reset() override
IRecycleBin5 * m_recycleBin
virtual ~RecycleBin5Enum()
STDMETHODIMP Next(DWORD celt, IRecycleBinFile **rgelt, DWORD *pceltFetched) override
STDMETHODIMP Skip(DWORD celt) override
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject) override
HRESULT Init(_In_ IRecycleBin5 *prb, _In_ HANDLE hInfo, _In_ HANDLE hInfoMapped, _In_ LPCWSTR pszPrefix)
STDMETHODIMP_(ULONG) AddRef() override
STDMETHODIMP_(ULONG) Release() override
virtual ~RecycleBin5File()
IRecycleBin5 * m_recycleBin
STDMETHODIMP GetTypeName(SIZE_T BufferSize, LPWSTR Buffer, SIZE_T *RequiredSize) override
STDMETHODIMP GetFileSize(ULARGE_INTEGER *pFileSize) override
STDMETHODIMP GetPhysicalFileSize(ULARGE_INTEGER *pPhysicalFileSize) override
HRESULT Init(_In_ IRecycleBin5 *prb, _In_ LPCWSTR Folder, _In_ PDELETED_FILE_RECORD pDeletedFile)
STDMETHODIMP_(ULONG) Release() override
STDMETHODIMP GetAttributes(DWORD *pAttributes) override
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject) override
DELETED_FILE_RECORD m_deletedFile
STDMETHODIMP Restore() override
STDMETHODIMP Delete() override
STDMETHODIMP GetDeletionTime(FILETIME *pDeletionTime) override
STDMETHODIMP GetFileName(SIZE_T BufferSize, LPWSTR Buffer, SIZE_T *RequiredSize) override
STDMETHODIMP_(ULONG) AddRef() override
STDMETHODIMP GetLastModificationTime(FILETIME *pLastModificationTime) override
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
void WINAPI SHFree(LPVOID pv)
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define FILE_FLAG_BACKUP_SEMANTICS
static ULONG WINAPI AddRef(IStream *iface)
#define FILE_SHARE_DELETE
#define FILE_ATTRIBUTE_DIRECTORY
#define IsEqualIID(riid1, riid2)
EXTERN_C const IID IID_IRecycleBinFile
EXTERN_C const IID IID_IRecycleBinEnumList
struct _INFO2_HEADER * PINFO2_HEADER
struct _DELETED_FILE_RECORD * PDELETED_FILE_RECORD
interface IRecycleBin5 IRecycleBin5
struct _DELETED_FILE_RECORD DELETED_FILE_RECORD
static HRESULT RecycleBin5File_Constructor(_In_ IRecycleBin5 *prb, _In_ LPCWSTR Folder, _In_ PDELETED_FILE_RECORD pDeletedFile, _Out_ IRecycleBinFile **ppFile)
EXTERN_C HRESULT RecycleBin5Enum_Constructor(_In_ IRecycleBin5 *prb, _In_ HANDLE hInfo, _In_ HANDLE hInfoMapped, _In_ LPCWSTR szPrefix, _Out_ IUnknown **ppUnknown)
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
#define SHGFI_USEFILEATTRIBUTES
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
WCHAR FileNameW[MAX_PATH]
struct _ULARGE_INTEGER::@4136 u
struct _LARGE_INTEGER::@2299 u
#define INVALID_FILE_ATTRIBUTES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
DWORD WINAPI GetLastError(void)
#define INVALID_FILE_SIZE
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define HRESULT_FROM_WIN32(x)