[KERNEL32]
[reactos.git] / reactos / dll / win32 / kernel32 / file / copy.c
index 760fda4..30c847b 100644 (file)
 /* INCLUDES ****************************************************************/
 
 #include <k32.h>
-#include <wine/debug.h>
+#define NDEBUG
+#include <debug.h>
 
-WINE_DEFAULT_DEBUG_CHANNEL(kernel32file);
+#if DBG
+DEBUG_CHANNEL(kernel32file);
+#endif
 
 /* FUNCTIONS ****************************************************************/
 
@@ -311,37 +314,36 @@ CopyFileExW (
  */
 BOOL
 WINAPI
-CopyFileExA (
-       LPCSTR                  lpExistingFileName,
-       LPCSTR                  lpNewFileName,
-       LPPROGRESS_ROUTINE      lpProgressRoutine,
-       LPVOID                  lpData,
-       BOOL                    *pbCancel,
-       DWORD                   dwCopyFlags
-       )
+CopyFileExA(IN LPCSTR lpExistingFileName,
+            IN LPCSTR lpNewFileName,
+            IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
+            IN LPVOID lpData OPTIONAL,
+            IN LPBOOL pbCancel OPTIONAL,
+            IN DWORD dwCopyFlags)
 {
-       PWCHAR ExistingFileNameW;
-   PWCHAR NewFileNameW;
-       BOOL Result;
-
-   if (!(ExistingFileNameW = FilenameA2W(lpExistingFileName, FALSE)))
-      return FALSE;
-
-   if (!(NewFileNameW = FilenameA2W(lpNewFileName, TRUE)))
-      return FALSE;
-
-   Result = CopyFileExW (ExistingFileNameW ,
-                         NewFileNameW ,
-                             lpProgressRoutine,
-                             lpData,
-                             pbCancel,
-                             dwCopyFlags);
-
-       RtlFreeHeap (RtlGetProcessHeap (),
-                    0,
-                NewFileNameW);
-
-       return Result;
+    BOOL Result = FALSE;
+    UNICODE_STRING lpNewFileNameW;
+    PUNICODE_STRING lpExistingFileNameW;
+
+    lpExistingFileNameW = Basep8BitStringToStaticUnicodeString(lpExistingFileName);
+    if (!lpExistingFileName)
+    {
+        return FALSE;
+    }
+
+    if (Basep8BitStringToDynamicUnicodeString(&lpNewFileNameW, lpNewFileName))
+    {
+        Result = CopyFileExW(lpExistingFileNameW->Buffer,
+                             lpNewFileNameW.Buffer,
+                             lpProgressRoutine,
+                             lpData,
+                             pbCancel,
+                             dwCopyFlags);
+
+        RtlFreeUnicodeString(&lpNewFileNameW);
+    }
+
+    return Result;
 }