📄 wz_um.h
字号:
//////////////////////////////////////////////////////////////////////////
// Wenzen Update Module Ver 0.2
//
// Build By Cho Jae Sik
//
// First Release 20051219
//
//////////////////////////////////////////////////////////////////////////
#pragma warning (disable : 4786)
#ifndef _WZ_UPDATE_MODULE_DLL_
#define _WZ_UPDATE_MODULE_DLL_
#include <windows.h>
#include <wininet.h>
#include <process.h> // _beginthread()
#include <io.h> // _access()
#include <map>
#include <string>
#include "UpdateDefine.h"
#include "UpdateInfo.h"
using namespace std;
typedef VOID (* LPFUNC_RECEIVEEVENT) ( // 荤侩磊 沥狼 惑炔舅覆 妮归窃荐
INT iEvent, // 捞亥飘 辆幅
LPVOID lpOBJ, // 捞亥飘甫 逞变 按眉 器牢磐 (CWZFtpUpdateModule * / CWZHttpUpdateModule *)
UPDATING_FILEINFO_STRUCT & strtUpdatingInfo // 泅犁狼 诀单捞飘 惑炔沥焊 备炼眉
);
///////////////////////////////////////////////////////////////////////////////////////
/*
扁夯 诀单捞飘 努贰胶 : 捞 努贰胶俊辑 FTP 客 HTTP 诀单捞飘 努贰胶啊 惑加 罐绰促.
*/
class WZ_DECLAREDLL CWZUpdateModule
{
protected :
static enum { // 捞亥飘 辆幅
STATE_CONNECTING, // 泅犁 立加吝
STATE_CONNECTED, // 楷搬凳
STATE_DISCONNECTED, // 楷搬臼凳
STATE_FILE_DOWNLOADING // 颇老 罐绰吝
};
static enum {
ERROR_NONE,
ERROR_USER,
ERROR_SYSTEM
};
CHAR m_szIPADDR[MAX_PATH]; // IP林家
WORD m_wPORT; // 器飘锅龋
CHAR m_szID[MAX_PATH]; // 拌沥疙
CHAR m_szPASS [MAX_PATH]; // 厚剐锅龋
string m_strDownDirectory; // 肺拿狼 促款肺靛且 叼泛配府
CHAR m_szDefaultDirectory[MAX_PATH]; // FTP辑滚狼 滚傈颇老捞 粮犁窍绰 叼泛配府
CHAR m_szVersionFileName[MAX_PATH]; // 滚傈颇老狼 捞抚阑 历厘 (滚傈颇老篮 风飘俊 乐绰巴阑 盔蘑栏肺 茄促.)
BYTE m_bSKIP_UPDATE; // 捞 蔼捞 TRUE老 版快 捞锅狼 诀单捞飘甫 清畔 扒呈顿扼绰 敲贰弊 (FALSE肺 官差绢具 茄促.)
// Thread
HANDLE m_hUpdateThread;
unsigned int m_nUpdateThreadID;
UPDATE_FOLDERINFO_STRUCT m_strtUpdateFolderInfo[MAX_FOLDERINFO]; // 诀单捞飘 弃歹狼 格废阑 历厘且 备炼眉
UINT m_uUpdateFolderCount; // 诀单捞飘 辑滚俊 乐绰 弃歹狼 俺荐
INT m_iLastErrorMode; // 付瘤阜 俊矾啊 荤侩磊 俊矾牢瘤 矫胶袍 俊矾牢瘤?
INT m_iLastErrorCode; // 付瘤阜 俊矾 锅龋 历厘
CHAR m_szLastErrorMsg [MAX_PATH]; // 付瘤阜 俊矾 皋矫瘤 历厘
// 楷搬包访 函荐甸 (裹侩)
HINTERNET m_hINET_SESSION; // 牢磐齿 技记 勤甸
INT m_iCurrentState; // 泅犁 按眉狼 柳青惑怕甫 历厘 (罐绰 吝俊 Connect() 窍芭唱 楷搬臼登菌绰单 Disconnect() 窍瘤 臼档废)
BOOL m_bCancelUpdate; // 诀单捞飘吝 累诀阑 秒家窍绰 版快俊 措茄 牢磊
BOOL m_bUseEventProc; // EventProceure甫 劝己拳 矫懦扒瘤俊 措茄 牢磊
UPDATING_FILEINFO_STRUCT m_strtUpdatingFileInfo; // 妮归 窃荐俊 泅犁狼 诀单捞飘 柳青惑炔阑 逞辨 备炼眉
LPFUNC_RECEIVEEVENT m_lpFN_EventCallbackProc; // 荤侩磊 沥狼 妮归窃荐 器牢磐
public :
CWZUpdateModule ();
CWZUpdateModule (LPSTR lpszIPADDR, WORD wPORT, LPSTR lpszID, LPSTR lpszPASS);
virtual ~CWZUpdateModule ();
virtual BOOL Connect () = 0;
virtual BOOL Connect (LPSTR lpszIPADDR, WORD wPORT, LPSTR lpszID, LPSTR lpszPASS) = 0;
virtual VOID Disconnect () = 0;
virtual BOOL StartUpdate();
eRESULT_CONSTANT CheckUpdateFiles();
// 泅犁 楷搬捞 己赋沁促绰 啊沥窍俊 秦寸 版肺狼 颇老阑 促款肺靛 罐绰促. (拱沸 楷搬臼等 惑怕扼搁 俊矾惯积)
virtual BOOL DownloadFile (LPSTR lpszRemoteFilePath, LPSTR lpszLocalFilePath = "") = 0;
virtual VOID SetLastErrorMsg (INT iERROR_MODE, INT iERROR_CODE, LPSTR szUSER_MSG = NULL);
virtual const LPSTR GetLastErrorMsg ();
virtual const INT GetLastErrorCode ();
virtual BOOL UpdateStop(); // 诀单捞飘甫 吝瘤茄促.
virtual BOOL SetEventCallBackProc (LPFUNC_RECEIVEEVENT lpFN_EventCallbackFunc );
void SetUseEventProc(BOOL bUse = TRUE); // 捞亥飘
void SetVersionFile( const char* pszFile );
char* GetVersionFile(){return m_szVersionFileName;}
void SetDownloadDirectory(const char* pszDirectory);
const string GetDownloadDirectory();
void GetLocalDownAbsoluteDir(string strRelativeDir, string& strAbsolteDir);
void GetModuleDirectory( char* szDirPath, int nSize );
BOOL Init();
char* GetIP(){ return m_szIPADDR; }
WORD GetPort(){ return m_wPORT; }
void SetDefaultDirectory( char* pszDir );
char* GetDefaultDirectory(){ return m_szDefaultDirectory; }
void GetVersionFilePath( TCHAR* pszVerFilePath, int nSize ); //滚傈颇老狼 版肺甫 掘绢柯促.
void GetFileListFilePath( char* pszFileName, int nSize, const char* pszVerFolder ); //File List 颇老狼 版肺甫 掘绢柯促.
void GetVersionFolderPath( char* pszFileName, int nSize, const char* pszVerFolder ); //
void GetServerName( char* pszServerName, int nSize ); //泅犁 促款罐绰 秦寸 辑滚狼 捞抚阑 备茄促.
protected :
BOOL LoadLocalVerInfo (); // 券版汲沥 颇老俊辑 泅犁 滚傈沥焊 殿阑 阂矾柯促.
BOOL SaveLocalVerInfo (); // 券版汲沥 颇老俊 泅犁 滚傈沥焊 殿阑 历厘茄促.
virtual BOOL CheckVersion (LPSTR lpszFilePath); // 秦寸 版肺狼 滚傈颇老俊辑 泅犁 滚傈阑 佬绊 (绝栏搁 滚傈 0), 楷搬等 风飘狼 漂沥 滚傈颇老苞 厚背茄促.
virtual BOOL UpdateRun(); // 秦寸 版肺狼 格废颇老俊辑 罐阑 颇老狼 格废阑 累己茄促.
virtual BOOL AddEvent(int nEvent);
void GetVersionFromString( char* pszVersion, byte& byVer1, byte& byVer2, byte& byVer3 );
unsigned int GetTotalVersion( const byte byVer1, const byte byVer2, const byte byVer3 );
void SetDefaultData(void);
virtual BOOL DownloadFilesOnFileList( char* pszRemoteDirPath ) = 0;
BOOL CheckLiveProcess();
static unsigned __stdcall UpdateWorkerThread (LPVOID lpParam);
protected:
CRITICAL_SECTION m_critERROR_MSG; // 俊矾 历厘窍绰 累诀阑 焊龋窍扁 困窃
public:
CUpdateInfo m_info;
int m_nServerNumber; // 泅犁 诀单捞飘 窍妨绰 辑滚狼 郴何 锅龋
// 肺拿俊 乐绰 滚傈 沥焊
BYTE m_btLocalVer1;
BYTE m_btLocalVer2;
BYTE m_btLocalVer3;
UINT m_uLocalTotalVersion;
BOOL m_bLoadUpdateInfo;
BOOL IsUpdateInfoLoad(){ return m_bLoadUpdateInfo; }
};
///////////////////////////////////////////////////////////////////////////////////////
/*
FTP 诀单捞飘 努贰胶 : 扁夯 努贰胶俊辑 惑加 罐澜
*/
class WZ_DECLAREDLL CWZFtpUpdateModule : public CWZUpdateModule
{
// 楷搬包访 函荐甸 (FTP)
HINTERNET m_hFTP_CONNECTION;
CHAR m_FTP_cBUFFER[MAX_BUFFER];
HANDLE m_hCheckThread;
unsigned int m_nCheckThreadID;
BOOL m_bConnected;
public :
CWZFtpUpdateModule ();
CWZFtpUpdateModule (LPSTR lpszIPADDR, WORD wPORT, LPSTR lpszID, LPSTR lpszPASS);
virtual ~CWZFtpUpdateModule ();
virtual BOOL Connect ();
virtual BOOL Connect (LPSTR lpszIPADDR, WORD wPORT= PORT_FTP, LPSTR lpszID=NULL, LPSTR lpszPASS=NULL);
virtual VOID Disconnect ();
virtual BOOL DownloadFile (LPSTR lpszRemoteFilePath, LPSTR lpszLocalPath = "");
BOOL SetEventProc (LPFUNC_RECEIVEEVENT lpFN_EventCallbackFunc );
BOOL IsConnected(){return m_bConnected;}
private:
BOOL GetSplitFilePath(const char* pszFilePath, char* pszDir, char* pszFile);
BOOL GetLocalFileName(const char* pszLocalPath, const char* pszRemoteFileName, char* pszLocalFilePath);
HANDLE MakeLocalFile(const char* pszLocalFilePath);
BOOL SetRemoteDirectory(const char* pszRemoteDir);
BOOL GetRemoteFileInfo(const char* pszRemoteFile, DWORD& dwFileLength, FILETIME& fileTime);
HINTERNET OpenRemoteFile(const char* pszRemoteFile);
eRESULT_CONSTANT GetRemoteFile(const HINTERNET hRemoteFile, const HANDLE hLocalFile, DWORD dwFileLength);
BOOL DownloadFilesOnFileList(char* pszRemoteDirPath );
BOOL CanDownloadFile(string strLocalFilePath, string strRemoteFileName);
public:
static unsigned __stdcall CheckConnectThread (LPVOID lpParam);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -