- Move NCI generated files to arch-specific directories
[reactos.git] / reactos / lib / recyclebin / recyclebin_v5.h
1 /* Recycle bin management
2 * This file is under the GPLv2 licence
3 * Copyright (C) 2006 Hervé Poussineau <hpoussin@reactos.org>
4 */
5
6 #include "recyclebin_private.h"
7
8 #include <pshpack1.h>
9
10 /* MS Windows 2000/XP/2003 */
11 typedef struct _DELETED_FILE_RECORD
12 {
13 CHAR FileNameA[MAX_PATH];
14 DWORD dwRecordUniqueId;
15 DWORD dwDriveNumber;
16 FILETIME DeletionTime;
17 DWORD dwPhysicalFileSize;
18 WCHAR FileNameW[MAX_PATH];
19 } DELETED_FILE_RECORD, *PDELETED_FILE_RECORD;
20
21 #include <poppack.h>
22
23 static BOOL
24 CloseHandle5(
25 IN HANDLE hDeletedFile);
26
27 static BOOL
28 DeleteFile5(
29 IN PRECYCLE_BIN bin,
30 IN LPCWSTR FullPath,
31 IN LPCWSTR FileName);
32
33 static BOOL
34 EmptyRecycleBin5(
35 IN PRECYCLE_BIN* bin);
36
37 static BOOL
38 EnumerateFiles5(
39 IN PRECYCLE_BIN bin,
40 IN PINT_ENUMERATE_RECYCLEBIN_CALLBACK pFnCallback,
41 IN PVOID Context OPTIONAL);
42
43 static BOOL
44 GetDetails5(
45 IN PRECYCLE_BIN bin,
46 IN HANDLE hDeletedFile,
47 IN DWORD BufferSize,
48 IN OUT PDELETED_FILE_DETAILS_W FileDetails OPTIONAL,
49 OUT LPDWORD RequiredSize OPTIONAL);
50
51 static BOOL
52 RestoreFile5(
53 IN PRECYCLE_BIN bin,
54 IN HANDLE hDeletedFile);
55
56 static BOOL
57 IntDeleteRecursive(
58 IN LPCWSTR FullName);
59
60 static BOOL
61 IntEmptyRecycleBinCallback(
62 IN PVOID Context,
63 IN HANDLE hDeletedFile);
64
65 static BOOL
66 IntGetFullName(
67 IN PRECYCLE_BIN bin,
68 IN PDELETED_FILE_RECORD pDeletedFile,
69 OUT LPWSTR* pFullName);
70
71 static BOOL
72 IntSearchRecord(
73 IN PRECYCLE_BIN bin,
74 IN HANDLE hDeletedFile,
75 OUT PDELETED_FILE_RECORD DeletedFile,
76 OUT PLARGE_INTEGER Position OPTIONAL);