Files
geomative/GeomativeStudio/h/MyCopyFile.h
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

48 lines
1.4 KiB
C++

// MyCopyFile.h: interface for the CMyCopyFile class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MYCOPYFILE_H__A9FC44E9_501E_4966_84C2_6CBFA1FBDBC0__INCLUDED_)
#define AFX_MYCOPYFILE_H__A9FC44E9_501E_4966_84C2_6CBFA1FBDBC0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
enum EN_COPYFILE_RES
{
EN_GET_SRCATTRI_FAILED = 0,
EN_COPY_SUCCED,
};
class CMyCopyFile
{
public:
CMyCopyFile();
virtual ~CMyCopyFile();
private:
static FILE* g_pCopyFileLog;
static CRITICAL_SECTION* g_pLogCriticSec;
public:
bool TransferFile(CString strSrcDir, CString strDstDir, CString strFileName);
void GetTransferInfo(DWORD &dwTransferedBytes, DWORD &dwTotalFileSize);
int GetTansferLastError(){return m_iErrorCode;}
void Initialize();
protected:
void PrintLog(const CString& strLog);
static DWORD CALLBACK CopyProgressInfo(LARGE_INTEGER iTotalFileSize, LARGE_INTEGER iTotalBytesTransferred, LARGE_INTEGER iStreamSize,
LARGE_INTEGER iStreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason,
HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData);
LARGE_INTEGER m_liTransferedBytes;
LARGE_INTEGER m_liTotalFileSize;
int m_iErrorCode;
BOOL m_bIsCancelCopy;
};
#endif // !defined(AFX_MYCOPYFILE_H__A9FC44E9_501E_4966_84C2_6CBFA1FBDBC0__INCLUDED_)