63 *
ppvObject =
static_cast<IRecycleBinFile *
>(
this);
77 TRACE(
"(%p)\n",
this);
83 TRACE(
"(%p)\n",
this);
90 TRACE(
"(%p)\n",
this);
115 TRACE(
"(%p, %p)\n",
this, pLastModificationTime);
144 TRACE(
"(%p, %p)\n",
this, pDeletionTime);
151 TRACE(
"(%p, %p)\n",
this, pFileSize);
179 TRACE(
"(%p, %p)\n",
this, pPhysicalFileSize);
180 pPhysicalFileSize->
u.HighPart = 0;
189 TRACE(
"(%p, %p)\n",
this, pAttributes);
220 TRACE(
"(%p)\n",
this);
226 TRACE(
"(%p)\n",
this);
232 TRACE(
"(%p)\n",
this);
254 WCHAR szUniqueId[32];
258 strFullName +=
L"\\D";
259 strFullName += (
WCHAR)(
L'a' + pDeletedFile->dwDriveNumber);
260 strFullName += szUniqueId;
273 _Out_ IRecycleBinFile **ppFile)
291 *ppFile =
static_cast<IRecycleBinFile *
>(pThis);
334 *
ppvObject =
static_cast<IRecycleBinEnumList *
>(
this);
347 TRACE(
"(%p)\n",
this);
353 TRACE(
"(%p)\n",
this);
363 TRACE(
"(%p)\n",
this);
375 TRACE(
"(%p, %u, %p, %p)\n",
this, celt, rgelt, pceltFetched);
379 if (!pceltFetched && celt > 1)
392 for (; iEntry < dwEntries && fetched < celt; ++iEntry)
402 *pceltFetched = fetched;
411 TRACE(
"(%p, %u)\n",
this, celt);
418 TRACE(
"(%p)\n",
this);
483 *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 RemoveFromDatabase() 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)
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::@4266 u
struct _LARGE_INTEGER::@2379 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)