ReactOS  0.4.15-dev-3719-g41b8715
recyclebin_v5_enumerator.c File Reference
Include dependency graph for recyclebin_v5_enumerator.c:

Go to the source code of this file.

Classes

struct  RecycleBin5File
 
struct  RecycleBin5Enum
 

Functions

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetAttributes (IN IRecycleBinFile *This, OUT DWORD *pAttributes)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_QueryInterface (IN IRecycleBinFile *This, IN REFIID riid, OUT void **ppvObject)
 
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_AddRef (IN IRecycleBinFile *This)
 
static VOID RecycleBin5File_Destructor (struct RecycleBin5File *s)
 
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Release (IN IRecycleBinFile *This)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetLastModificationTime (IN IRecycleBinFile *This, OUT FILETIME *pLastModificationTime)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetDeletionTime (IN IRecycleBinFile *This, OUT FILETIME *pDeletionTime)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetFileSize (IN IRecycleBinFile *This, OUT ULARGE_INTEGER *pFileSize)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetPhysicalFileSize (IN IRecycleBinFile *This, OUT ULARGE_INTEGER *pPhysicalFileSize)
 
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_GetTypeName (IN IRecycleBinFile *This, IN SIZE_T BufferSize, IN OUT LPWSTR Buffer, OUT SIZE_T *RequiredSize)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Delete (IN IRecycleBinFile *This)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Restore (IN IRecycleBinFile *This)
 
static HRESULT RecycleBin5File_Constructor (IN IRecycleBin5 *prb, IN LPCWSTR Folder, IN PDELETED_FILE_RECORD pDeletedFile, OUT IRecycleBinFile **ppFile)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_QueryInterface (IN IRecycleBinEnumList *This, IN REFIID riid, OUT void **ppvObject)
 
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_AddRef (IN IRecycleBinEnumList *This)
 
static VOID RecycleBin5Enum_Destructor (struct RecycleBin5Enum *s)
 
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Release (IN IRecycleBinEnumList *This)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Next (IRecycleBinEnumList *This, IN DWORD celt, IN OUT IRecycleBinFile **rgelt, OUT DWORD *pceltFetched)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Skip (IN IRecycleBinEnumList *This, IN DWORD celt)
 
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Reset (IN IRecycleBinEnumList *This)
 
HRESULT RecycleBin5Enum_Constructor (IN IRecycleBin5 *prb, IN HANDLE hInfo, IN HANDLE hInfoMapped, IN LPCWSTR szPrefix, OUT IUnknown **ppUnknown)
 

Variables

CONST_VTBL struct IRecycleBinFileVtbl RecycleBin5FileVtbl
 
CONST_VTBL struct IRecycleBinEnumListVtbl RecycleBin5EnumVtbl
 

Function Documentation

◆ RecycleBin5Enum_Constructor()

HRESULT RecycleBin5Enum_Constructor ( IN IRecycleBin5 prb,
IN HANDLE  hInfo,
IN HANDLE  hInfoMapped,
IN LPCWSTR  szPrefix,
OUT IUnknown **  ppUnknown 
)

Definition at line 494 of file recyclebin_v5_enumerator.c.

500 {
501  struct RecycleBin5Enum *s = NULL;
502  SIZE_T Needed;
503 
504  if (!ppUnknown)
505  return E_POINTER;
506 
507  Needed = (wcslen(szPrefix) + 1) * sizeof(WCHAR);
508 
509  s = CoTaskMemAlloc(sizeof(struct RecycleBin5Enum) + Needed);
510  if (!s)
511  return E_OUTOFMEMORY;
512  ZeroMemory(s, sizeof(struct RecycleBin5Enum) + Needed);
513  s->recycleBinEnumImpl.lpVtbl = &RecycleBin5EnumVtbl;
514  s->ref = 1;
515  s->recycleBin = prb;
516  wcscpy(s->szPrefix, szPrefix);
517  s->hInfo = hInfo;
518  s->pInfo = MapViewOfFile(hInfoMapped, FILE_MAP_READ, 0, 0, 0);
519  if (!s->pInfo)
520  {
521  CoTaskMemFree(s);
523  }
524  if (s->pInfo->dwVersion != 5 || s->pInfo->dwRecordSize != sizeof(DELETED_FILE_RECORD))
525  {
526  UnmapViewOfFile(s->pInfo);
527  CoTaskMemFree(s);
528  return E_FAIL;
529  }
530  IRecycleBin5_AddRef(s->recycleBin);
531  *ppUnknown = (IUnknown *)&s->recycleBinEnumImpl;
532 
533  return S_OK;
534 }
CONST_VTBL struct IRecycleBinEnumListVtbl RecycleBin5EnumVtbl
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define MapViewOfFile
Definition: compat.h:604
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
#define ZeroMemory
Definition: winbase.h:1664
#define E_FAIL
Definition: ddrawi.h:102
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define FILE_MAP_READ
Definition: compat.h:635
__wchar_t WCHAR
Definition: xmlstorage.h:180
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
GLdouble s
Definition: gl.h:2039
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define E_POINTER
Definition: winerror.h:2365
#define UnmapViewOfFile
Definition: compat.h:605
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426

