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;
#define InterlockedIncrement
#define InterlockedDecrement
#define STDMETHODCALLTYPE
#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)
_Inout_opt_ PUNICODE_STRING Extension
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
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
FxContextHeader * pHeader
VOID WINAPI CoTaskMemFree(LPVOID ptr)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define FILE_FLAG_BACKUP_SEMANTICS
#define FILE_SHARE_DELETE
#define FILE_ATTRIBUTE_DIRECTORY
#define IsEqualIID(riid1, riid2)
EXTERN_C const IID IID_IRecycleBinFile
EXTERN_C const IID IID_IRecycleBinEnumList
interface IRecycleBin5 IRecycleBin5
struct _DELETED_FILE_RECORD DELETED_FILE_RECORD
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetFileName(IN IRecycleBinFile *This, IN SIZE_T BufferSize, IN OUT LPWSTR Buffer, OUT SIZE_T *RequiredSize)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetPhysicalFileSize(IN IRecycleBinFile *This, OUT ULARGE_INTEGER *pPhysicalFileSize)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Reset(IN IRecycleBinEnumList *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetFileSize(IN IRecycleBinFile *This, OUT ULARGE_INTEGER *pFileSize)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Delete(IN IRecycleBinFile *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Restore(IN IRecycleBinFile *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetTypeName(IN IRecycleBinFile *This, IN SIZE_T BufferSize, IN OUT LPWSTR Buffer, OUT SIZE_T *RequiredSize)
static VOID RecycleBin5File_Destructor(struct RecycleBin5File *s)
static VOID RecycleBin5Enum_Destructor(struct RecycleBin5Enum *s)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_QueryInterface(IN IRecycleBinFile *This, IN REFIID riid, OUT void **ppvObject)
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Release(IN IRecycleBinFile *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_QueryInterface(IN IRecycleBinEnumList *This, IN REFIID riid, OUT void **ppvObject)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Next(IRecycleBinEnumList *This, IN DWORD celt, IN OUT IRecycleBinFile **rgelt, OUT DWORD *pceltFetched)
HRESULT RecycleBin5Enum_Constructor(IN IRecycleBin5 *prb, IN HANDLE hInfo, IN HANDLE hInfoMapped, IN LPCWSTR szPrefix, OUT IUnknown **ppUnknown)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetDeletionTime(IN IRecycleBinFile *This, OUT FILETIME *pDeletionTime)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetLastModificationTime(IN IRecycleBinFile *This, OUT FILETIME *pLastModificationTime)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Skip(IN IRecycleBinEnumList *This, IN DWORD celt)
CONST_VTBL struct IRecycleBinEnumListVtbl RecycleBin5EnumVtbl
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Release(IN IRecycleBinEnumList *This)
static HRESULT RecycleBin5File_Constructor(IN IRecycleBin5 *prb, IN LPCWSTR Folder, IN PDELETED_FILE_RECORD pDeletedFile, OUT IRecycleBinFile **ppFile)
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_AddRef(IN IRecycleBinEnumList *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetAttributes(IN IRecycleBinFile *This, OUT DWORD *pAttributes)
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_AddRef(IN IRecycleBinFile *This)
CONST_VTBL struct IRecycleBinFileVtbl RecycleBin5FileVtbl
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
#define SHGFI_USEFILEATTRIBUTES
IRecycleBinEnumList recycleBinEnumImpl
IRecycleBin5 * recycleBin
DELETED_FILE_RECORD deletedFile
IRecycleBinFile recycleBinFileImpl
IRecycleBin5 * recycleBin
#define CONTAINING_RECORD(address, type, field)
struct _LARGE_INTEGER::@2272 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)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)