ReactOS 0.4.16-dev-2274-gc61d98f
copyansi.c
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: dll/win32/kernel32/client/file/copyansi.c
5 * PURPOSE: Copying files
6 * PROGRAMMER: Ariadne (ariadne@xs4all.nl)
7 */
8
9/* INCLUDES ****************************************************************/
10
11#include <k32.h>
12
13/* FUNCTIONS ****************************************************************/
14
15/*
16 * @implemented
17 */
18BOOL
20CopyFileExA(IN LPCSTR lpExistingFileName,
21 IN LPCSTR lpNewFileName,
22 IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL,
23 IN LPVOID lpData OPTIONAL,
24 IN LPBOOL pbCancel OPTIONAL,
25 IN DWORD dwCopyFlags)
26{
28 UNICODE_STRING lpNewFileNameW;
29 PUNICODE_STRING lpExistingFileNameW;
30
31 lpExistingFileNameW = Basep8BitStringToStaticUnicodeString(lpExistingFileName);
32 if (!lpExistingFileNameW)
33 {
34 return FALSE;
35 }
36
37 if (Basep8BitStringToDynamicUnicodeString(&lpNewFileNameW, lpNewFileName))
38 {
39 Result = CopyFileExW(lpExistingFileNameW->Buffer,
40 lpNewFileNameW.Buffer,
41 lpProgressRoutine,
42 lpData,
43 pbCancel,
44 dwCopyFlags);
45
46 RtlFreeUnicodeString(&lpNewFileNameW);
47 }
48
49 return Result;
50}
51
52
53/*
54 * @implemented
55 */
56BOOL
58CopyFileA(IN LPCSTR lpExistingFileName,
59 IN LPCSTR lpNewFileName,
60 IN BOOL bFailIfExists)
61{
63 UNICODE_STRING lpNewFileNameW;
64 PUNICODE_STRING lpExistingFileNameW;
65
66 lpExistingFileNameW = Basep8BitStringToStaticUnicodeString(lpExistingFileName);
67 if (!lpExistingFileNameW)
68 {
69 return FALSE;
70 }
71
72 if (Basep8BitStringToDynamicUnicodeString(&lpNewFileNameW, lpNewFileName))
73 {
74 Result = CopyFileExW(lpExistingFileNameW->Buffer,
75 lpNewFileNameW.Buffer,
76 NULL,
77 NULL,
78 NULL,
79 (bFailIfExists ? COPY_FILE_FAIL_IF_EXISTS : 0));
80
81 RtlFreeUnicodeString(&lpNewFileNameW);
82 }
83
84 return Result;
85}
86
87/* EOF */
BOOL WINAPI CopyFileExA(IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL, IN LPVOID lpData OPTIONAL, IN LPBOOL pbCancel OPTIONAL, IN DWORD dwCopyFlags)
Definition: copyansi.c:20
BOOL WINAPI CopyFileA(IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN BOOL bFailIfExists)
Definition: copyansi.c:58
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
BOOL WINAPI CopyFileExW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL, IN LPVOID lpData OPTIONAL, IN LPBOOL pbCancel OPTIONAL, IN DWORD dwCopyFlags)
Definition: copy.c:318
BOOLEAN WINAPI Basep8BitStringToDynamicUnicodeString(OUT PUNICODE_STRING UnicodeString, IN LPCSTR String)
Definition: utils.c:226
PUNICODE_STRING WINAPI Basep8BitStringToStaticUnicodeString(IN LPCSTR String)
Definition: utils.c:189
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL * LPBOOL
Definition: minwindef.h:138
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
#define IN
Definition: typedefs.h:39
#define COPY_FILE_FAIL_IF_EXISTS
Definition: winbase.h:232
DWORD(WINAPI * LPPROGRESS_ROUTINE)(_In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ DWORD, _In_ DWORD, _In_ HANDLE, _In_ HANDLE, _In_opt_ LPVOID)
Definition: winbase.h:1197
#define WINAPI
Definition: msvc.h:6
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409
const char * LPCSTR
Definition: xmlstorage.h:183