Referenced by RecycleBin5_RecycleBin5_EnumObjects().

◆ RecycleBin5Enum_Destructor()

static VOID RecycleBin5Enum_Destructor ( struct RecycleBin5Enum s)
static

Definition at line 388 of file recyclebin_v5_enumerator.c.

390 {
391  TRACE("(%p)\n", s);
392 
393  IRecycleBin5_OnClosing(s->recycleBin, &s->recycleBinEnumImpl);
394  UnmapViewOfFile(s->pInfo);
395  IRecycleBin5_Release(s->recycleBin);
396  CoTaskMemFree(s);
397 }
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define TRACE(s)
Definition: solgame.cpp:4
GLdouble s
Definition: gl.h:2039
#define UnmapViewOfFile
Definition: compat.h:605

Referenced by RecycleBin5Enum_RecycleBinEnumList_Release().

◆ RecycleBin5Enum_RecycleBinEnumList_AddRef()

static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_AddRef ( IN IRecycleBinEnumList *  This)
static

Definition at line 378 of file recyclebin_v5_enumerator.c.

380 {
382  ULONG refCount = InterlockedIncrement((PLONG)&s->ref);
383  TRACE("(%p)\n", This);
384  return refCount;
385 }
IRecycleBinEnumList recycleBinEnumImpl
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
GLdouble s
Definition: gl.h:2039
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1
signed int * PLONG
Definition: retypes.h:5

◆ RecycleBin5Enum_RecycleBinEnumList_Next()

static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Next ( IRecycleBinEnumList *  This,
IN DWORD  celt,
IN OUT IRecycleBinFile **  rgelt,
OUT DWORD pceltFetched 
)
static

Definition at line 417 of file recyclebin_v5_enumerator.c.

