//--------------------------------------------------------------------------- #ifndef UpgradeThreadH #define UpgradeThreadH //--------------------------------------------------------------------------- #define UM_SHOWTEXT WM_USER+0x1000 #define UM_PROGRESS WM_USER+0x1001 #define UM_COMPLETE WM_USER+0x1003 #define ERROR_OPEN_FILE 10 #define ERROR_MEMORY 11 #define ERROR_SIZE 12 #define ERROR_INTERNET_OPEN 13 #define ERROR_INTERNET_CONN 14 #define ERROR_INTERNET_REQ 15 #define ERROR_INTERNET_SEND 16 #define ERROR_FILELIST_GET 17 #define ERROR_FILE_SIZE 18 //--------------------------------------------------------------------------- class TUpgradeThread : public TThread { private: int m_iMode, m_idSoft; HWND m_hWnd; HANDLE m_hSema; TStringList* m_lstMD5; bool m_bUpdateSelf; //是否更新自身 String m_AppPath, m_PathName, m_Server, m_UpdateUrl, m_GlobalFile; bool __fastcall MakeMD5File(); bool __fastcall GetFileList(TStringList* pList); bool __fastcall GenerateFileMD5( String fname, String& md5 ); String __fastcall GetUpdateMD5File(); int __fastcall GetUpdateFileList( String ufile, TStringList* pList ); int __fastcall DownloadFile( String url, String filename ); String __fastcall GetUpdateURL(); int __fastcall GetServers( TStringList* pList ); int __fastcall RegUpdateFlag( int iUpdate ); int __fastcall ClearUpdateDir(); bool __fastcall UpdateFiles(); int __fastcall RestartApp(); bool __fastcall StopApp(); bool __fastcall SameModulePath(DWORD dwPID); protected: void __fastcall Execute(); public: TStringList* m_lstFile; __fastcall TUpgradeThread(bool CreateSuspended, int mode, int sid, String sVar, HWND hWnd=NULL ); void __fastcall Cancel(); }; //--------------------------------------------------------------------------- #endif