/************************************************************************/ /* /* CupdateModule Class /* /* Á¤ÇØÁø ±ÔÄ¢¿¡ µû¶ó, FTP¸¦ ÅëÇØ ÇØ´ç ÇÁ·Î±×·¥ ¾÷µ¥ÀÌÆ® /* /* ¸¸µçÀÌ : Á¶Àç½Ä(½ã ¼­¹öÆÀ) /* /* ³¯Â¥ : 2006.2.1 /* /* ¹öÀü : 0.0.1 /* /************************************************************************/ #pragma once #include "define.h" #include "FtpNetwork.h" #include "UpdateFolderInfo.h" #include "UpdateFileInfo.h" #include "VersionInfo.h" #include "MessageDefine.h" #include #include #include #include "PublicStruct.h" using namespace std; class DLL_DECLARE CUpdateModule { public: CUpdateModule(void); ~CUpdateModule(void); private: TCHAR m_szBasicDownDir[MAX_PATH]; //·ÎÄÿ¡ ´Ù¿î·ÎµåÇÒ ±âº» °æ·Î. CVersionInfo m_CurVersion; //ÇöÀç ¾÷µ¥ÀÌÆ® ÇÏ·Á´Â ¾îÇø®ÄÉÀ̼ÇÀÇ ÇöÀç ¹öÀü. UPDATE_FILE_INFO m_UpdateInfo; // À§ÀÇ 4°³ÀÇ ¸â¹ö º¯¼ö´Â ¹Ýµå½Ã ½ÃÀÛÀü¿¡ °ªÀ» ´ëÀÔÇØÁÖ°í ½ÃÀÛÇØ¾ß ÇÑ´Ù. CFtpNetwork m_FtpNetwork; unsigned int m_unThreadID; BYTE m_byUpdateFolderCount; CUpdateFolderInfo m_UpdateFolderInfo[MAX_UPDATE_FOLDER_COUNT]; CUpdateFileInfo m_UpdateFileInfo; BOOL m_bUpdateStart; //Setter, Getter public: void SetLocalBasicDownDir( TCHAR* pszDir ); void GetLocalBasicDownDir( OUT TCHAR* pszDir, int nSize ); TCHAR* GetLocalBasicDownDir(){ return m_szBasicDownDir; } void SetUpdateNumber( BYTE byUpdateNumber ){ m_UpdateInfo.m_byUpdateNumber = byUpdateNumber; } BYTE GetUpdateNumber(){ return m_UpdateInfo.m_byUpdateNumber; } void SetUpdateSequence( BYTE byUpdateSequence ){ m_UpdateInfo.m_byUpdateSequence = byUpdateSequence; } BYTE GetUpdateSequence(){ return m_UpdateInfo.m_byUpdateSequence; } CVersionInfo& GetCurVersion(){ return m_CurVersion; } void SetCurVerInfo( TCHAR* pszVersion ); void SetProcessName( TCHAR* pszName ); void GetProcessName( OUT TCHAR* pszName, int nSize ); TCHAR* GetProcessName(){ return m_UpdateInfo.m_szProcessName; } //½ÇÇà public: BOOL Init(); BOOL ConnectFTP( TCHAR* pszIP, int nPort, TCHAR* pszID, TCHAR* pszPass ); VOID DisconnectFTP(); BOOL IsConnectFTP(){ return m_FtpNetwork.IsConnectFTP(); } VOID StopUpdate(); //CallBack public: fnMsgCallBack m_fnMsgCallback; VOID SetMsgCallBack( fnMsgCallBack CallBack ); BOOL (*m_fnSaveVersion)( eUPDATE_TYPE type, BYTE byUpdateNum, CVersionInfo* pVerInfo ); void AddMessage( UINT uMsg, VOID* pData = NULL ); public: BOOL GetFtpIP( TCHAR* pszIP, int nSize ); int GetFtpPort(); void GetModuleDirectory( TCHAR* pszDirPath, int nSize ); BOOL CheckLiveProcess( TCHAR* pszProcess, BOOL bKillProcess = FALSE ); eRC_VERSION CheckVersionFiles( CVersionInfo& rVerInfo ); BOOL GetUpdateFolderCount( CVersionInfo CurVersion, OUT BYTE& byUpdateFolderCount ); BOOL UpdateOneProcess(); void CreateLocalProcessDownDir( ); void MakeDirectory( const char* pszDir ); void SendTerminateProcessMsg(); private: HANDLE MakeLocalFile( const char* pszLocalFilePath ); //·ÎÄÃÆÄÀÏÀ» »ý¼ºÇÑ´Ù. BOOL GetSplitFilePath( const TCHAR* pszFilePath, TCHAR* pszDir, TCHAR* pszFile ); BOOL GetLocalFileName( const TCHAR* pszLocalPath, const TCHAR* pszRemoteFileName, TCHAR* pszLocalFilePath ); BOOL SetRemoteDirectory( const TCHAR* pszRemoteDir ); BOOL CanFileDownload( const TCHAR* pszLocalFilePath, const WIN32_FIND_DATA& remoteFileInfo ); BOOL DownloadFile( const TCHAR* pszRemoteFilePath, TCHAR* pszLocalPath = NULL ); BOOL DownloadFilesOnFileList( TCHAR* pszRemoteDirPath ); void GetAbsolteLocalDownDir( string strRelativeDir, string& strAbsolteDir ); void GetVersionFromString( char* pszVersion, byte* byVer, int nMaxVerCount ); virtual BOOL SaveLocalVerInfo( CVersionInfo info ){ return TRUE; } void GetRemoteVersionFolderPath( TCHAR* pszFolderPath, int nSize, const TCHAR* pszVerFolder ); void GetLocalVersionFolderPath( char* pszFolderPath, int nSize, const char* pszVerFolder ); void GetRemoteVersionFilePath( TCHAR* pszVerFilePath, int nSize ); void GetLocalFileListPath( char* pszFilePath, int nSize, const char* pszVerFolder ); void GetRemoteFileListPath( char* pszFilePath, int nSize, const char* pszVerFolder ); VOID KillProcess(DWORD th32ProcessID); };