422 {
425  INFO2_HEADER *pHeader = s->pInfo;
426  DELETED_FILE_RECORD *pDeletedFile;
427  DWORD fetched = 0, i;
428  DWORD dwEntries;
429  HRESULT hr;
430 
431  TRACE("(%p, %u, %p, %p)\n", This, celt, rgelt, pceltFetched);
432 
433  if (!rgelt)
434  return E_POINTER;
435  if (!pceltFetched && celt > 1)
436  return E_INVALIDARG;
437 
438  FileSize.u.LowPart = GetFileSize(s->hInfo, &FileSize.u.HighPart);
439  if (FileSize.u.LowPart == 0)
441  dwEntries = (DWORD)((FileSize.QuadPart - sizeof(INFO2_HEADER)) / sizeof(DELETED_FILE_RECORD));
442 
443  i = s->dwCurrent;
444  pDeletedFile = (DELETED_FILE_RECORD *)(pHeader + 1) + i;
445  for (; i < dwEntries && fetched < celt; i++)
446  {
447  hr = RecycleBin5File_Constructor(s->recycleBin, s->szPrefix, pDeletedFile, &rgelt[fetched]);
448  if (SUCCEEDED(hr))
449  fetched++;
450  pDeletedFile++;
451  }
452 
453  s->dwCurrent = i;
454  if (pceltFetched)
455  *pceltFetched = fetched;
456  if (fetched == celt)
457  return S_OK;
458  else
459  return S_FALSE;
460 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
HRESULT hr
Definition: shlfolder.c:183
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
#define DWORD
Definition: nt_native.h:44
IRecycleBinEnumList recycleBinEnumImpl
struct _DELETED_FILE_RECORD DELETED_FILE_RECORD
if SUCCEEDED(hr)
FxContextHeader * pHeader
Definition: handleapi.cpp:604
#define S_FALSE
Definition: winerror.h:2357
#define E_INVALIDARG
Definition: ddrawi.h:101
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
static HRESULT RecycleBin5File_Constructor(IN IRecycleBin5 *prb, IN LPCWSTR Folder, IN PDELETED_FILE_RECORD pDeletedFile, OUT IRecycleBinFile **ppFile)
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
Definition: fileinfo.c:331
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
Definition: fsrtlfuncs.h:108
GLdouble s
Definition: gl.h:2039
#define S_OK
Definition: intsafe.h:52
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
Definition: glfuncs.h:248
struct _LARGE_INTEGER::@2237 u
#define E_POINTER
Definition: winerror.h:2365
LONGLONG QuadPart
Definition: typedefs.h:114

◆ RecycleBin5Enum_RecycleBinEnumList_QueryInterface()

static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_QueryInterface ( IN IRecycleBinEnumList *  This,
IN REFIID  riid,
OUT void **  ppvObject 
)
static

Definition at line 351 of file recyclebin_v5_enumerator.c.

355 {
357 
358  TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject);
359 
360  if (!ppvObject)
361  return E_POINTER;
362 
364  *ppvObject = &s->recycleBinEnumImpl;
366  *ppvObject = &s->recycleBinEnumImpl;
367  else
368  {
369  *ppvObject = NULL;
370  return E_NOINTERFACE;
371  }
372 
373  IUnknown_AddRef(This);
374  return S_OK;
375 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
EXTERN_C const IID IID_IRecycleBinEnumList
Definition: recyclebin.h:253
IRecycleBinEnumList recycleBinEnumImpl
#define debugstr_guid
Definition: kernel32.h:35
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
GLdouble s
Definition: gl.h:2039
REFIID LPVOID * ppvObject
Definition: precomp.h:44
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
#define E_POINTER
Definition: winerror.h:2365
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

◆ RecycleBin5Enum_RecycleBinEnumList_Release()

static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Release ( IN IRecycleBinEnumList *  This)
static

Definition at line 400 of file recyclebin_v5_enumerator.c.

402 {
404  ULONG refCount;
405 
406  TRACE("(%p)\n", This);
407 
408  refCount = InterlockedDecrement((PLONG)&s->ref);
409 
410  if (refCount == 0)
412 
413  return refCount;
414 }
IRecycleBinEnumList recycleBinEnumImpl
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
#define InterlockedDecrement
Definition: armddk.h:52
GLdouble s
Definition: gl.h:2039
static VOID RecycleBin5Enum_Destructor(struct RecycleBin5Enum *s)
unsigned int ULONG
Definition: retypes.h:1
signed int * PLONG
Definition: retypes.h:5

◆ RecycleBin5Enum_RecycleBinEnumList_Reset()

static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Reset ( IN IRecycleBinEnumList *  This)
static

Definition at line 474 of file recyclebin_v5_enumerator.c.

476 {
478  TRACE("(%p)\n", This);
479  s->dwCurrent = 0;
480  return S_OK;
481 }
IRecycleBinEnumList recycleBinEnumImpl
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
GLdouble s
Definition: gl.h:2039
#define S_OK
Definition: intsafe.h:52

◆ RecycleBin5Enum_RecycleBinEnumList_Skip()

static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Skip ( IN IRecycleBinEnumList *  This,
IN DWORD  celt 
)
static

Definition at line 463 of file recyclebin_v5_enumerator.c.

466 {
468  TRACE("(%p, %u)\n", This, celt);
469  s->dwCurrent += celt;
470  return S_OK;
471 }
IRecycleBinEnumList recycleBinEnumImpl
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
GLdouble s
Definition: gl.h:2039
#define S_OK
Definition: intsafe.h:52

◆ RecycleBin5File_Constructor()

static HRESULT RecycleBin5File_Constructor ( IN IRecycleBin5 prb,
IN LPCWSTR  Folder,
IN PDELETED_FILE_RECORD  pDeletedFile,
OUT IRecycleBinFile **  ppFile 
)
static

Definition at line 298 of file recyclebin_v5_enumerator.c.

303 {
304  struct RecycleBin5File *s = NULL;
306  SIZE_T Needed;
307 
308  if (!ppFile)
309  return E_POINTER;
310 
311  Extension = wcsrchr(pDeletedFile->FileNameW, '.');
312  if (Extension < wcsrchr(pDeletedFile->FileNameW, '\\'))
313  Extension = NULL;
314  Needed = wcslen(Folder) + 13;
315  if (Extension)
316  Needed += wcslen(Extension);
317  Needed *= sizeof(WCHAR);
318 
319  s = CoTaskMemAlloc(sizeof(struct RecycleBin5File) + Needed);
320  if (!s)
321  return E_OUTOFMEMORY;
322  ZeroMemory(s, sizeof(struct RecycleBin5File) + Needed);
323  s->recycleBinFileImpl.lpVtbl = &RecycleBin5FileVtbl;
324  s->ref = 1;
325  s->deletedFile = *pDeletedFile;
326  s->recycleBin = prb;
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);
330  if (GetFileAttributesW(s->FullName) == INVALID_FILE_ATTRIBUTES)
331  {
333  return E_FAIL;
334  }
335 
336  return S_OK;
337 }
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define ZeroMemory
Definition: winbase.h:1664
#define E_FAIL
Definition: ddrawi.h:102
#define L(x)
Definition: ntvdm.h:50
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:652
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
GLdouble s
Definition: gl.h:2039
#define wcsrchr
Definition: compat.h:16
static VOID RecycleBin5File_Destructor(struct RecycleBin5File *s)
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
CONST_VTBL struct IRecycleBinFileVtbl RecycleBin5FileVtbl
#define E_POINTER
Definition: winerror.h:2365
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426
_Inout_opt_ PUNICODE_STRING Extension
Definition: fltkernel.h:1092

