This function copies an existing file to a new file. A remote API (RAPI) version of this function exists called CeCopyFile (RAPI).
BOOL CopyFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists );
[in] Long pointer to a null-terminated string that specifies the name of an existing file.
[in] Long pointer to a null-terminated string that specifies the name of the new file.
[in] Boolean that specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is set to TRUE and the new file already exists, the function fails. If this parameter is set to FALSE and the new file already exists, the function overwrites the existing file and succeeds.
Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.
File attributes for the existing file are copied to the new file. For example, if an existing file has the FILE_ATTRIBUTE_READONLY file attribute, a copy created through a call to this function also has FILE_ATTRIBUTE_READONLY. For more information, see CreateFile.
To store the maximum number of files on PC card storage devices, limit file names to eight uppercase characters and file extensions to three uppercase characters. In addition, do not allow non-OEM characters in file names. File names that do not conform to these limits require more than one physical directory entry on a PC card.
This function does not operate on directories.