2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Setup Library
4 * FILE: base/setup/lib/fileqsup.h
5 * PURPOSE: Interfacing with Setup* API File Queue support functions
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
7 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
14 // FIXME: Temporary measure until all the users of this header
15 // (usetup...) use or define SetupAPI-conforming APIs.
16 #if defined(_SETUPAPI_H_) || defined(_INC_SETUPAPI)
22 #define SPFILENOTIFY_STARTQUEUE 0x00000001
23 #define SPFILENOTIFY_ENDQUEUE 0x00000002
24 #define SPFILENOTIFY_STARTSUBQUEUE 0x00000003
25 #define SPFILENOTIFY_ENDSUBQUEUE 0x00000004
27 #define SPFILENOTIFY_STARTDELETE 0x00000005
28 #define SPFILENOTIFY_ENDDELETE 0x00000006
29 #define SPFILENOTIFY_DELETEERROR 0x00000007
31 #define SPFILENOTIFY_STARTRENAME 0x00000008
32 #define SPFILENOTIFY_ENDRENAME 0x00000009
33 #define SPFILENOTIFY_RENAMEERROR 0x0000000a
35 #define SPFILENOTIFY_STARTCOPY 0x0000000b
36 #define SPFILENOTIFY_ENDCOPY 0x0000000c
37 #define SPFILENOTIFY_COPYERROR 0x0000000d
39 #define SPFILENOTIFY_NEEDMEDIA 0x0000000e
40 #define SPFILENOTIFY_QUEUESCAN 0x0000000f
43 #define FILEOP_RENAME 1
44 #define FILEOP_DELETE 2
45 #define FILEOP_BACKUP 3
47 #define FILEOP_ABORT 0
50 #define FILEOP_RETRY FILEOP_DOIT
51 #define FILEOP_NEWPATH 4
54 /* TYPES ********************************************************************/
56 typedef PVOID HSPFILEQ
;
58 typedef struct _FILEPATHS_W
64 } FILEPATHS_W
, *PFILEPATHS_W
;
66 typedef UINT (CALLBACK
* PSP_FILE_CALLBACK_W
)(
75 /* FUNCTIONS ****************************************************************/
77 // #define SetupOpenFileQueue
79 (WINAPI
* pSpFileQueueOpen
)(VOID
);
81 extern pSpFileQueueOpen SpFileQueueOpen
;
83 // #define SetupCloseFileQueue
85 (WINAPI
* pSpFileQueueClose
)(
86 IN HSPFILEQ QueueHandle
);
88 extern pSpFileQueueClose SpFileQueueClose
;
90 // #define SetupQueueCopyW
92 (WINAPI
* pSpFileQueueCopy
)(
93 IN HSPFILEQ QueueHandle
,
94 IN PCWSTR SourceRootPath
,
95 IN PCWSTR SourcePath OPTIONAL
,
96 IN PCWSTR SourceFileName
,
97 IN PCWSTR SourceDescription OPTIONAL
,
98 IN PCWSTR SourceCabinet OPTIONAL
,
99 IN PCWSTR SourceTagFile OPTIONAL
,
100 IN PCWSTR TargetDirectory
,
101 IN PCWSTR TargetFileName OPTIONAL
,
104 extern pSpFileQueueCopy SpFileQueueCopy
;
106 // #define SetupQueueDeleteW
108 (WINAPI
* pSpFileQueueDelete
)(
109 IN HSPFILEQ QueueHandle
,
111 IN PCWSTR PathPart2 OPTIONAL
);
113 extern pSpFileQueueDelete SpFileQueueDelete
;
115 // #define SetupQueueRenameW
117 (WINAPI
* pSpFileQueueRename
)(
118 IN HSPFILEQ QueueHandle
,
119 IN PCWSTR SourcePath
,
120 IN PCWSTR SourceFileName OPTIONAL
,
121 IN PCWSTR TargetPath OPTIONAL
,
122 IN PCWSTR TargetFileName
);
124 extern pSpFileQueueRename SpFileQueueRename
;
126 // #define SetupCommitFileQueueW
128 (WINAPI
* pSpFileQueueCommit
)(
130 IN HSPFILEQ QueueHandle
,
131 IN PSP_FILE_CALLBACK_W MsgHandler
,
132 IN PVOID Context OPTIONAL
);
134 extern pSpFileQueueCommit SpFileQueueCommit
;