2014-02-04 10:45:55 +00:00
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#define COBJMACROS
|
|
|
|
|
2006-11-08 11:47:44 +00:00
|
|
|
#include "recyclebin.h"
|
2014-02-04 10:45:55 +00:00
|
|
|
#include "recyclebin_v5.h"
|
|
|
|
|
2007-10-31 13:04:47 +00:00
|
|
|
#include <wine/debug.h>
|
2014-02-04 10:45:55 +00:00
|
|
|
WINE_DEFAULT_DEBUG_CHANNEL(recyclebin);
|
2006-11-08 11:47:44 +00:00
|
|
|
|
|
|
|
/* Defines */
|
|
|
|
|
|
|
|
#define RECYCLE_BIN_DIRECTORY_WITH_ACL L"RECYCLER"
|
|
|
|
#define RECYCLE_BIN_DIRECTORY_WITHOUT_ACL L"RECYCLED"
|
|
|
|
#define RECYCLE_BIN_FILE_NAME L"INFO2"
|
|
|
|
|
|
|
|
#define ROUND_UP(N, S) ((( (N) + (S) - 1) / (S) ) * (S) )
|
|
|
|
|
|
|
|
/* Structures on disk */
|
|
|
|
|
|
|
|
#include <pshpack1.h>
|
|
|
|
|
|
|
|
typedef struct _INFO2_HEADER
|
|
|
|
{
|
|
|
|
DWORD dwVersion;
|
2007-11-27 08:22:16 +00:00
|
|
|
DWORD dwNumberOfEntries; /* unused */
|
|
|
|
DWORD dwHighestRecordUniqueId; /* unused */
|
2006-11-08 11:47:44 +00:00
|
|
|
DWORD dwRecordSize;
|
|
|
|
DWORD dwTotalLogicalSize;
|
|
|
|
} INFO2_HEADER, *PINFO2_HEADER;
|
|
|
|
|
|
|
|
#include <poppack.h>
|
|
|
|
|
|
|
|
/* Prototypes */
|
|
|
|
|
2007-10-31 08:57:35 +00:00
|
|
|
/* recyclebin_generic.c */
|
2006-11-08 11:47:44 +00:00
|
|
|
|
2007-10-31 08:57:35 +00:00
|
|
|
HRESULT RecycleBinGeneric_Constructor(OUT IUnknown **ppUnknown);
|
2006-11-08 11:47:44 +00:00
|
|
|
|
2007-10-31 08:57:35 +00:00
|
|
|
/* recyclebin_generic_enumerator.c */
|
2006-11-08 11:47:44 +00:00
|
|
|
|
2007-11-27 08:22:16 +00:00
|
|
|
HRESULT RecycleBinGenericEnum_Constructor(OUT IRecycleBinEnumList **pprbel);
|
2006-11-08 11:47:44 +00:00
|
|
|
|
2007-10-31 08:57:35 +00:00
|
|
|
/* recyclebin_v5.c */
|
2006-11-08 11:47:44 +00:00
|
|
|
|
2007-10-31 08:57:35 +00:00
|
|
|
HRESULT RecycleBin5_Constructor(IN LPCWSTR VolumePath, OUT IUnknown **ppUnknown);
|