ReactOS  0.4.14-dev-317-g96040ec
recyclebin_v5.h
Go to the documentation of this file.
1 /* Recycle bin management
2  * This file is under the GPLv2 licence
3  * Copyright (C) 2006 Hervé Poussineau <hpoussin@reactos.org>
4  */
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 #include <pshpack1.h>
11 
12 /* MS Windows 2000/XP/2003 */
13 typedef struct _DELETED_FILE_RECORD
14 {
22 
23 #include <poppack.h>
24 
25 /* COM interface */
26 
27 typedef interface IRecycleBin5 IRecycleBin5;
29 
30 typedef struct IRecycleBin5Vtbl
31 {
32  /* IRecycleBin interface */
36  OUT void **ppvObject);
37 
40 
43 
47 
50 
53  OUT IRecycleBinEnumList **ppEnumList);
54 
55  /* IRecycleBin5 interface */
60 
61  HRESULT (STDMETHODCALLTYPE *Restore)(
65 
66  HRESULT (STDMETHODCALLTYPE *OnClosing)(
68  IN IRecycleBinEnumList *prbel);
70 
71 interface IRecycleBin5
72 {
73  CONST_VTBL struct IRecycleBin5Vtbl *lpVtbl;
74 };
75 
76 #ifdef COBJMACROS
77 #define IRecycleBin5_QueryInterface(This, riid, ppvObject) \
78  (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
79 #define IRecycleBin5_AddRef(This) \
80  (This)->lpVtbl->AddRef(This)
81 #define IRecycleBin5_Release(This) \
82  (This)->lpVtbl->Release(This)
83 #define IRecycleBin5_DeleteFile(This, szFileName) \
84  (This)->lpVtbl->DeleteFile(This, szFileName)
85 #define IRecycleBin5_EmptyRecycleBin(This) \
86  (This)->lpVtbl->EmptyRecycleBin(This)
87 #define IRecycleBin5_EnumObjects(This, ppEnumList) \
88  (This)->lpVtbl->EnumObjects(This, ppEnumList)
89 #define IRecycleBin5_Delete(This, pDeletedFileName, pDeletedFile) \
90  (This)->lpVtbl->Delete(This, pDeletedFileName, pDeletedFile)
91 #define IRecycleBin5_Restore(This, pDeletedFileName, pDeletedFile) \
92  (This)->lpVtbl->Restore(This, pDeletedFileName, pDeletedFile)
93 #define IRecycleBin5_OnClosing(This, prb5el) \
94  (This)->lpVtbl->OnClosing(This, prb5el)
95 #endif
96 
97 HRESULT
99  IN IRecycleBin5 *prb,
100  IN HANDLE hInfo,
101  IN HANDLE hInfoMapped,
102  IN LPCWSTR szPrefix,
103  OUT IUnknown **ppUnknown);
104 
105 #ifdef __cplusplus
106 }
107 #endif
IN LPCWSTR IN DELETED_FILE_RECORD * pDeletedFile
Definition: recyclebin_v5.h:58
#define IN
Definition: typedefs.h:38
#define REFIID
Definition: guiddef.h:118
EXTERN_C const IID IID_IRecycleBin5
Definition: recyclebin_v5.h:28
_In_ BOOLEAN Release
Definition: classpnp.h:929
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
char CHAR
Definition: xmlstorage.h:175
struct _DELETED_FILE_RECORD * PDELETED_FILE_RECORD
IN REFIID OUT void ** ppvObject
Definition: recyclebin_v5.h:35
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
#define DeleteFile
Definition: winbase.h:3588
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM)
CHAR FileNameA[MAX_PATH]
Definition: recyclebin_v5.h:15
struct _DELETED_FILE_RECORD DELETED_FILE_RECORD
#define CONST_VTBL
Definition: objbase.h:222
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
#define EmptyRecycleBin
Definition: recyclebin.h:108
#define MAX_PATH
Definition: compat.h:26
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
WCHAR FileNameW[MAX_PATH]
Definition: recyclebin_v5.h:20
unsigned long DWORD
Definition: ntddk_ex.h:95
IN LPCWSTR szFileName
Definition: recyclebin_v5.h:46
ULONG(STDMETHODCALLTYPE *AddRef)(IN IRecycleBin5 *This)
OUT IRecycleBinEnumList ** ppEnumList
Definition: recyclebin_v5.h:53
interface IRecycleBin5 IRecycleBin5
Definition: recyclebin_v5.h:27
struct IRecycleBin5Vtbl IRecycleBin5Vtbl
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
HRESULT(STDMETHODCALLTYPE *QueryInterface)(IN IRecycleBin5 *This
#define OUT
Definition: typedefs.h:39
IN IRecycleBinEnumList * prbel
Definition: recyclebin_v5.h:68
#define EXTERN_C
Definition: basetyps.h:12
IN LPCWSTR pDeletedFileName
Definition: recyclebin_v5.h:58
BOOL Delete(LPCTSTR ServiceName)
Definition: delete.c:12
HRESULT RecycleBin5Enum_Constructor(IN IRecycleBin5 *prb, IN HANDLE hInfo, IN HANDLE hInfoMapped, IN LPCWSTR szPrefix, OUT IUnknown **ppUnknown)