48 lines
1.4 KiB
C++
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_)
|