[USETUP] Improvements for the File-queues code.
[reactos.git] / base / setup / usetup / filequeue.h
index 17ebe04..cf60837 100644 (file)
 /*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS text-mode setup
- * FILE:            subsys/system/usetup/filequeue.h
+ * FILE:            base/setup/usetup/filequeue.h
  * PURPOSE:         File queue functions
- * PROGRAMMER:      Eric Kohl
+ * PROGRAMMER:
  */
 
 #pragma once
 
-#define SPFILENOTIFY_STARTQUEUE       0x1
-#define SPFILENOTIFY_ENDQUEUE         0x2
-#define SPFILENOTIFY_STARTSUBQUEUE    0x3
-#define SPFILENOTIFY_ENDSUBQUEUE      0x4
+#define SPFILENOTIFY_STARTQUEUE         0x00000001
+#define SPFILENOTIFY_ENDQUEUE           0x00000002
+#define SPFILENOTIFY_STARTSUBQUEUE      0x00000003
+#define SPFILENOTIFY_ENDSUBQUEUE        0x00000004
 
-#define SPFILENOTIFY_STARTCOPY        0xb
-#define SPFILENOTIFY_ENDCOPY          0xc
-#define SPFILENOTIFY_COPYERROR        0xd
+#define SPFILENOTIFY_STARTDELETE        0x00000005
+#define SPFILENOTIFY_ENDDELETE          0x00000006
+#define SPFILENOTIFY_DELETEERROR        0x00000007
 
-#define FILEOP_COPY                   0x0
-#define FILEOP_RENAME                 0x1
-#define FILEOP_DELETE                 0x2
-#define FILEOP_BACKUP                 0x3
+#define SPFILENOTIFY_STARTRENAME        0x00000008
+#define SPFILENOTIFY_ENDRENAME          0x00000009
+#define SPFILENOTIFY_RENAMEERROR        0x0000000a
 
-#define FILEOP_ABORT                  0x0
-#define FILEOP_DOIT                   0x1
-#define FILEOP_SKIP                   0x2
-#define FILEOP_RETRY                  FILEOP_DOIT
-#define FILEOP_NEWPATH                0x4
+#define SPFILENOTIFY_STARTCOPY          0x0000000b
+#define SPFILENOTIFY_ENDCOPY            0x0000000c
+#define SPFILENOTIFY_COPYERROR          0x0000000d
+
+#define SPFILENOTIFY_NEEDMEDIA          0x0000000e
+#define SPFILENOTIFY_QUEUESCAN          0x0000000f
+
+#define FILEOP_COPY                     0
+#define FILEOP_RENAME                   1
+#define FILEOP_DELETE                   2
+#define FILEOP_BACKUP                   3
+
+#define FILEOP_ABORT                    0
+#define FILEOP_DOIT                     1
+#define FILEOP_SKIP                     2
+#define FILEOP_RETRY                    FILEOP_DOIT
+#define FILEOP_NEWPATH                  4
 
 
 /* TYPES ********************************************************************/
 
 typedef PVOID HSPFILEQ;
 
+typedef struct _FILEPATHS_W
+{
+    PCWSTR Target;
+    PCWSTR Source;
+    UINT   Win32Error;
+    ULONG  Flags;
+} FILEPATHS_W, *PFILEPATHS_W;
+
 typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)(
-    PVOID Context,
-    UINT Notification,
-    UINT_PTR Param1,
-    UINT_PTR Param2);
+    IN PVOID Context,
+    IN UINT Notification,
+    IN UINT_PTR Param1,
+    IN UINT_PTR Param2);
 
-typedef struct _COPYCONTEXT
-{
-    LPCWSTR DestinationRootPath; /* Not owned by this structure */
-    LPCWSTR InstallPath; /* Not owned by this structure */
-    ULONG TotalOperations;
-    ULONG CompletedOperations;
-    PPROGRESSBAR ProgressBar;
-    PPROGRESSBAR MemoryBars[4];
-} COPYCONTEXT, *PCOPYCONTEXT;
 
 /* FUNCTIONS ****************************************************************/
 
@@ -78,6 +88,7 @@ WINAPI
 SetupCloseFileQueue(
     IN HSPFILEQ QueueHandle);
 
+#if 0 // This is the API that is declared in setupapi.h and exported by setupapi.dll
 BOOL
 WINAPI
 SetupQueueCopyWNew(
@@ -90,23 +101,42 @@ SetupQueueCopyWNew(
     IN PCWSTR TargetDirectory,
     IN PCWSTR TargetFileName,
     IN DWORD CopyStyle);
+#endif
 
+/* A simplified version of SetupQueueCopyW that wraps Cabinet support around */
 BOOL
-SetupQueueCopy(
-    HSPFILEQ QueueHandle,
-    PCWSTR SourceCabinet,
-    PCWSTR SourceRootPath,
-    PCWSTR SourcePath,
-    PCWSTR SourceFilename,
-    PCWSTR TargetDirectory,
-    PCWSTR TargetFilename);
+WINAPI
+SetupQueueCopyWithCab(          // SetupQueueCopyW
+    IN HSPFILEQ QueueHandle,
+    IN PCWSTR SourceCabinet OPTIONAL,
+    IN PCWSTR SourceRootPath,
+    IN PCWSTR SourcePath OPTIONAL,
+    IN PCWSTR SourceFileName,
+    IN PCWSTR TargetDirectory,
+    IN PCWSTR TargetFileName OPTIONAL);
+
+BOOL
+WINAPI
+SetupQueueDeleteW(
+    IN HSPFILEQ QueueHandle,
+    IN PCWSTR PathPart1,
+    IN PCWSTR PathPart2 OPTIONAL);
+
+BOOL
+WINAPI
+SetupQueueRenameW(
+    IN HSPFILEQ QueueHandle,
+    IN PCWSTR SourcePath,
+    IN PCWSTR SourceFileName OPTIONAL,
+    IN PCWSTR TargetPath OPTIONAL,
+    IN PCWSTR TargetFileName);
 
 BOOL
 WINAPI
 SetupCommitFileQueueW(
-    HWND Owner,
-    HSPFILEQ QueueHandle,
-    PSP_FILE_CALLBACK_W MsgHandler,
-    PVOID Context);
+    IN HWND Owner,
+    IN HSPFILEQ QueueHandle,
+    IN PSP_FILE_CALLBACK_W MsgHandler,
+    IN PVOID Context OPTIONAL);
 
 /* EOF */