ReactOS 0.4.16-dev-2274-gc61d98f
copyansi.c File Reference
#include <k32.h>
Include dependency graph for copyansi.c:

Go to the source code of this file.

Functions

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)
 
BOOL WINAPI CopyFileA (IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN BOOL bFailIfExists)
 

Function Documentation

◆ CopyFileA()

BOOL WINAPI CopyFileA ( IN LPCSTR  lpExistingFileName,
IN LPCSTR  lpNewFileName,
IN BOOL  bFailIfExists 
)

Definition at line 58 of file copyansi.c.

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}
#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
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define COPY_FILE_FAIL_IF_EXISTS
Definition: winbase.h:232
_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

Referenced by copy_change_subsystem(), copy_dll_file(), create_file_with_version(), generate_transform(), main(), START_TEST(), test_copy(), test_CopyFileA(), test_DeleteFileA(), test_directory(), test_exes(), test_pe_os_version(), test_ReplaceFileA(), test_SearchPathA(), and test_states().

◆ CopyFileExA()

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 at line 20 of file copyansi.c.

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}

Referenced by test_CopyFileEx().