1 #ifndef _RECYCLEBIN_PRIVATE_H_ 2 #define _RECYCLEBIN_PRIVATE_H_ 3 4 #include <stdio.h> 5 6 #define COBJMACROS 7 8 #include <shlobj.h> 9 10 #include "recyclebin.h" 11 #include "recyclebin_v5.h" 12 13 #include <wine/debug.h> 14 WINE_DEFAULT_DEBUG_CHANNEL(recyclebin); 15 16 #ifdef __cplusplus HResultFromWin32(DWORD hr)17static inline HRESULT HResultFromWin32(DWORD hr) 18 { 19 // HRESULT_FROM_WIN32 will evaluate its parameter twice, this function will not. 20 return HRESULT_FROM_WIN32(hr); 21 } 22 #endif 23 24 /* Defines */ 25 26 #define RECYCLE_BIN_DIRECTORY_WITH_ACL L"RECYCLER" 27 #define RECYCLE_BIN_DIRECTORY_WITHOUT_ACL L"RECYCLED" 28 #define RECYCLE_BIN_FILE_NAME L"INFO2" 29 #define RECYCLE_BIN_FILE_NAME_V1 L"INFO" 30 31 #define ROUND_UP(N, S) ((( (N) + (S) - 1) / (S) ) * (S) ) 32 33 /* Structures on disk */ 34 35 #include <pshpack1.h> 36 37 typedef struct _INFO2_HEADER 38 { 39 DWORD dwVersion; 40 DWORD dwNumberOfEntries; /* unused */ 41 DWORD dwHighestRecordUniqueId; /* unused */ 42 DWORD dwRecordSize; 43 DWORD dwTotalLogicalSize; 44 } INFO2_HEADER, *PINFO2_HEADER; 45 46 #include <poppack.h> 47 48 /* Prototypes */ 49 50 /* recyclebin_generic.c */ 51 52 EXTERN_C 53 HRESULT RecycleBinGeneric_Constructor(OUT IUnknown **ppUnknown); 54 55 EXTERN_C 56 BOOL RecycleBinGeneric_IsEqualFileIdentity(const RECYCLEBINFILEIDENTITY *p1, const RECYCLEBINFILEIDENTITY *p2); 57 58 /* recyclebin_generic_enumerator.c */ 59 60 EXTERN_C 61 HRESULT RecycleBinGenericEnum_Constructor(OUT IRecycleBinEnumList **pprbel); 62 63 /* recyclebin_v5.c */ 64 65 EXTERN_C 66 HRESULT RecycleBin5_Constructor(_In_ LPCWSTR VolumePath, _Out_ IUnknown **ppUnknown); 67 68 #endif /* _RECYCLEBIN_PRIVATE_H_ */ 69