ReactOS 0.4.16-dev-92-g0c2cdca
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
7extern "C" {
8#endif
9
10#include <pshpack1.h>
11
12/* MS Windows 2000/XP/2003 */
14{
22
23#include <poppack.h>
24
25/* COM interface */
26
27typedef interface IRecycleBin5 IRecycleBin5;
29
30#define INTERFACE IRecycleBin5
32{
34
35 /* IUnknown interface */
39
40 /* IRecycleBin interface */
43 STDMETHOD(EnumObjects)(THIS_ OUT IRecycleBinEnumList **ppEnumList) PURE;
44
45 /* IRecycleBin5 interface */
47 THIS_
48 IN LPCWSTR pDeletedFileName,
49 IN DELETED_FILE_RECORD *pDeletedFile) PURE;
50 STDMETHOD(Restore)(
51 THIS_
52 IN LPCWSTR pDeletedFileName,
53 IN DELETED_FILE_RECORD *pDeletedFile) PURE;
54 STDMETHOD(OnClosing)(
55 THIS_
56 IN IRecycleBinEnumList *prbel) PURE;
57
59};
60#undef INTERFACE
61
62#ifdef COBJMACROS
63#define IRecycleBin5_QueryInterface(This, riid, ppvObject) \
64 (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
65#define IRecycleBin5_AddRef(This) \
66 (This)->lpVtbl->AddRef(This)
67#define IRecycleBin5_Release(This) \
68 (This)->lpVtbl->Release(This)
69#define IRecycleBin5_DeleteFile(This, szFileName) \
70 (This)->lpVtbl->DeleteFile(This, szFileName)
71#define IRecycleBin5_EmptyRecycleBin(This) \
72 (This)->lpVtbl->EmptyRecycleBin(This)
73#define IRecycleBin5_EnumObjects(This, ppEnumList) \
74 (This)->lpVtbl->EnumObjects(This, ppEnumList)
75#define IRecycleBin5_Delete(This, pDeletedFileName, pDeletedFile) \
76 (This)->lpVtbl->Delete(This, pDeletedFileName, pDeletedFile)
77#define IRecycleBin5_Restore(This, pDeletedFileName, pDeletedFile) \
78 (This)->lpVtbl->Restore(This, pDeletedFileName, pDeletedFile)
79#define IRecycleBin5_OnClosing(This, prb5el) \
80 (This)->lpVtbl->OnClosing(This, prb5el)
81#endif
82
86 _In_ IRecycleBin5 *prb,
87 _In_ HANDLE hInfo,
88 _In_ HANDLE hInfoMapped,
89 _In_ LPCWSTR szPrefix,
90 _Out_ IUnknown **ppUnknown);
91
92#ifdef __cplusplus
93}
94#endif
BOOL Delete(LPCTSTR ServiceName)
Definition: delete.c:12
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define EXTERN_C
Definition: basetyps.h:12
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ BOOLEAN Release
Definition: cdrom.h:920
#define MAX_PATH
Definition: compat.h:34
unsigned long DWORD
Definition: ntddk_ex.h:95
REFIID riid
Definition: atlbase.h:39
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define END_INTERFACE
Definition: objbase.h:232
#define BEGIN_INTERFACE
Definition: objbase.h:231
#define REFIID
Definition: guiddef.h:118
#define EmptyRecycleBin
Definition: recyclebin.h:111
EXTERN_C const IID IID_IRecycleBin5
Definition: recyclebin_v5.h:28
struct _DELETED_FILE_RECORD * PDELETED_FILE_RECORD
EXTERN_C HRESULT RecycleBin5Enum_Constructor(_In_ IRecycleBin5 *prb, _In_ HANDLE hInfo, _In_ HANDLE hInfoMapped, _In_ LPCWSTR szPrefix, _Out_ IUnknown **ppUnknown)
interface IRecycleBin5 IRecycleBin5
Definition: recyclebin_v5.h:27
struct _DELETED_FILE_RECORD DELETED_FILE_RECORD
CHAR FileNameA[MAX_PATH]
Definition: recyclebin_v5.h:15
WCHAR FileNameW[MAX_PATH]
Definition: recyclebin_v5.h:20
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
#define DeleteFile
Definition: winbase.h:3764
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
int WINAPI EnumObjects(_In_ HDC, _In_ int, _In_ GOBJENUMPROC, _In_ LPARAM)
__wchar_t WCHAR
Definition: xmlstorage.h:180
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
char CHAR
Definition: xmlstorage.h:175