Referenced by RecycleBin5Enum_RecycleBinEnumList_Next().

◆ RecycleBin5File_Destructor()

static VOID RecycleBin5File_Destructor ( struct RecycleBin5File s)
static

Definition at line 71 of file recyclebin_v5_enumerator.c.

73 {
74  TRACE("(%p)\n", s);
75 
76  IRecycleBin5_Release(s->recycleBin);
78 }
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define TRACE(s)
Definition: solgame.cpp:4
GLdouble s
Definition: gl.h:2039

Referenced by RecycleBin5File_Constructor(), and RecycleBin5File_RecycleBinFile_Release().

◆ RecycleBin5File_RecycleBinFile_AddRef()

static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_AddRef ( IN IRecycleBinFile *  This)
static

Definition at line 61 of file recyclebin_v5_enumerator.c.

63 {
65  ULONG refCount = InterlockedIncrement((PLONG)&s->ref);
66  TRACE("(%p)\n", This);
67  return refCount;
68 }
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
#define InterlockedIncrement
Definition: armddk.h:53
unsigned int ULONG
Definition: retypes.h:1
signed int * PLONG
Definition: retypes.h:5

◆ RecycleBin5File_RecycleBinFile_Delete()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Delete ( IN IRecycleBinFile *  This)
static

Definition at line 264 of file recyclebin_v5_enumerator.c.

266 {
268  TRACE("(%p)\n", This);
269  return IRecycleBin5_Delete(s->recycleBin, s->FullName, &s->deletedFile);
270 }
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039

◆ RecycleBin5File_RecycleBinFile_GetAttributes()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetAttributes ( IN IRecycleBinFile *  This,
OUT DWORD pAttributes 
)
static

Definition at line 184 of file recyclebin_v5_enumerator.c.

187 {
190 
191  TRACE("(%p, %p)\n", This, pAttributes);
192 
193  dwAttributes = GetFileAttributesW(s->FullName);
196 
197  *pAttributes = dwAttributes;
198  return S_OK;
199 }
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
DWORD dwAttributes
Definition: vdmdbg.h:34
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:652
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
#define S_OK
Definition: intsafe.h:52

Referenced by RecycleBin5File_RecycleBinFile_GetTypeName(), and RecycleBin5File_RecycleBinFile_QueryInterface().

◆ RecycleBin5File_RecycleBinFile_GetDeletionTime()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetDeletionTime ( IN IRecycleBinFile *  This,
OUT FILETIME pDeletionTime 
)
static

