[USETUP] Move Setup[Delete|Copy|Move]File() from usetup code into the setuplib's...
[reactos.git] / base / setup / lib / filesup.h
index bf5a283..0b82069 100644 (file)
@@ -7,19 +7,58 @@
 
 #pragma once
 
-#if 0
+NTSTATUS
+SetupDeleteFile(
+    IN PCWSTR FileName,
+    IN BOOLEAN ForceDelete); // ForceDelete can be used to delete read-only files
 
-BOOLEAN
-IsValidPath(
-    IN PCWSTR InstallDir);
+NTSTATUS
+SetupCopyFile(
+    IN PCWSTR SourceFileName,
+    IN PCWSTR DestinationFileName,
+    IN BOOLEAN FailIfExists);
+
+#ifndef _WINBASE_
+
+#define MOVEFILE_REPLACE_EXISTING   1
+#define MOVEFILE_COPY_ALLOWED       2
+#define MOVEFILE_WRITE_THROUGH      8
 
 #endif
 
+NTSTATUS
+SetupMoveFile(
+    IN PCWSTR ExistingFileName,
+    IN PCWSTR NewFileName,
+    IN ULONG Flags);
+
+NTSTATUS
+ConcatPathsV(
+    IN OUT PWSTR PathBuffer,
+    IN SIZE_T cchPathSize,
+    IN ULONG NumberOfPathComponents,
+    IN va_list PathComponentsList);
+
+NTSTATUS
+CombinePathsV(
+    OUT PWSTR PathBuffer,
+    IN SIZE_T cchPathSize,
+    IN ULONG NumberOfPathComponents,
+    IN va_list PathComponentsList);
+
 NTSTATUS
 ConcatPaths(
-    IN OUT PWSTR PathElem1,
+    IN OUT PWSTR PathBuffer,
+    IN SIZE_T cchPathSize,
+    IN ULONG NumberOfPathComponents,
+    IN /* PCWSTR */ ...);
+
+NTSTATUS
+CombinePaths(
+    OUT PWSTR PathBuffer,
     IN SIZE_T cchPathSize,
-    IN PCWSTR PathElem2 OPTIONAL);
+    IN ULONG NumberOfPathComponents,
+    IN /* PCWSTR */ ...);
 
 BOOLEAN
 DoesPathExist(
@@ -29,6 +68,11 @@ DoesPathExist(
 BOOLEAN
 DoesFileExist(
     IN HANDLE RootDirectory OPTIONAL,
+    IN PCWSTR PathNameToFile);
+
+// FIXME: DEPRECATED! HACKish function that needs to be deprecated!
+BOOLEAN
+DoesFileExist_2(
     IN PCWSTR PathName OPTIONAL,
     IN PCWSTR FileName);
 
@@ -41,13 +85,13 @@ NtPathToDiskPartComponents(
 
 NTSTATUS
 OpenAndMapFile(
-    IN HANDLE RootDirectory OPTIONAL,
-    IN PCWSTR PathName OPTIONAL,
-    IN PCWSTR FileName,             // OPTIONAL
+    IN  HANDLE RootDirectory OPTIONAL,
+    IN  PCWSTR PathNameToFile,
     OUT PHANDLE FileHandle,         // IN OUT PHANDLE OPTIONAL
     OUT PHANDLE SectionHandle,
     OUT PVOID* BaseAddress,
-    OUT PULONG FileSize OPTIONAL);
+    OUT PULONG FileSize OPTIONAL,
+    IN  BOOLEAN ReadWriteAccess);
 
 BOOLEAN
 UnMapFile(