Global.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. // Global.h : 应用程序的全局变量、函数头文件
  2. //
  3. // 代码生成在 2014年9月25日, 09:55
  4. #ifndef __LYFZ_SERVERINFO_HEADER__
  5. #define __LYFZ_SERVERINFO_HEADER__
  6. #include <vector>
  7. #include <string>
  8. #include <shlwapi.h>
  9. #include ".\\includes\\gdiplus.h" ////请修改为你的头文件路径
  10. using namespace Gdiplus;
  11. #pragma comment(lib, ".\\lib\\gdiplus.lib") ////请修改为你的.lib文件路径
  12. #include "lyfzLoadLibrary.h"
  13. #define USE_KERNEL_DLL // 2015-12-10
  14. #ifdef USE_KERNEL_DLL
  15. #include "IMGBasetype.h"
  16. #include "StructDef.h"
  17. #include "filekernel.h"
  18. #include "Imgkernel.h"
  19. #endif
  20. #pragma once
  21. #define MAX_COLUMN 100 // list列表最大数量;
  22. #define JEFF_TEST_ON 1 // 用于Jeff本人测试标识;
  23. #define JEFF_TEST_OFF 0 // 用于Jeff本人测试标识;
  24. #define JEFF_DELETE_ON 0 // 用于Jeff本人指示某段代码标识为删除状态;
  25. #define JEFF_DELETE_OFF 1 // 用于Jeff本人解除某段代码的删除状态;
  26. #define LYFZVERSION _T("Version 1.0")
  27. #define USE_SHARE_FLORD 1 // 使用多级共享目录; 2015-07-16
  28. #define INSERT_SENDREG _T("insert into sendreg([msgtype],[phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values ('%s','%s','%s','%s','%s','%s','%s','%s','%s')")
  29. #define INSERT_SENDREG_MC _T("insert into sendreg([msgtype],[phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values ('%s','%s','%s','%s','%d','%s','%s','%s','%s')")
  30. #define INSERT_SENDREGDELAY _T("insert into sendregdelay([msgtype],[phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values ('%s','%s','%s','%s','%s','%s','%s','%s','%s')")
  31. #define INSERT_SENDREG_OLD _T("insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values ('%s','%s','%s','%s','%s','%s','%s','%s')")
  32. #define INSERT_SENDREG2 _T("insert into [sendreg2]([phones],[content],[price],[yytime],[client],[type],[date],[ren]) values ('%s','%s','%s','%s','%s','%s','%s','%s')")
  33. #define INSERT_INCREMENT _T("INSERT INTO [IncrementalBackup]([isbackup],[branchid],[opttime],[order],[photoType],[content],[userid],[username],[baktime])VALUES (%d,'%s','%s','%s',%d,'%s','%s','%s',NULL)")
  34. #define GET_XPIX(x) ( x >> 16) // 高16位;
  35. #define GET_YPIX(y) (y & 0x0000ffff) // 低16位;
  36. #define SET_PIX(x,y) (( x << 16) | y) // 高低合并;
  37. #define USE_SEP_VEB // 是否使用坚线分隔符;
  38. #define SEPC_VEB _T('|') // 分隔符,竖线Separator Character,A vertical bar;
  39. #define SEPC_CMA _T(',') // 分隔符,逗号Separator Character,Comma;
  40. #define SEPC_SCN _T(';') // 分隔串,分号Separator String,Semicolon
  41. #define SEPS_VEB _T("|") // 分隔串,竖线Separator String,A vertical bar;
  42. #define SEPS_CMA _T(",") // 分隔串,逗号Separator String,Comma;
  43. #define SEPS_SCN _T(";") // 分隔串,分号Separator String,SemicSemicolon
  44. ///删除一个数组指针的宏定义
  45. #ifndef DELETEA
  46. #define DELETEA(ptr) \
  47. if(NULL != ptr) \
  48. { \
  49. delete[] ptr; \
  50. ptr = NULL; \
  51. }
  52. #endif
  53. // 删除一个指针的宏定义;
  54. #ifndef FREEP
  55. #define FREEP(ptr) \
  56. if(NULL != ptr) \
  57. { \
  58. free(ptr) ; \
  59. ptr = NULL; \
  60. }
  61. #endif
  62. //删除一个指针的宏定义;
  63. #ifndef DELETEP
  64. #define DELETEP(ptr) \
  65. if(NULL != (ptr)) \
  66. { \
  67. delete (ptr); \
  68. (ptr) = NULL; \
  69. }
  70. #endif
  71. // 删除一个GDI对象的宏定义;
  72. #define DELETEOBJECT(ptr) \
  73. if(NULL != (ptr)) \
  74. { \
  75. ::DeleteObject (ptr);\
  76. (ptr) = NULL; \
  77. }
  78. // Destroy一个Window;
  79. #define DESTROYWINDOW(hWnd) \
  80. if (IsWindow(hWnd)) \
  81. { \
  82. DestroyWindow(hWnd); \
  83. }
  84. enum // 缩放结果;
  85. {
  86. ZoomNull = 0, // 无缩放;
  87. ZoomIn = 1, // 缩小;
  88. ZoomOut = 2 // 放大;
  89. };
  90. //////////////////////////////////////////////////////////////////////////
  91. extern BOOL g_bRemote; // 当打开共享目录失败时,这个变量为TRUE;
  92. extern HINSTANCE g_Instance;
  93. #define MSG_KERNEL_CALLBACK WM_USER + 1001
  94. #define MSG_KERNEL_SENDMSG WM_USER + 1002
  95. typedef void (CALLBACK *IMGImportMergeCallback)( IN LPCTSTR lpStrBranchId, IN LPCTSTR lpStrOrderNum, IN CONST INT& dwImgType, IN CONST DWORD& dwImgNum, IN LPCTSTR lpStrImgs, IN LPCTSTR lpStrImgExt );
  96. //extern KERNELCALLBACK *g_kernelCallback;
  97. //////////////////////////////////////////////////////////////////////////
  98. // Jeff add 2014-12-11 分隔符;
  99. #define SEPARATOR _T("|")
  100. #ifdef USE_KERNEL_DLL
  101. extern TblVersion g_ThisShopVersion; // 本店设置信息;
  102. #endif
  103. typedef struct tagresdata2 // 用途?
  104. {
  105. BOOL bHasBk; //
  106. int nPicCount; //
  107. int nPicCount2; //
  108. DWORD nPicBmpCount[50]; // 为何设置魔数50?
  109. CRect rect[50]; // 为何设置魔数50?
  110. }RESDATA2;
  111. typedef struct tagUSER
  112. {
  113. int bLongin; // 是否登陆;
  114. CString name; // 用户名;
  115. CString rights; // 权限1;
  116. CString rights2; // 权限2;
  117. CString bm; // 用户部门;
  118. CString account; // 用户账号;
  119. CString m_discount; // 员工折扣?
  120. CString m_discount2; // 员工折扣2?
  121. CString level; // 文件夹权限等级?
  122. }USER;
  123. // 客户端文件dbconfig.dat;
  124. typedef struct
  125. {
  126. BOOL bsql;
  127. int server[50];
  128. int user[50];
  129. int psw[50];
  130. }DBSAVE;
  131. typedef struct
  132. {
  133. BYTE bsql;
  134. BYTE tabcount;
  135. BYTE code[100];
  136. DWORD count[100];
  137. DWORD length[100];
  138. }SENDHEAD;
  139. // 2015-10-10
  140. typedef struct _STSceneryInfo_
  141. {
  142. BOOL bSelected; // 被选中;
  143. CString strScenery; // 景点;
  144. CString strStatus; // 单个景点或套系拍照状态;
  145. CString strTime; // 拍照时间;
  146. CString strLensman; // 摄影师;
  147. CString strLensmanAssistant; // 摄影师助理;
  148. CString strBootDivision; // 引导师;
  149. CString strBootDivisionAssistant; // 引导师;
  150. _STSceneryInfo_()
  151. {
  152. bSelected = FALSE;
  153. }
  154. }STSceneryInfo;
  155. typedef struct _STOrederInfo_
  156. {
  157. CString strBranchId; // 域名;
  158. CString strOrderNumber; // 订单号;
  159. CString strStatus; // 订单的拍照状态;
  160. CString strImageNumber; // 相片编号;
  161. CString strName1; // 顾客1;
  162. CString strName2; // 顾客2;
  163. CString strClerk; // 接单人;
  164. CString strPhone; // 手机;
  165. CString strTelPhone; // 座机;
  166. std::vector<STSceneryInfo> vtOrderScenery; // 订单景点;
  167. }STOrederInfo;
  168. typedef struct __STSTUDIOINFO__
  169. {
  170. CString strStudioVer; // 软件版本;
  171. CString strStudioName; // 影楼名称;
  172. CString strStudioPhone; // 影楼电话;
  173. CString strStudioAddress; // 影楼地址;
  174. CString strStudioWebSite; // 影楼网站;
  175. CString strStudioManager; // 影楼店长;
  176. CString strStudioDomain;
  177. DWORD dwStudioOrderCount; // 影楼订单数;
  178. DWORD dwStudioHistoryOrderCount; // 影楼历史订单数;
  179. __STSTUDIOINFO__()
  180. {
  181. dwStudioOrderCount = 0;
  182. dwStudioHistoryOrderCount = 0;
  183. }
  184. }STStudioInfo, *pSTStudioInfo;
  185. extern BOOL g_bAntiTheft;
  186. extern STStudioInfo g_STStudioInfo;
  187. // Import or Export Image Typed
  188. typedef enum
  189. {
  190. ImageType_Original = 1,
  191. ImageType_Early = 2,
  192. ImageType_Further = 3,
  193. ImageType_Design = 4
  194. }IE_IMAGETYPE;
  195. extern WORD g_arrFileVersion[4];
  196. extern TCHAR g_szLoginUser[MAX_PATH]; // 当前软件的登陆用户名;
  197. extern TCHAR g_szLoginPsw[MAX_PATH]; // 当前软件的登陆密码;
  198. extern TCHAR g_szModulePath[MAX_PATH]; // 软件目录;
  199. extern TCHAR g_szModuleFileName[MAX_PATH]; // 软件全名称;
  200. extern TCHAR g_szConnectString[MAX_PATH]; // DB连接串;
  201. extern TCHAR g_szHostComputerIP[MAX_PATH]; // 主机名称;
  202. extern DWORD g_dwCSPort; // 主机通信TCP端口;
  203. extern TCHAR g_szN8ViewUserDir[MAX_PATH] ; // N8选版服务器用户目录(共享目录);
  204. extern TCHAR g_szN8ViewStsDir[MAX_PATH] ; // N8选版服务器统计数据目录(共享目录);
  205. extern TCHAR g_szN8ViewProductDir[MAX_PATH] ; // N8选版产品配置目录(共享目录);
  206. extern DWORD g_dwSoftRunTime; // 软件剩余可运行时间;
  207. // 服务器信息;
  208. extern TCHAR g_szDBSource[MAX_PATH]; // 数据库源(服务所在IP或计算机名);
  209. extern TCHAR g_szDBSourcePort[MAX_PATH]; // 数据库源端口;
  210. extern DWORD g_dwDBServerPort; // 数据库源端口;
  211. extern TCHAR g_szDBAccount[MAX_PATH]; // 数据库登录用户;
  212. extern TCHAR g_szDBPassWord[MAX_PATH]; // 数据库登录密码;
  213. extern TCHAR g_szDBName[MAX_PATH]; // 数据库名称;
  214. extern TCHAR g_szShareHost[MAX_PATH];
  215. extern TCHAR g_szOriginalFolder[MAX_PATH];
  216. extern TCHAR g_szOriginalBkFolder[MAX_PATH];
  217. extern TCHAR g_szEarlyRepairFolder[MAX_PATH];
  218. extern TCHAR g_szEarlyRepairBkFolder[MAX_PATH];
  219. extern TCHAR g_szFurtherRepairFolder[MAX_PATH];
  220. extern TCHAR g_szFurtherRepairBkFolder[MAX_PATH];
  221. extern TCHAR g_szDesignFolder[MAX_PATH];
  222. extern TCHAR g_szDesignBkFolder[MAX_PATH];
  223. extern TCHAR g_szTelRecordingFolder[MAX_PATH];
  224. extern TCHAR g_szFullDressImageFolder[MAX_PATH];
  225. extern BOOL g_bRunOnCorruptdb; // 在损坏的数据库上运行;
  226. extern BOOL g_bSoftWareReg;
  227. extern CString g_strDogMainInfo;
  228. extern CString g_strMain;
  229. extern CStringArray g_strArrayOfBranchName;
  230. extern CStringArray g_strArrayOfBranchName2;
  231. extern CStringArray g_strArrayOfBranchIPAdress;
  232. extern CStringArray g_strArrayOfBranchDogMainInfo;
  233. extern unsigned int g_nCountOfAllowToConn;
  234. extern DWORD g_nLeng;
  235. extern BYTE *g_pData;
  236. extern DWORD g_nLeng2;
  237. extern BYTE *g_pData2;
  238. extern SENDHEAD g_sendhead;
  239. extern BOOL g_bRedSkin;
  240. extern COLORREF g_gridcol1;
  241. extern COLORREF g_gridcol2;
  242. extern COLORREF g_bkcol;
  243. extern CBrush g_dlgBrush;
  244. extern CString g_date; // 连接服务端时由服务端产生的CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S");
  245. extern CString g_title;
  246. extern CArray<CStringArray, CStringArray>g_userarray;
  247. extern CArray<CStringArray, CStringArray>g_cominfoarray;
  248. extern CArray<CStringArray, CStringArray>g_cominfoarraylocal;
  249. extern CArray<DWORD, DWORD>g_lengarray;
  250. extern CArray<DWORD, DWORD>g_btnlengarray;
  251. extern CArray<BYTE*, BYTE*>g_pointerarray;
  252. extern CBrush g_editbkbrush;
  253. extern DWORD g_btnleng[8];
  254. extern int g_btnlengpos;
  255. extern int g_nYearpos; // 是[historydb]表记录索引,即g_hisyeararray元素位置;
  256. extern CString g_branchname; // 当客户端使用的是dbconfig.dat里的服务端地址时,g_branchname=""; 企业版客户端连接其他分店或多店汇总时,g_branchname值为连接的分店名;
  257. extern CString g_branchip; // 与g_branchname相似,只有企业版时由客户端菜单选择到连接分店或多店汇总时,这个ip才会有值,否则为空;
  258. extern CString g_branchip2;
  259. extern BOOL g_bBranchModify;
  260. extern BOOL g_bShowOK; // Jeff:?
  261. extern BOOL g_bStaffAchievementShow; // 此机用于员工业绩查看;
  262. extern BOOL g_bSaveUploadTask1;
  263. extern BOOL g_bSaveUploadTask2;
  264. extern BOOL g_bSaveUploadTask3;
  265. extern BOOL g_bSaveUploadTask4;
  266. extern BOOL g_bSearchFilter; // 条件查询开关; == TRUE 开启条件查询, == FALSE 关闭条件查询;
  267. extern CString g_waiter1;
  268. extern CString g_waiter2;
  269. extern CString g_waiter3;
  270. extern CString g_waiter4;
  271. extern CString g_waiter5;
  272. extern CString g_filterdate1;
  273. extern CString g_filterdate2;
  274. extern CString g_filterdate3;
  275. extern CString g_filterdate4;
  276. extern CString g_filterdate5;
  277. extern CString g_filterdate6;
  278. extern CString g_filterbranch;
  279. extern USER g_user;
  280. extern CString g_mainpath; // 软件目录
  281. extern CString g_id; //
  282. extern CString g_server; // 服务端地址
  283. extern CStringArray g_serverarray; //
  284. extern CString g_serverbak; //
  285. extern CString g_path1; /* 共享目录 <客户原片(管理软件)$> 如:"\\lyfz-pc\客户原片(管理软件)$" */
  286. extern CString g_path2; /* 共享目录 <修好的片(管理软件)$> 如:"\\lyfz-pc\修好的片(管理软件)$" */
  287. extern CString g_path3; /* 共享目录 <设计好的片(管理软件$)> 如:""> */
  288. extern CString g_path4; /* 共享目录 <精修好的片(管理软件$)> 如:""> */
  289. extern CString g_path5; /* 共享目录 <礼服图片(管理软件$)> 如:""> */
  290. extern CString g_path6; /* 共享目录 <电话录音(管理软件$)> 如:""> */
  291. extern CString g_path7; /* 共享目录 <客户原片(管理软件$)\效果图> 如:""> */
  292. extern CString g_path1bak;
  293. extern CString g_path2bak;
  294. extern CString g_path3bak;
  295. extern CString g_path4bak;
  296. extern CString g_path5bak;
  297. extern CString g_path6bak;
  298. extern CString g_path7bak;
  299. extern CDatabase g_db;
  300. extern DWORD g_ncount;
  301. extern CFont g_titlefont;
  302. extern DWORD g_nSendCode;
  303. extern BOOL g_bSendOK;
  304. extern CArray<CStringArray, CStringArray>g_hisyeararray; // 表[historydb]里的记录;
  305. extern CArray<CStringArray, CStringArray>g_brancharray;
  306. extern CArray<CStringArray, CStringArray>g_oldclientarray;
  307. extern CArray<CStringArray, CStringArray>g_List1array;
  308. extern BOOL g_bNoConnDlg;
  309. extern BOOL g_bInSkin;
  310. extern int g_conntype;
  311. extern BOOL g_bGenBranchData;
  312. extern CString g_temp;
  313. extern BOOL g_bSortAscending;
  314. extern CFont g_listctrlfont;
  315. extern float g_fscalex;
  316. extern float g_fscaley;
  317. extern int g_screenwid; // 桌面宽
  318. extern int g_screenhei; // 桌面高
  319. extern float g_WidthScale; // 宽刻度Jeff
  320. extern float g_HeightScale; // 高刻度Jeff
  321. extern RESDATA2 g_resdata2;
  322. extern BOOL g_bAlphaWnd;
  323. extern BYTE g_bNeedDrawParent;
  324. extern BOOL g_bAllBranch; // 是否多店汇总连接;
  325. extern CString g_domain; // 此值为固定值,是客户端使用dbconfig.dat中的服务端地址连接后,由服务端返回的域名值;企业版客户端连接其他分店或多店汇总时,此值不改变;
  326. extern CString g_strAntiTheftInfo;
  327. extern int g_ncot;
  328. extern int g_conpos;
  329. extern int g_nAutoShowStaffAchievement;
  330. extern BOOL g_bShowBar;
  331. extern int g_bookingtype;
  332. extern BOOL g_bNoLoginLia;
  333. extern BOOL g_bConnLYFZ;
  334. extern BOOL g_bSendLYFZ; // 是否发送回给公司;
  335. extern int g_ntimeout;
  336. extern float g_WidthScale;
  337. extern float g_HeightScale;
  338. extern int g_dx;
  339. extern int g_dy;
  340. extern BOOL g_bNeedCoon;
  341. extern float g_WidthScale2 ;
  342. extern float g_HeightScale2 ;
  343. extern CStringArray g_menubranchname;
  344. #if USE_SHARE_FLORD
  345. extern CArray<CStringArray, CStringArray> g_aryOfSharePathInfo; // NetShareInfo表记录;
  346. #endif
  347. // 使用系统数字命名;
  348. extern BOOL g_bOriginal;
  349. // 客户端guid字符串标志符,作为每个客户端的唯一id值;
  350. extern TCHAR g_szGuidMark[64];
  351. // 控制台输出;
  352. extern BOOL g_bStdOut;
  353. // N8程序路径;
  354. extern TCHAR g_szN8Path[MAX_PATH];
  355. // HostInfo.ini的路径;
  356. extern TCHAR g_szIniPath[MAX_PATH];
  357. // Ne选版服务器IP地址;
  358. extern TCHAR g_szN8SvIP[MAX_PATH];
  359. // 是否启用云选功能;
  360. extern BOOL g_bEnableClound;
  361. // 是否导出条形码位图;
  362. extern BOOL g_bExportBarCode;
  363. // 侧边栏抽屉数量;
  364. extern INT g_nDrawerCount;
  365. // 客户端出现的列表包含手机或固话列头;
  366. extern CString g_TelephoneColumn[];
  367. // 客户端提示盗版使用者;
  368. extern CString g_strAntiTheftWarning;
  369. //-----------------------------------------------------------------------------------------------------------------
  370. extern BOOL LoadImageFromFile(IN Image** pImg, IN CString strPath);
  371. extern BOOL LoadImageFromBuf(IN Image** pImg, IN CString strPath);
  372. extern BOOL LoadImageFromBuf(IN Image** pImg, IN BYTE* pBuffer, IN CONST DWORD& nBufLen);
  373. // 使用Image版本,可以不使用Bitmap版本,因为Bitmap继承于Image。
  374. extern BOOL LoadImageFromFile(IN Bitmap** pImg, IN CString strPath);
  375. extern BOOL LoadImageFromBuf(IN Bitmap** pImg, IN CString strPath);
  376. extern BOOL LoadImageFromBuf(IN Bitmap** pImg, IN BYTE* pBuffer, IN CONST DWORD& nBufLen);
  377. extern void SaveImageToFile(Image *img, CString path);
  378. extern void SaveImageToFile2(Image *img, CString path, ULONG quality);
  379. extern void LoadImageFromRes(Image **img, LPCTSTR lpszResourceName, LPCTSTR ResourceType);
  380. extern int GetOrientation(Image *image);
  381. extern int GetEncoderClsid(const WCHAR* format, CLSID* pClsid);
  382. extern void IsWaiter2(IN CString strOrderNum, IN CString strStaffName, CArray<CStringArray, CStringArray>*pAryWaiter, IN BOOL &bPhotographer, IN BOOL &bMakeupArtist, float &fscale1, float &fscale2, BOOL bCheckDate, CString date1, CString date2);
  383. extern void IsWaiter3(IN CString strOrderNum, IN CString strStaffName, CArray<CStringArray, CStringArray>*pAryWaiter, IN BOOL &bPhotographer, IN BOOL &bMakeupArtist, float &fscale1, float &fscale2);
  384. extern CString GetNameFromDomain(CString domain);
  385. extern void GetSavePath(CString &path);
  386. extern CString GetW(CString str);
  387. extern CString GetK(CString str);
  388. extern CString GetB(CString str);
  389. extern CString GetS(CString str);
  390. extern CString GetG(CString str);
  391. extern CString GetHMoney(CString str);
  392. extern int GetYearPos(int year);// 查找不到年历史数据库则返回-1;
  393. extern void FillLength(CString &str, int length);
  394. extern BOOL myisdigit(CString str);
  395. extern BOOL IsHasRightsnew2(int pos, CString rights);
  396. extern CString GetIP(CString branch);
  397. extern CString GetBranchIPbyId( IN LPCTSTR lpStrBranchId );
  398. extern CString GetBranchNamebyId( IN LPCTSTR lpStrBranchId );
  399. extern void WriteTitle(CString str);
  400. extern BOOL IsHanZi(CString str);
  401. extern int GetType(CString str);
  402. extern CString FilterBZ(CString &bz);
  403. extern BOOL GIsHalfHZ(const CString &str);
  404. extern void RectFitDes(int width, int height, CRect &rc);
  405. extern bool CheckFolderFileExist(CString &strPath);
  406. extern int GetLengthEx(CString str);
  407. extern BOOL IsHasRights(int pos); // 废弃函数;
  408. extern BOOL IsHasRights2(int pos); // 废弃函数;
  409. extern BOOL IsHasRightsnew(int pos);
  410. extern BOOL IsHasRights2new(int pos);
  411. extern void FirstLetter(int nCode, CString& strLetter);
  412. extern void GetFirstLetter(CString strName, CString& strFirstLetter);
  413. extern CString newGUID();
  414. extern void ConvertToPrice(CString &str);
  415. extern DWORD FindAppProcessID(CString path);
  416. extern BOOL isInnerIP(DWORD a_ip);
  417. extern void MyGetIPByName(CString &name);
  418. extern void MyGetIPByName2(CString &name);
  419. extern CTime GetTmFromStr(CString date);
  420. extern int IsExistFolder(char *szPath);
  421. extern CString GetBranchPhotoPath(CString branch);
  422. extern CString GetDomainFromBranch(CString branch);
  423. extern BOOL CheckDateOK2(CString str);
  424. extern BOOL CheckBadWords(CString str, BOOL bMsg = 0);
  425. //extern BOOL CheckBadWords2(CString str, BOOL bMsg = 0);
  426. extern int CheckPhoneType(CString &phoneno);
  427. extern BOOL CheckDateOK(IN CString &str,IN CONST BOOL &bLunanr = FALSE);
  428. extern int FindArray(CStringArray *pArray, const CString &Str);
  429. extern int GetSysIniInfo(const char *szPath = NULL, const char *szIniName = NULL);
  430. extern BOOL WaitWithMessageLoop(HANDLE hEvent, int nTimeout);
  431. extern BOOL IsFileExist(const TCHAR *pFileFullName);
  432. extern void DeleteDirectory(IN CString strDirectory);
  433. extern BOOL RegisterOcx(LPCTSTR ocxfile);
  434. extern BOOL GetDebugPriv();
  435. extern bool GetFileVersion(HMODULE hModule, WORD *pBuffer);
  436. extern bool GetProductVersion(IN HMODULE hModule, OUT WORD *pBuffer);
  437. extern BOOL CheckInternalIPV4(const unsigned int &ip_addr);
  438. extern BOOL IsValidIPV4(const TCHAR *szIP);
  439. extern int GetHostAllOfIP(const TCHAR *pHostName, std::vector<std::string> &vtHostIPV4);
  440. extern void DataToArray(
  441. CArray<CStringArray, CStringArray>*pArrayOfString,
  442. int datapos = -1);
  443. extern void DataToArray(
  444. CArray<CStringArray, CStringArray>*pArrayOfString1,
  445. CArray<CStringArray, CStringArray>*pArrayOfString2,
  446. int datapos = -1);
  447. extern void DataToArray(
  448. CArray<CStringArray, CStringArray>*pArrayOfString1,
  449. CArray<CStringArray, CStringArray>*pArrayOfString2,
  450. CArray<CStringArray, CStringArray>*pArrayOfString3,
  451. int datapos = -1);
  452. extern void DataToArray(
  453. CArray<CStringArray, CStringArray>*pArrayOfString1,
  454. CArray<CStringArray, CStringArray>*pArrayOfString2,
  455. CArray<CStringArray, CStringArray>*pArrayOfString3,
  456. CArray<CStringArray, CStringArray>*pArrayOfString4,
  457. int datapos = -1);
  458. extern void DataToArray(
  459. CArray<CStringArray, CStringArray>*pArrayOfString1,
  460. CArray<CStringArray, CStringArray>*pArrayOfString2,
  461. CArray<CStringArray, CStringArray>*pArrayOfString3,
  462. CArray<CStringArray, CStringArray>*pArrayOfString4,
  463. CArray<CStringArray, CStringArray>*pArrayOfString5,
  464. int datapos = -1);
  465. extern void DataToArray(
  466. CArray<CStringArray, CStringArray>*pArrayOfString1,
  467. CArray<CStringArray, CStringArray>*pArrayOfString2,
  468. CArray<CStringArray, CStringArray>*pArrayOfString3,
  469. CArray<CStringArray, CStringArray>*pArrayOfString4,
  470. CArray<CStringArray, CStringArray>*pArrayOfString5,
  471. CArray<CStringArray, CStringArray>*pArrayOfString6,
  472. int datapos = -1);
  473. extern void DataToArray(
  474. CArray<CStringArray, CStringArray>*pArrayOfString1,
  475. CArray<CStringArray, CStringArray>*pArrayOfString2,
  476. CArray<CStringArray, CStringArray>*pArrayOfString3,
  477. CArray<CStringArray, CStringArray>*pArrayOfString4,
  478. CArray<CStringArray, CStringArray>*pArrayOfString5,
  479. CArray<CStringArray, CStringArray>*pArrayOfString6,
  480. CArray<CStringArray, CStringArray>*pArrayOfString7,
  481. int datapos = -1);
  482. extern void DataToArray(
  483. CArray<CStringArray, CStringArray>*pArrayOfString1,
  484. CArray<CStringArray, CStringArray>*pArrayOfString2,
  485. CArray<CStringArray, CStringArray>*pArrayOfString3,
  486. CArray<CStringArray, CStringArray>*pArrayOfString4,
  487. CArray<CStringArray, CStringArray>*pArrayOfString5,
  488. CArray<CStringArray, CStringArray>*pArrayOfString6,
  489. CArray<CStringArray, CStringArray>*pArrayOfString7,
  490. CArray<CStringArray, CStringArray>*pArrayOfString8,
  491. int datapos = -1);
  492. extern void DataToArray(
  493. CArray<CStringArray, CStringArray>*pArrayOfString1,
  494. CArray<CStringArray, CStringArray>*pArrayOfString2,
  495. CArray<CStringArray, CStringArray>*pArrayOfString3,
  496. CArray<CStringArray, CStringArray>*pArrayOfString4,
  497. CArray<CStringArray, CStringArray>*pArrayOfString5,
  498. CArray<CStringArray, CStringArray>*pArrayOfString6,
  499. CArray<CStringArray, CStringArray>*pArrayOfString7,
  500. CArray<CStringArray, CStringArray>*pArrayOfString8,
  501. CArray<CStringArray, CStringArray>*pArrayOfString9,
  502. CArray<CStringArray, CStringArray>*pArrayOfString10,
  503. int datapos = -1);
  504. extern inline int MultiByteLengthConvertToWideCharLength(/*LPCSTR*/LPCCH lpString);
  505. extern void lyfzImportImage(LPCTSTR lpDestDirectory, CStringArray &strArrayOfImage, const BOOL &bFailIfExists = TRUE);
  506. extern BOOL lyfzCopyFileEx(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, const BOOL &bFailIfExists = TRUE);
  507. extern BOOL lyfzCreateDirectory(LPCTSTR lpDestDirectory);
  508. extern void lyfzSplitpath(const char *path, char *drive, char *dir, const int &nTimes);
  509. extern void ShowSystemErrorInfo(CString &strDescription, const DWORD &dwError);
  510. extern void WriteTextLog(const TCHAR *format, ...);
  511. extern BOOL IsDirectoryLegitimate(const CString &strDirectory);
  512. extern void ExportCutImageToFile(LPCCH lpOrderCutImageInfo, LPCCH lpSrcDirectory, LPCCH lpSaveDirectory);
  513. extern BOOL AnalysisImagInfo(CStringArray &saSrcPhoto, LPCCH strSrcDirectory, LPCCH strSaveDirectory, CString &strImageInfo, CString &strImageName, CString &strCutScheme, CRect &rtCut);
  514. extern int GetCountOfOrderFolderPhotoFile( const TCHAR *pOrderFolder, CStringArray &StrPhotoArray);
  515. extern VOID GetFileNameFromFullPath(CONST CString &strFullPath, CString &strRet);
  516. extern BOOL SaveImg2newfile(IN Image* pImg, IN CString strNewfile, IN ULONG uQuality);
  517. extern int ZoomImg(IN CRect &Imgrc, IN CONST DWORD &dwDisplayPix, OUT DWORD &dwZoomPix);
  518. extern int ZoomImg(IN CONST DWORD &dwImgPix, IN CONST DWORD &dwDisplayPix, OUT DWORD &dwZoomPix);
  519. extern BOOL ImgThumbnail(IN Image* pImg, IN CONST DWORD &dwDisplayPix, IN CString strNewfile, IN ULONG uQuality);
  520. extern BOOL ImgThumbnail(IN LPCTSTR lpImgpath, IN CONST DWORD &dwDisplayPix, IN CString strNewfile, IN ULONG uQuality);
  521. extern HMODULE g_hlyfzMicroShareDLL;
  522. extern BOOL LoadMicroShareLibrary();
  523. extern void FreeMicroShareLibrary();
  524. typedef INT (WINAPI *lyfzCreateShare)(
  525. IN LPCTSTR lpShareAccount, // 微分享的登录账号;
  526. IN LPCTSTR lpAccountPsw, // 微分享的登录账号密码;
  527. IN LPCTSTR lpRootDirectory, // 相片根级目录;
  528. IN LPCTSTR lpBranchName, // 分店域名;
  529. IN LPCTSTR lpOrderNumber, // 订单号,用于生成二维码文件名;
  530. IN LPCTSTR lpScenery, // 景点名;
  531. IN LPCTSTR lpSourceFilePath, // 要分享的文件根目录;
  532. IN LPCTSTR lpCustomer1Name, // 客人姓名1 ;
  533. IN LPCTSTR lpCustomer2Name, // 客人姓名2 ;
  534. IN LPCTSTR lpMakeupArtist, // 化妆师;
  535. OUT LPTSTR lpMicroAlbumID // 返回微相册ID;
  536. );
  537. extern lyfzCreateShare g_lyfzCreateShare;
  538. extern BOOL GetRemoteConfig();
  539. extern BOOL OpenShareDirectory();
  540. extern BOOL IsValidDate(LPCTSTR lpDate);
  541. extern BOOL IsValidLunanrDate(LPCTSTR lpDate);
  542. extern int IsExistNumInString(const char* str);
  543. /*-----------------------------------读取硬件信息 模块 begin--------------------------------------------*/
  544. extern HMODULE g_hHDSerial;
  545. extern BOOL LoadHDSerialLibrary();
  546. extern void FreeHDSerialLibrary();
  547. /*
  548. GetSeiralNumberOrID("Win32_BaseBoard", "SerialNumber"); // 主板
  549. GetSeiralNumberOrID("Win32_Processor", "ProcessorID"); // CPU
  550. GetSeiralNumberOrID("Win32_PhysicalMemory", "SerialNumber"); // 内存
  551. GetSeiralNumberOrID("Win32_DiskDrive", "PNPDeviceID"); // 硬盘
  552. */
  553. /************************************************************************/
  554. /*
  555. 函数: GetSeiralNumberOrID
  556. 描述: 获取序列号或ID 通过 IWbemLocator 和 IWbemServices 这两个 COM 接口访问 WMI, 获取系统信息
  557. 参数:
  558. LPCTSTR lpszClass,
  559. LPCTSTR lpszName
  560. CString& str 返回序列号或ID
  561. 返回:
  562. 注意: 1成功, 0失败;
  563. */
  564. /************************************************************************/
  565. typedef INT (WINAPI *GetSeiralNumberOrID)(LPWSTR lpszClass, LPWSTR lpszName, LPWSTR str);
  566. /************************************************************************/
  567. /*
  568. 函数: GetLocalMacAddr
  569. 描述: 获取本地mac地址
  570. 参数:
  571. BYTE* pMac 返回mac地址
  572. 返回:
  573. 注意:
  574. */
  575. /************************************************************************/
  576. typedef VOID (WINAPI *GetLocalMacAddr)(LPSTR pMac);
  577. extern TCHAR g_strCPUID[MAX_PATH]; //获取CPU ID
  578. extern TCHAR g_strMacAddr[MAX_PATH]; //mac地址
  579. extern TCHAR g_strHDNum[MAX_PATH]; //硬盘ID
  580. extern TCHAR g_strBIOSNum[MAX_PATH]; //主板ID
  581. extern GetSeiralNumberOrID g_GetSeiralNumberOrID;
  582. extern GetLocalMacAddr g_GetLocalMacAdd;
  583. /*-----------------------------------读取硬件信息 模块 end--------------------------------------------*/
  584. /*-----------------------------------DES加密解密 模块 begin--------------------------------------------*/
  585. /************************************************************************/
  586. /*
  587. 函数: GetLocalMacAddr
  588. 描述: DES加密
  589. 参数:
  590. LPCSTR pPlaintext, 加密的内容
  591. LPCSTR pKey 密钥
  592. LPSTR pCiphertext 返回加密后的密文
  593. 返回:
  594. 注意:
  595. */
  596. /************************************************************************/
  597. typedef VOID (WINAPI *DESEncrypt)(IN LPCSTR pPlaintext, IN LPCSTR pKey, OUT LPSTR pCiphertext);
  598. /************************************************************************/
  599. /*
  600. 函数: DESDecrypt
  601. 描述: DES解密
  602. 参数:
  603. LPCSTR pCiphertext, 要解密的内容
  604. LPCSTR pKey 密钥
  605. LPSTR pPlaintext 返回解密后的明文
  606. 返回:
  607. 注意:
  608. */
  609. /************************************************************************/
  610. typedef VOID (WINAPI *DESDecrypt)(IN LPCSTR pCiphertext, IN LPCSTR pKey, OUT LPSTR pPlaintext);
  611. extern DESEncrypt g_DESEncrypt;
  612. extern DESDecrypt g_DESDecrypt;
  613. /*-----------------------------------DES加密解密 模块 end--------------------------------------------*/
  614. #ifdef USE_KERNEL_DLL
  615. typedef ImgEnvInterface* (*CREATEIMGPROCESS)( );
  616. extern ImgEnvInterface* CreateIMGProcess( );
  617. extern ImgEnvInterface *g_pIMGProcess;
  618. extern BOOL GetOrderpathByImgType(IN CONST INT& nImgType, IN LPCTSTR lpBranchId, OUT CStringArray& AryOrderpath);
  619. extern BOOL GetOrderpathByOrderNum(IN CONST INT& nImgType, IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, OUT CStringArray& AryOrderpath);
  620. extern BOOL GetScenerypathByOrderNum(IN CONST INT& nImgType, IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, IN LPCTSTR lpScenery, OUT CStringArray& AryOrderpath);
  621. extern BOOL GetOrderImgpath(IN CONST INT& nImgType, IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, OUT CStringArray& AryImgpath);
  622. extern BOOL GetOrderImgpathEx(IN CONST INT& nImgType, IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, IN BOOL bLoadInSubfolder, IN LPCTSTR lpLoadExt, IN LPCTSTR lpWithExt, OUT CStringArray& AryLoadExtImgpath, OUT CStringArray& AryWithExtImgpath, OUT CStringArray& AryOrderDirectory );
  623. extern BOOL GetSceneryImgpath(IN CONST INT& nImgType, IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, IN LPCTSTR lpScenery, OUT CStringArray& AryImgpath);
  624. extern BOOL GetSceneryImgpathEx(IN CONST INT& nImgType, IN LPCTSTR lpBranchId, IN LPCTSTR lpOrderNum, IN LPCTSTR lpScenery, IN LPCTSTR lpLoadExt, IN LPCTSTR lpWithExt, OUT CStringArray& AryLoadExtImgpath, OUT CStringArray& AryWithExtImgpath, OUT CStringArray& AryOrderDirectory );
  625. #endif
  626. extern int IsDigitString(IN CONST CString& str);
  627. extern BOOL Import2Excle(IN CListCtrl *pListCtrl, IN LPCTSTR lpExclePath, IN CONST int& nStartColumn, IN CONST int& nStartRow, IN int nEndColumn = -1, IN int nEndRow = -1) ; // 导入到excle;
  628. extern BOOL Import2Xls(IN CListCtrl *pListCtrl, IN LPCTSTR lpExclePath, IN CONST int& nStartColumn, IN CONST int& nStartRow, IN int nEndColumn = -1, IN int nEndRow = -1) ; // 导入到excle;
  629. extern TCHAR* GetGuidString();
  630. extern BOOL IsWow64();
  631. extern CString GetErrorInfo(IN const DWORD &dwError);
  632. // 获取这一年的第一天;
  633. extern CString GetFirstDayOfYear(IN CString strDateTime = _T(""));
  634. // 字符串转成日期;
  635. extern CTime StringToDateTime(IN CString strDateTime = _T(""));
  636. // 这个月的第一天;
  637. extern CTime FirstDayOfMonth(IN CString strDateTime = _T(""));
  638. // 上个月的第一天;
  639. extern CTime FirstDayOfLastMonth(IN CString strDateTime = _T(""));
  640. // 这个月的最后一天;
  641. extern CTime LastDayOfMonth(IN CString strDateTime = _T(""));
  642. // 上个月的最后一天;
  643. extern CTime LastDayOfLastMonth(IN CString strDateTime = _T(""));
  644. #endif // endof Global.h