56 IUnknown_AddRef(
This);
76 IRecycleBin5_Release(
s->recycleBin);
107 TRACE(
"(%p, %p)\n",
This, pLastModificationTime);
133 TRACE(
"(%p, %p)\n",
This, pDeletionTime);
134 *pDeletionTime =
s->deletedFile.DeletionTime;
155 pFileSize->QuadPart = 0;
177 TRACE(
"(%p, %p)\n",
This, pPhysicalFileSize);
178 pPhysicalFileSize->u.HighPart = 0;
179 pPhysicalFileSize->u.LowPart =
s->deletedFile.dwPhysicalFileSize;
269 return IRecycleBin5_Delete(
s->recycleBin,
s->FullName, &
s->deletedFile);
278 return IRecycleBin5_Restore(
s->recycleBin,
s->FullName, &
s->deletedFile);
302 OUT IRecycleBinFile **ppFile)
314 Needed =
wcslen(Folder) + 13;
317 Needed *=
sizeof(
WCHAR);
325 s->deletedFile = *pDeletedFile;
327 IRecycleBin5_AddRef(
s->recycleBin);
328 *ppFile = &
s->recycleBinFileImpl;
329 wsprintfW(
s->FullName,
L"%s\\D%c%lu%s", Folder, pDeletedFile->dwDriveNumber +
'a', pDeletedFile->dwRecordUniqueId,
Extension);
352 IN IRecycleBinEnumList *
This,
373 IUnknown_AddRef(
This);
379 IN IRecycleBinEnumList *
This)
393 IRecycleBin5_OnClosing(
s->recycleBin, &
s->recycleBinEnumImpl);
395 IRecycleBin5_Release(
s->recycleBin);
401 IN IRecycleBinEnumList *
This)
418 IRecycleBinEnumList *
This,
420 IN OUT IRecycleBinFile **rgelt,
431 TRACE(
"(%p, %u, %p, %p)\n",
This, celt, rgelt, pceltFetched);
435 if (!pceltFetched && celt > 1)
445 for (;
i < dwEntries && fetched < celt;
i++)
455 *pceltFetched = fetched;
464 IN IRecycleBinEnumList *
This,
469 s->dwCurrent += celt;
475 IN IRecycleBinEnumList *
This)
530 IRecycleBin5_AddRef(
s->recycleBin);
531 *ppUnknown = (
IUnknown *)&
s->recycleBinEnumImpl;
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Release(IN IRecycleBinFile *This)
CONST_VTBL struct IRecycleBinEnumListVtbl RecycleBin5EnumVtbl
#define HRESULT_FROM_WIN32(x)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
EXTERN_C const IID IID_IRecycleBinEnumList
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_AddRef(IN IRecycleBinEnumList *This)
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_AddRef(IN IRecycleBinFile *This)
EXTERN_C const IID IID_IRecycleBinFile
#define INVALID_FILE_SIZE
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetTypeName(IN IRecycleBinFile *This, IN SIZE_T BufferSize, IN OUT LPWSTR Buffer, OUT SIZE_T *RequiredSize)
IRecycleBinEnumList recycleBinEnumImpl
struct _DELETED_FILE_RECORD DELETED_FILE_RECORD
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Reset(IN IRecycleBinEnumList *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetPhysicalFileSize(IN IRecycleBinFile *This, OUT ULARGE_INTEGER *pPhysicalFileSize)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Next(IRecycleBinEnumList *This, IN DWORD celt, IN OUT IRecycleBinFile **rgelt, OUT DWORD *pceltFetched)
FxContextHeader * pHeader
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Restore(IN IRecycleBinFile *This)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define FILE_ATTRIBUTE_DIRECTORY
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetLastModificationTime(IN IRecycleBinFile *This, OUT FILETIME *pLastModificationTime)
IRecycleBin5 * recycleBin
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetFileName(IN IRecycleBinFile *This, IN SIZE_T BufferSize, IN OUT LPWSTR Buffer, OUT SIZE_T *RequiredSize)
static HRESULT RecycleBin5File_Constructor(IN IRecycleBin5 *prb, IN LPCWSTR Folder, IN PDELETED_FILE_RECORD pDeletedFile, OUT IRecycleBinFile **ppFile)
#define STDMETHODCALLTYPE
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
#define INVALID_FILE_ATTRIBUTES
#define SHGFI_USEFILEATTRIBUTES
IRecycleBinFile recycleBinFileImpl
HRESULT RecycleBin5Enum_Constructor(IN IRecycleBin5 *prb, IN HANDLE hInfo, IN HANDLE hInfoMapped, IN LPCWSTR szPrefix, OUT IUnknown **ppUnknown)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define FILE_SHARE_DELETE
#define InterlockedDecrement
IRecycleBin5 * recycleBin
interface IRecycleBin5 IRecycleBin5
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_QueryInterface(IN IRecycleBinFile *This, IN REFIID riid, OUT void **ppvObject)
REFIID LPVOID * ppvObject
static VOID RecycleBin5File_Destructor(struct RecycleBin5File *s)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetAttributes(IN IRecycleBinFile *This, OUT DWORD *pAttributes)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetFileSize(IN IRecycleBinFile *This, OUT ULARGE_INTEGER *pFileSize)
#define InterlockedIncrement
static VOID RecycleBin5Enum_Destructor(struct RecycleBin5Enum *s)
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
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Delete(IN IRecycleBinFile *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetDeletionTime(IN IRecycleBinFile *This, OUT FILETIME *pDeletionTime)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Skip(IN IRecycleBinEnumList *This, IN DWORD celt)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Release(IN IRecycleBinEnumList *This)
#define FILE_FLAG_BACKUP_SEMANTICS
CONST_VTBL struct IRecycleBinFileVtbl RecycleBin5FileVtbl
struct _LARGE_INTEGER::@2247 u
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
DELETED_FILE_RECORD deletedFile
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
_Inout_opt_ PUNICODE_STRING Extension
#define IsEqualIID(riid1, riid2)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_QueryInterface(IN IRecycleBinEnumList *This, IN REFIID riid, OUT void **ppvObject)