Definition at line 128 of file recyclebin_v5_enumerator.c.

131 {
133  TRACE("(%p, %p)\n", This, pDeletionTime);
134  *pDeletionTime = s->deletedFile.DeletionTime;
135  return S_OK;
136 }
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
#define S_OK
Definition: intsafe.h:52

◆ RecycleBin5File_RecycleBinFile_GetFileName()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetFileName ( IN IRecycleBinFile *  This,
IN SIZE_T  BufferSize,
IN OUT LPWSTR  Buffer,
OUT SIZE_T RequiredSize 
)
static

Definition at line 202 of file recyclebin_v5_enumerator.c.

207 {
209  DWORD dwRequired;
210 
211  TRACE("(%p, %u, %p, %p)\n", This, BufferSize, Buffer, RequiredSize);
212 
213  dwRequired = (DWORD)(wcslen(s->deletedFile.FileNameW) + 1) * sizeof(WCHAR);
214  if (RequiredSize)
215  *RequiredSize = dwRequired;
216 
217  if (BufferSize == 0 && !Buffer)
218  return S_OK;
219 
220  if (BufferSize < dwRequired)
221  return E_OUTOFMEMORY;
222  CopyMemory(Buffer, s->deletedFile.FileNameW, dwRequired);
223  return S_OK;
224 }
#define DWORD
Definition: nt_native.h:44
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
Definition: bufpool.h:45
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define CopyMemory
Definition: winbase.h:1662
unsigned long DWORD
Definition: ntddk_ex.h:95
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
#define S_OK
Definition: intsafe.h:52
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4431
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:251

◆ RecycleBin5File_RecycleBinFile_GetFileSize()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetFileSize ( IN IRecycleBinFile *  This,
OUT ULARGE_INTEGER pFileSize 
)
static

Definition at line 139 of file recyclebin_v5_enumerator.c.

142 {
144  HRESULT hr;
146  HANDLE hFile;
147 
148  TRACE("(%p, %p)\n", This, pFileSize);
149 
150  dwAttributes = GetFileAttributesW(s->FullName);
154  {
155  pFileSize->QuadPart = 0;
156  return S_OK;
157  }
158 
162  pFileSize->u.LowPart = GetFileSize(hFile, &pFileSize->u.HighPart);
163  if (pFileSize->u.LowPart != INVALID_FILE_SIZE)
164  hr = S_OK;
165  else
168  return hr;
169 }
#define CloseHandle
Definition: compat.h:598
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
HRESULT hr
Definition: shlfolder.c:183
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
#define INVALID_FILE_SIZE
Definition: winbase.h:545
DWORD dwAttributes
Definition: vdmdbg.h:34
#define FILE_SHARE_READ
Definition: compat.h:136
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:652
#define OPEN_EXISTING
Definition: compat.h:634
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)
Definition: Messaging.c:560
#define FILE_ATTRIBUTE_DIRECTORY
Definition: nt_native.h:705
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
Definition: fileinfo.c:331
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
#define GENERIC_READ
Definition: compat.h:135
_In_ HANDLE hFile
Definition: mswsock.h:90
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
#define CreateFileW
Definition: compat.h:600

◆ RecycleBin5File_RecycleBinFile_GetLastModificationTime()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetLastModificationTime ( IN IRecycleBinFile *  This,
OUT FILETIME pLastModificationTime 
)
static

Definition at line 98 of file recyclebin_v5_enumerator.c.

101 {
103  HRESULT hr;
105  HANDLE hFile;
106 
107  TRACE("(%p, %p)\n", This, pLastModificationTime);
108 
109  dwAttributes = GetFileAttributesW(s->FullName);
114  else
118 
119  if (GetFileTime(hFile, NULL, NULL, pLastModificationTime))
120  hr = S_OK;
121  else
124  return hr;
125 }
#define CloseHandle
Definition: compat.h:598
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
HRESULT hr
Definition: shlfolder.c:183
#define INVALID_HANDLE_VALUE
Definition: compat.h:590
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1040
#define FILE_SHARE_WRITE
Definition: nt_native.h:681
DWORD dwAttributes
Definition: vdmdbg.h:34
#define FILE_SHARE_READ
Definition: compat.h:136
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:652
#define OPEN_EXISTING
Definition: compat.h:634
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)
Definition: Messaging.c:560
#define FILE_ATTRIBUTE_DIRECTORY
Definition: nt_native.h:705
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:79
unsigned long DWORD
Definition: ntddk_ex.h:95
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
IRecycleBinFile recycleBinFileImpl
#define FILE_SHARE_DELETE
Definition: nt_native.h:682
GLdouble s
Definition: gl.h:2039
#define GENERIC_READ
Definition: compat.h:135
_In_ HANDLE hFile
Definition: mswsock.h:90
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
#define CreateFileW
Definition: compat.h:600
#define FILE_FLAG_BACKUP_SEMANTICS
Definition: disk.h:41
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
Definition: fileinfo.c:896

