62 *
ppvObject =
static_cast<IRecycleBinFile *
>(
this);
76 TRACE(
"(%p)\n",
this);
82 TRACE(
"(%p)\n",
this);
89 TRACE(
"(%p)\n",
this);
114 TRACE(
"(%p, %p)\n",
this, pLastModificationTime);
143 TRACE(
"(%p, %p)\n",
this, pDeletionTime);
150 TRACE(
"(%p, %p)\n",
this, pFileSize);
178 TRACE(
"(%p, %p)\n",
this, pPhysicalFileSize);
179 pPhysicalFileSize->
u.HighPart = 0;
188 TRACE(
"(%p, %p)\n",
this, pAttributes);
219 TRACE(
"(%p)\n",
this);
225 TRACE(
"(%p)\n",
this);
247 WCHAR szUniqueId[32];
251 strFullName +=
L"\\D";
252 strFullName += (
WCHAR)(
L'a' + pDeletedFile->dwDriveNumber);
253 strFullName += szUniqueId;
266 _Out_ IRecycleBinFile **ppFile)
284 *ppFile =
static_cast<IRecycleBinFile *
>(pThis);
327 *
ppvObject =
static_cast<IRecycleBinEnumList *
>(
this);
340 TRACE(
"(%p)\n",
this);
346 TRACE(
"(%p)\n",
this);
356 TRACE(
"(%p)\n",
this);
368 TRACE(
"(%p, %u, %p, %p)\n",
this, celt, rgelt, pceltFetched);
372 if (!pceltFetched && celt > 1)
385 for (; iEntry < dwEntries && fetched < celt; ++iEntry)
395 *pceltFetched = fetched;
404 TRACE(
"(%p, %u)\n",
this, celt);
411 TRACE(
"(%p)\n",
this);
476 *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 IsEqualIdentity(const RECYCLEBINFILEIDENTITY *pFI) 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 GetInfo(PDELETED_FILE_INFO pInfo) 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)
static void InitializeRecycleBinStringRef(PRECYCLEBINSTRING pRBS, LPCWSTR String)
EXTERN_C const IID IID_IRecycleBinFile
EXTERN_C const IID IID_IRecycleBinEnumList
EXTERN_C BOOL RecycleBinGeneric_IsEqualFileIdentity(const RECYCLEBINFILEIDENTITY *p1, const RECYCLEBINFILEIDENTITY *p2)
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)
HRESULT HResultFromWin32(DWORD hr)
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
RECYCLEBINFILESIZETYPE FileSize
RECYCLEBINSTRING RecycledFullPath
RECYCLEBINSTRING OriginalFullPath
FILETIME LastModification
WCHAR FileNameW[MAX_PATH]
struct _ULARGE_INTEGER::@4177 u
struct _LARGE_INTEGER::@2306 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)