// 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_)