◆ RecycleBin5File_RecycleBinFile_GetPhysicalFileSize()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetPhysicalFileSize ( IN IRecycleBinFile *  This,
OUT ULARGE_INTEGER pPhysicalFileSize 
)
static

Definition at line 172 of file recyclebin_v5_enumerator.c.

175 {
177  TRACE("(%p, %p)\n", This, pPhysicalFileSize);
178  pPhysicalFileSize->u.HighPart = 0;
179  pPhysicalFileSize->u.LowPart = s->deletedFile.dwPhysicalFileSize;
180  return S_OK;
181 }
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
#define S_OK
Definition: intsafe.h:52

◆ RecycleBin5File_RecycleBinFile_GetTypeName()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetTypeName ( IN IRecycleBinFile *  This,
IN SIZE_T  BufferSize,
IN OUT LPWSTR  Buffer,
OUT SIZE_T RequiredSize 
)
static

Definition at line 227 of file recyclebin_v5_enumerator.c.

232 {
233  HRESULT hr;
234 
236  DWORD dwRequired;
238  SHFILEINFOW shFileInfo;
239 
240  TRACE("(%p, %u, %p, %p)\n", This, BufferSize, Buffer, RequiredSize);
241 
243  if (!SUCCEEDED(hr))
244  return hr;
245 
246  hr = SHGetFileInfoW(s->FullName, dwAttributes, &shFileInfo, sizeof(shFileInfo), SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES);
247  if (!SUCCEEDED(hr))
248  return hr;
249 
250  dwRequired = (DWORD)(wcslen(shFileInfo.szTypeName) + 1) * sizeof(WCHAR);
251  if (RequiredSize)
252  *RequiredSize = dwRequired;
253 
254  if (BufferSize == 0 && !Buffer)
255  return S_OK;
256 
257  if (BufferSize < dwRequired)
258  return E_OUTOFMEMORY;
259  CopyMemory(Buffer, shFileInfo.szTypeName, dwRequired);
260  return S_OK;
261 }
#define SHGFI_TYPENAME
Definition: shellapi.h:165
HRESULT hr
Definition: shlfolder.c:183
WCHAR szTypeName[80]
Definition: shellapi.h:374
#define DWORD
Definition: nt_native.h:44
DWORD dwAttributes
Definition: vdmdbg.h:34
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
if SUCCEEDED(hr)
Definition: bufpool.h:45
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
Definition: shell32_main.c:414
LONG HRESULT
Definition: typedefs.h:79
#define CopyMemory
Definition: winbase.h:1662
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SHGFI_USEFILEATTRIBUTES
Definition: shellapi.h:179
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetAttributes(IN IRecycleBinFile *This, OUT DWORD *pAttributes)
#define S_OK
Definition: intsafe.h:52
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4431
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
Definition: wdfmemory.h:251

◆ RecycleBin5File_RecycleBinFile_QueryInterface()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_QueryInterface ( IN IRecycleBinFile *  This,
IN REFIID  riid,
OUT void **  ppvObject 
)
static

Definition at line 26 of file recyclebin_v5_enumerator.c.

