/************************************************************************/ /* Copyright (C), 2016-2020, [IT], 保留所有权利; /* 模 块 名:; /* 描 述:; /* /* 版 本:[V]; /* 作 者:[IT]; /* 日 期:[1/17/2017]; /* /* /* 注 意:只适合多字节字符编集; /* /* 修改记录:[IT]; /* 修改日期:; /* 修改版本:; /* 修改内容:; /************************************************************************/ #ifndef __ANTI_THEFT_COMMAND__ #define __ANTI_THEFT_COMMAND__ #include #pragma once // 盗版提示操作; typedef struct _WARN_OPT_ { BOOL bEnable; // 是否启用; CString strContent; // 盗版提示内容; _WARN_OPT_() { bEnable = FALSE; strContent = _T(""); } }WarnOpt, *pWarnOpt; // 加密狗过期操作; typedef struct _DOG_OPT_ { BOOL bEnable; // 是否启用; CString strExpired; // 过期日期; _DOG_OPT_() { bEnable = FALSE; strExpired = _T(""); } }DogOpt, *pDogOpt; // SQL操作元素内容; typedef struct _SQL_ELEMENT_ { CString strSQL; // SQL语句; CString strExecTime; // 执行时间; BOOL bExecStatus; // 执行状态(用于返回服务器); _SQL_ELEMENT_() { bExecStatus = FALSE; strSQL = _T(""); strExecTime = _T(""); } }SQLElement, *pSQLElement; // SQL操作; typedef struct _SQL_OPT_ { BOOL bEnable; // 是否启用; std::vector vtSQLElement; // SQL元素集合; _SQL_OPT_() { bEnable = FALSE; } }SQLOpt, *pSQLOpt; // 相片加密操作; typedef struct _DATA_OPT_ { BOOL bEnable; // 是否启用; CString strExecTime; // 执行时间; INT nEncryptCount; // 加密订单数量; BOOL bExecStatus; // 执行状态(用于返回服务器); CStringArray AryOrder; // 加密的订单串(用于返回服务器); _DATA_OPT_() { bEnable = FALSE; bExecStatus = FALSE; nEncryptCount = 0; strExecTime = _T(""); } }DataOpt, *pDataOpt; // 防盗命令; typedef struct _ANTI_CMD_ { BOOL bResult; // false:等待接收; true:已接收 ; CString strCmdGuid; // 命令的guid值; WarnOpt stWarnOpt; // 盗版提示操作; DogOpt stDogOpt; // 加密狗操作; SQLOpt stSQLOpt; // SQL操作; DataOpt stDataOpt; // 加密相片操作; _ANTI_CMD_() { bResult = FALSE; strCmdGuid = _T(""); } }AntiCmd, *pAntiCmd; class CAntiTheftCommand { CAntiTheftCommand(void); public: static CAntiTheftCommand* GetInstance() { static CAntiTheftCommand* pInstance = NULL; if ( pInstance == NULL) pInstance = new CAntiTheftCommand; return pInstance; } ~CAntiTheftCommand(void); // 初始化命令行到AntiCmd结构体中; static BOOL InitCommand(IN AntiCmd &tagAntiCmd); // 防盗提示操作; static BOOL OptWarning(IN WarnOpt &tagWarnOpt); // 加密狗操作; static BOOL OptDog(IN DogOpt &tagDogOpt); // SQL操作; static BOOL OptSQL(IN SQLOpt &tagSQLOpt); // 加密操作; static BOOL OptData(IN DataOpt &tagDataOpt); // 获取要加密的订单号; static BOOL GetOrderInfo(IN INT nEncryptCount, IN CStringArray &AryOrder); // 获取要加密的订单相片; static BOOL GetOrderImgfile(IN CStringArray& AryOrder, std::vector &vtImgfiles); // 删除备份数据库; static void DeleteBackupDB(); // 删除指定订单的备份相片; static void DeleteBackupImg(IN CStringArray &AryOrder); // 加密相片; static void EncryptImg( IN std::vector &vtfiles, IN LPBYTE lpKey, IN LPBYTE lpVi); // 保存执行结果; static void SaveResult(IN AntiCmd &tagAnticmd); public: HANDLE m_hThread; void StartThread(); void EndofThread(); static DWORD WINAPI ThreadAntiTheft(LPVOID lpPara); }; #endif // __ANTI_THEFT_COMMAND__;