Global.h 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. #ifndef __GLOBAL_20150930__
  2. #define __GLOBAL_20150930__
  3. #pragma once
  4. #include "basetype.h"
  5. #include "Encryptlock.h"
  6. #include <ws2tcpip.h>
  7. #pragma comment(lib, "Ws2_32.lib")
  8. namespace Global
  9. {
  10. #define BUFSIZE 256
  11. #define PRODUCT_ULTIMATE 0x00000001
  12. #define PRODUCT_HOME_BASIC 0x00000002
  13. #define PRODUCT_HOME_PREMIUM 0x00000003
  14. #define PRODUCT_ENTERPRISE 0x00000004
  15. #define PRODUCT_HOME_BASIC_N 0x00000005
  16. #define PRODUCT_BUSINESS 0x00000006
  17. #define PRODUCT_STANDARD_SERVER 0x00000007
  18. #define PRODUCT_DATACENTER_SERVER 0x00000008
  19. #define PRODUCT_SMALLBUSINESS_SERVER 0x00000009
  20. #define PRODUCT_ENTERPRISE_SERVER 0x0000000A
  21. #define PRODUCT_STARTER 0x0000000B
  22. #define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C
  23. #define PRODUCT_STANDARD_SERVER_CORE 0x0000000D
  24. #define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E
  25. #define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F
  26. #define PRODUCT_BUSINESS_N 0x00000010
  27. #define PRODUCT_WEB_SERVER 0x00000011
  28. #define PRODUCT_CLUSTER_SERVER 0x00000012
  29. #define PRODUCT_HOME_SERVER 0x00000013
  30. #define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014
  31. #define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015
  32. #define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016
  33. #define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017
  34. #define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018
  35. #define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019
  36. #define PRODUCT_HOME_PREMIUM_N 0x0000001A
  37. #define PRODUCT_ENTERPRISE_N 0x0000001B
  38. #define PRODUCT_ULTIMATE_N 0x0000001C
  39. #define PRODUCT_WEB_SERVER_CORE 0x0000001D
  40. #define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E
  41. #define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F
  42. #define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020
  43. #define PRODUCT_SMALLBUSINESS_SERVER_PRIME 0x00000021
  44. #define PRODUCT_HOME_PREMIUM_SERVER 0x00000022
  45. #define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023
  46. #define PRODUCT_STANDARD_SERVER_V 0x00000024
  47. #define PRODUCT_DATACENTER_SERVER_V 0x00000025
  48. #define PRODUCT_ENTERPRISE_SERVER_V 0x00000026
  49. #define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027
  50. #define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028
  51. #define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029
  52. #define PRODUCT_HYPERV 0x0000002A
  53. #define SM_TABLETPC 86
  54. #define SM_MEDIACENTER 87
  55. #define SM_STARTER 88
  56. #define SM_SERVERR2 89
  57. #define VER_SERVER_NT 0x80000000
  58. #define VER_WORKSTATION_NT 0x40000000
  59. #define VER_SUITE_SMALLBUSINESS 0x00000001
  60. #define VER_SUITE_ENTERPRISE 0x00000002
  61. #define VER_SUITE_BACKOFFICE 0x00000004
  62. #define VER_SUITE_COMMUNICATIONS 0x00000008
  63. #define VER_SUITE_TERMINAL 0x00000010
  64. #define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020
  65. #define VER_SUITE_EMBEDDEDNT 0x00000040
  66. #define VER_SUITE_DATACENTER 0x00000080
  67. #define VER_SUITE_SINGLEUSERTS 0x00000100
  68. #define VER_SUITE_PERSONAL 0x00000200
  69. #define VER_SUITE_BLADE 0x00000400
  70. #define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800
  71. #define VER_SUITE_SECURITY_APPLIANCE 0x00001000
  72. #define VER_SUITE_STORAGE_SERVER 0x00002000
  73. #define VER_SUITE_COMPUTE_SERVER 0x00004000
  74. #define VER_SUITE_WH_SERVER 0x00008000
  75. typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
  76. typedef BOOL (WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD);
  77. typedef struct __OS_VER_INFO__
  78. {
  79. BOOL bIs64Bit;
  80. TCHAR szOSVerName[256];
  81. DWORD dwMajorVersion; // 系统主版本号;
  82. DWORD dwMinorVersion; // 系统次版本号;
  83. WORD wProductType; // 系统类型;
  84. __OS_VER_INFO__()
  85. {
  86. bIs64Bit = FALSE;
  87. ZeroMemory(szOSVerName, MAX_PATH);
  88. dwMajorVersion = 0;
  89. dwMinorVersion = 0;
  90. wProductType = 0;
  91. }
  92. }OSVerInfo,*pOSVerInfo;
  93. //////////////////////////////////////////////////////////////////////////
  94. // 全局变量;
  95. extern TCHAR g_szHostName[MAX_PATH]; // 主机计算机名;
  96. extern TCHAR g_szModulePath[MAX_PATH]; // 软件目录;
  97. extern TCHAR g_szModuleFileName[MAX_PATH]; // 软件名称;
  98. extern TCHAR g_szConnectString[MAX_PATH]; // DB连接串;
  99. // 服务器信息;
  100. extern TCHAR g_szDBSource[MAX_PATH]; // 数据库源(服务所在IP或计算机名);
  101. extern TCHAR g_szDBSourcePort[MAX_PATH]; // 数据库源端口;
  102. extern DWORD g_dwDBServerPort; // 数据库源端口;
  103. extern TCHAR g_szDBAccount[MAX_PATH]; // 数据库登录用户;
  104. extern TCHAR g_szDBPassWord[MAX_PATH]; // 数据库登录密码;
  105. extern TCHAR g_szDBName[MAX_PATH]; // 数据库名称;
  106. extern TCHAR g_szLogDBName[MAX_PATH]; // Log数据库名称;
  107. extern DWORD g_dwCSPort; // 客户端与服务端的通信端口;
  108. extern Encryptlockkernel::YtInfoVer1 g_YtInfoVer1; // 域天加密锁信息;
  109. //////////////////////////////////////////////////////////////////////////
  110. // 全局函数;
  111. // 判断公历是否有效;
  112. extern BOOL IsValidDate(IN LPCTSTR lpDate);
  113. // 判断农历是否有效;
  114. extern BOOL IsValidLunanrDate(IN LPCTSTR lpDate);
  115. //////////////////////////////////////////////////////////////////////////
  116. // 系统安全相关函数;
  117. // 提升Debgu权限;
  118. extern BOOL GetDebugPriv();
  119. // 获取模块的文件版本号;
  120. extern bool GetFileVersion(HMODULE hModule, WORD *pBuffer);
  121. // 获取模块的产品版本号;
  122. extern bool GetProductVersion(HMODULE hModule, WORD *pBuffer);
  123. // 注册OCX控件;
  124. extern BOOL RegisterOcx(LPCTSTR OcxFileName);
  125. // 获取计算机操作系统版本;
  126. extern AFX_API_EXPORT INT GetNativeSystemInfo(LPTSTR lpSystemName);
  127. // 是否运行在Wow64目录下;
  128. extern AFX_API_EXPORT BOOL IsWow64();
  129. extern AFX_API_EXPORT BOOL IsOSVerIs64();
  130. extern AFX_API_EXPORT INT IsWow64Process( HANDLE hprocess );
  131. extern AFX_API_EXPORT BOOL GetSystemInfo(OSVerInfo &tagOSInfo);
  132. //////////////////////////////////////////////////////////////////////////
  133. // 获取配置文件函数;
  134. extern int GetIniInfo(IN const TCHAR *szPath = NULL, const TCHAR *szIniName = NULL);
  135. //////////////////////////////////////////////////////////////////////////
  136. // 字符串系列全局函数;
  137. extern BOOL IsStringExist(IN CString& str, IN CStringArray &tagAry);
  138. extern BOOL IsStringExist(IN TString& str, IN STR_VEC &tagVt);
  139. extern BOOL IsStringExistNoCase(IN CString& str, IN CStringArray &tagAry);
  140. extern BOOL IsStringExistNoCase(IN CONST TString& str, IN STR_VEC &tagVt);
  141. extern TString lowercase(IN const TString &Str);
  142. extern TString uppercase(IN const TString &Str);
  143. extern int match(IN CONST TString &sExt, IN CONST TString &sFile);
  144. extern TString getfilename(IN CONST TString &file);
  145. extern CString getfilename(IN CONST CString &file);
  146. //////////////////////////////////////////////////////////////////////////
  147. // 关机函数;
  148. extern void ShowSystemErrorInfo(CString strDescription, const DWORD &dwError);
  149. extern BOOL MySystemShutdown(LPTSTR lpMsg);
  150. extern BOOL PreventSystemShutdown();
  151. extern BOOL MySystemShutdown();
  152. //////////////////////////////////////////////////////////////////////////
  153. // 进程相关函数;
  154. extern BOOL FindAppProcessID(IN CString path, OUT DWORD &dwProcessID);
  155. extern DWORD FindProcess(IN CString strProName);
  156. extern int FindAndCloseProcess(IN CString strProName);
  157. //////////////////////////////////////////////////////////////////////////
  158. // 文件夹相关函数;
  159. extern void GetDirveInfo();
  160. extern void Splitpath(IN CONST TCHAR *path, IN TCHAR * drive, IN size_t driveNumberOfElements, IN TCHAR * dir, IN size_t dirNumberOfElements, IN CONST int &nTimes);
  161. extern BOOL CreateDirectoryEx(IN LPCTSTR lpNewDirectory);
  162. extern BOOL OpenFloder(IN STR_VEC &vtFiles,IN LPCTSTR lpFilter = NULL);
  163. extern BOOL OpenFloder(IN CStringArray &vtFiles,IN LPCTSTR lpFilter = NULL);
  164. extern BOOL IsValidpath(IN CONST TString &strPath);
  165. extern BOOL GetFilePath(TCHAR *FilePath, HWND hParentWnd, TCHAR* InstructionString, UINT ulFlags);
  166. extern BOOL GetDiskSpaceInfo(IN LPCTSTR lpRootPathName,IN OUT double &dTotalNum, IN OUT double &dFreeNum);
  167. //////////////////////////////////////////////////////////////////////////
  168. // 网络相关函数;
  169. // 获取计算机名;
  170. extern void GetHostName();
  171. // 判断是否内网;
  172. BOOL IsInternalIPV4(const unsigned int &ip_addr);
  173. // 获取本机的IPV4地址;
  174. extern INT GetHostIPV4(OUT vector<TString>& vtHostIPV4);
  175. // 获取指定主机名的IPV4地址;
  176. extern INT GetHostIPV4(IN LPCTSTR lpHostName, OUT vector<TString>& vtHostIPV4);
  177. extern INT get_ip();
  178. extern BOOL EncryptFile2(BYTE *buffer, DWORD leng, PCHAR szPassword);
  179. };
  180. #endif