30 {
32 
33  TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppvObject);
34 
35  if (!ppvObject)
36  return E_POINTER;
37 
39  *ppvObject = &s->recycleBinFileImpl;
41  *ppvObject = &s->recycleBinFileImpl;
42  else if (IsEqualIID(riid, &IID_IExtractIconA) || IsEqualIID(riid, &IID_IExtractIconW))
43  {
47  else
48  return S_FALSE;
49  }
50  else
51  {
52  *ppvObject = NULL;
53  return E_NOINTERFACE;
54  }
55 
56  IUnknown_AddRef(This);
57  return S_OK;
58 }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
EXTERN_C const IID IID_IRecycleBinFile
Definition: recyclebin.h:249
DWORD dwAttributes
Definition: vdmdbg.h:34
#define S_FALSE
Definition: winerror.h:2357
#define debugstr_guid
Definition: kernel32.h:35
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
EXTERN_C HRESULT WINAPI SHCreateFileExtractIconW(_In_ LPCWSTR pszFile, _In_ DWORD dwFileAttributes, _In_ REFIID riid, _Outptr_ void **ppv)
const GUID IID_IUnknown
unsigned long DWORD
Definition: ntddk_ex.h:95
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039
REFIID LPVOID * ppvObject
Definition: precomp.h:44
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetAttributes(IN IRecycleBinFile *This, OUT DWORD *pAttributes)
#define S_OK
Definition: intsafe.h:52
#define NULL
Definition: types.h:112
#define E_POINTER
Definition: winerror.h:2365
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

◆ RecycleBin5File_RecycleBinFile_Release()

static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Release ( IN IRecycleBinFile *  This)
static

Definition at line 81 of file recyclebin_v5_enumerator.c.

83 {
85  ULONG refCount;
86 
87  TRACE("(%p)\n", This);
88 
89  refCount = InterlockedDecrement((PLONG)&s->ref);
90 
91  if (refCount == 0)
93 
94  return refCount;
95 }
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
IRecycleBinFile recycleBinFileImpl
#define InterlockedDecrement
Definition: armddk.h:52
GLdouble s
Definition: gl.h:2039
static VOID RecycleBin5File_Destructor(struct RecycleBin5File *s)
unsigned int ULONG
Definition: retypes.h:1
signed int * PLONG
Definition: retypes.h:5

◆ RecycleBin5File_RecycleBinFile_Restore()

static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Restore ( IN IRecycleBinFile *  This)
static

Definition at line 273 of file recyclebin_v5_enumerator.c.

275 {
277  TRACE("(%p)\n", This);
278  return IRecycleBin5_Restore(s->recycleBin, s->FullName, &s->deletedFile);
279 }
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)
Definition: Messaging.c:560
#define TRACE(s)
Definition: solgame.cpp:4
IRecycleBinFile recycleBinFileImpl
GLdouble s
Definition: gl.h:2039

Variable Documentation

◆ RecycleBin5EnumVtbl

CONST_VTBL struct IRecycleBinEnumListVtbl RecycleBin5EnumVtbl
Initial value:
=
{
}
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_AddRef(IN IRecycleBinEnumList *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Reset(IN IRecycleBinEnumList *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Next(IRecycleBinEnumList *This, IN DWORD celt, IN OUT IRecycleBinFile **rgelt, OUT DWORD *pceltFetched)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Skip(IN IRecycleBinEnumList *This, IN DWORD celt)
static ULONG STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_Release(IN IRecycleBinEnumList *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5Enum_RecycleBinEnumList_QueryInterface(IN IRecycleBinEnumList *This, IN REFIID riid, OUT void **ppvObject)

Definition at line 483 of file recyclebin_v5_enumerator.c.

Referenced by RecycleBin5Enum_Constructor().

◆ RecycleBin5FileVtbl

CONST_VTBL struct IRecycleBinFileVtbl RecycleBin5FileVtbl
Initial value:
=
{
}
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Release(IN IRecycleBinFile *This)
static ULONG STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_AddRef(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 HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetPhysicalFileSize(IN IRecycleBinFile *This, OUT ULARGE_INTEGER *pPhysicalFileSize)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Restore(IN IRecycleBinFile *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetLastModificationTime(IN IRecycleBinFile *This, OUT FILETIME *pLastModificationTime)
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_QueryInterface(IN IRecycleBinFile *This, IN REFIID riid, OUT void **ppvObject)
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)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_Delete(IN IRecycleBinFile *This)
static HRESULT STDMETHODCALLTYPE RecycleBin5File_RecycleBinFile_GetDeletionTime(IN IRecycleBinFile *This, OUT FILETIME *pDeletionTime)

Definition at line 281 of file recyclebin_v5_enumerator.c.

Referenced by RecycleBin5File_Constructor().