#ifndef __GLOBAL_20150930__ #define __GLOBAL_20150930__ #pragma once #include "basetype.h" #include "Encryptlock.h" #include #pragma comment(lib, "Ws2_32.lib") namespace Global { #define BUFSIZE 256 #define PRODUCT_ULTIMATE 0x00000001 #define PRODUCT_HOME_BASIC 0x00000002 #define PRODUCT_HOME_PREMIUM 0x00000003 #define PRODUCT_ENTERPRISE 0x00000004 #define PRODUCT_HOME_BASIC_N 0x00000005 #define PRODUCT_BUSINESS 0x00000006 #define PRODUCT_STANDARD_SERVER 0x00000007 #define PRODUCT_DATACENTER_SERVER 0x00000008 #define PRODUCT_SMALLBUSINESS_SERVER 0x00000009 #define PRODUCT_ENTERPRISE_SERVER 0x0000000A #define PRODUCT_STARTER 0x0000000B #define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C #define PRODUCT_STANDARD_SERVER_CORE 0x0000000D #define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E #define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F #define PRODUCT_BUSINESS_N 0x00000010 #define PRODUCT_WEB_SERVER 0x00000011 #define PRODUCT_CLUSTER_SERVER 0x00000012 #define PRODUCT_HOME_SERVER 0x00000013 #define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014 #define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015 #define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016 #define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017 #define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018 #define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019 #define PRODUCT_HOME_PREMIUM_N 0x0000001A #define PRODUCT_ENTERPRISE_N 0x0000001B #define PRODUCT_ULTIMATE_N 0x0000001C #define PRODUCT_WEB_SERVER_CORE 0x0000001D #define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E #define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F #define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020 #define PRODUCT_SMALLBUSINESS_SERVER_PRIME 0x00000021 #define PRODUCT_HOME_PREMIUM_SERVER 0x00000022 #define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023 #define PRODUCT_STANDARD_SERVER_V 0x00000024 #define PRODUCT_DATACENTER_SERVER_V 0x00000025 #define PRODUCT_ENTERPRISE_SERVER_V 0x00000026 #define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027 #define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028 #define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029 #define PRODUCT_HYPERV 0x0000002A #define SM_TABLETPC 86 #define SM_MEDIACENTER 87 #define SM_STARTER 88 #define SM_SERVERR2 89 #define VER_SERVER_NT 0x80000000 #define VER_WORKSTATION_NT 0x40000000 #define VER_SUITE_SMALLBUSINESS 0x00000001 #define VER_SUITE_ENTERPRISE 0x00000002 #define VER_SUITE_BACKOFFICE 0x00000004 #define VER_SUITE_COMMUNICATIONS 0x00000008 #define VER_SUITE_TERMINAL 0x00000010 #define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020 #define VER_SUITE_EMBEDDEDNT 0x00000040 #define VER_SUITE_DATACENTER 0x00000080 #define VER_SUITE_SINGLEUSERTS 0x00000100 #define VER_SUITE_PERSONAL 0x00000200 #define VER_SUITE_BLADE 0x00000400 #define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800 #define VER_SUITE_SECURITY_APPLIANCE 0x00001000 #define VER_SUITE_STORAGE_SERVER 0x00002000 #define VER_SUITE_COMPUTE_SERVER 0x00004000 #define VER_SUITE_WH_SERVER 0x00008000 typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); typedef BOOL (WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD); typedef struct __OS_VER_INFO__ { BOOL bIs64Bit; TCHAR szOSVerName[256]; DWORD dwMajorVersion; // 系统主版本号; DWORD dwMinorVersion; // 系统次版本号; WORD wProductType; // 系统类型; __OS_VER_INFO__() { bIs64Bit = FALSE; ZeroMemory(szOSVerName, MAX_PATH); dwMajorVersion = 0; dwMinorVersion = 0; wProductType = 0; } }OSVerInfo,*pOSVerInfo; ////////////////////////////////////////////////////////////////////////// // 全局变量; extern TCHAR g_szHostName[MAX_PATH]; // 主机计算机名; extern TCHAR g_szModulePath[MAX_PATH]; // 软件目录; extern TCHAR g_szModuleFileName[MAX_PATH]; // 软件名称; extern TCHAR g_szConnectString[MAX_PATH]; // DB连接串; // 服务器信息; extern TCHAR g_szDBSource[MAX_PATH]; // 数据库源(服务所在IP或计算机名); extern TCHAR g_szDBSourcePort[MAX_PATH]; // 数据库源端口; extern DWORD g_dwDBServerPort; // 数据库源端口; extern TCHAR g_szDBAccount[MAX_PATH]; // 数据库登录用户; extern TCHAR g_szDBPassWord[MAX_PATH]; // 数据库登录密码; extern TCHAR g_szDBName[MAX_PATH]; // 数据库名称; extern TCHAR g_szLogDBName[MAX_PATH]; // Log数据库名称; extern DWORD g_dwCSPort; // 客户端与服务端的通信端口; extern Encryptlockkernel::YtInfoVer1 g_YtInfoVer1; // 域天加密锁信息; ////////////////////////////////////////////////////////////////////////// // 全局函数; // 判断公历是否有效; extern BOOL IsValidDate(IN LPCTSTR lpDate); // 判断农历是否有效; extern BOOL IsValidLunanrDate(IN LPCTSTR lpDate); ////////////////////////////////////////////////////////////////////////// // 系统安全相关函数; // 提升Debgu权限; extern BOOL GetDebugPriv(); // 获取模块的文件版本号; extern bool GetFileVersion(HMODULE hModule, WORD *pBuffer); // 获取模块的产品版本号; extern bool GetProductVersion(HMODULE hModule, WORD *pBuffer); // 注册OCX控件; extern BOOL RegisterOcx(LPCTSTR OcxFileName); // 获取计算机操作系统版本; extern AFX_API_EXPORT INT GetNativeSystemInfo(LPTSTR lpSystemName); // 是否运行在Wow64目录下; extern AFX_API_EXPORT BOOL IsWow64(); extern AFX_API_EXPORT BOOL IsOSVerIs64(); extern AFX_API_EXPORT INT IsWow64Process( HANDLE hprocess ); extern AFX_API_EXPORT BOOL GetSystemInfo(OSVerInfo &tagOSInfo); ////////////////////////////////////////////////////////////////////////// // 获取配置文件函数; extern int GetIniInfo(IN const TCHAR *szPath = NULL, const TCHAR *szIniName = NULL); ////////////////////////////////////////////////////////////////////////// // 字符串系列全局函数; extern BOOL IsStringExist(IN CString& str, IN CStringArray &tagAry); extern BOOL IsStringExist(IN TString& str, IN STR_VEC &tagVt); extern BOOL IsStringExistNoCase(IN CString& str, IN CStringArray &tagAry); extern BOOL IsStringExistNoCase(IN CONST TString& str, IN STR_VEC &tagVt); extern TString lowercase(IN const TString &Str); extern TString uppercase(IN const TString &Str); extern int match(IN CONST TString &sExt, IN CONST TString &sFile); extern TString getfilename(IN CONST TString &file); extern CString getfilename(IN CONST CString &file); ////////////////////////////////////////////////////////////////////////// // 关机函数; extern void ShowSystemErrorInfo(CString strDescription, const DWORD &dwError); extern BOOL MySystemShutdown(LPTSTR lpMsg); extern BOOL PreventSystemShutdown(); extern BOOL MySystemShutdown(); ////////////////////////////////////////////////////////////////////////// // 进程相关函数; extern BOOL FindAppProcessID(IN CString path, OUT DWORD &dwProcessID); extern DWORD FindProcess(IN CString strProName); extern int FindAndCloseProcess(IN CString strProName); ////////////////////////////////////////////////////////////////////////// // 文件夹相关函数; extern void GetDirveInfo(); 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); extern BOOL CreateDirectoryEx(IN LPCTSTR lpNewDirectory); extern BOOL OpenFloder(IN STR_VEC &vtFiles,IN LPCTSTR lpFilter = NULL); extern BOOL OpenFloder(IN CStringArray &vtFiles,IN LPCTSTR lpFilter = NULL); extern BOOL IsValidpath(IN CONST TString &strPath); extern BOOL GetFilePath(TCHAR *FilePath, HWND hParentWnd, TCHAR* InstructionString, UINT ulFlags); extern BOOL GetDiskSpaceInfo(IN LPCTSTR lpRootPathName,IN OUT double &dTotalNum, IN OUT double &dFreeNum); ////////////////////////////////////////////////////////////////////////// // 网络相关函数; // 获取计算机名; extern void GetHostName(); // 判断是否内网; BOOL IsInternalIPV4(const unsigned int &ip_addr); // 获取本机的IPV4地址; extern INT GetHostIPV4(OUT vector& vtHostIPV4); // 获取指定主机名的IPV4地址; extern INT GetHostIPV4(IN LPCTSTR lpHostName, OUT vector& vtHostIPV4); extern INT get_ip(); extern BOOL EncryptFile2(BYTE *buffer, DWORD leng, PCHAR szPassword); }; #endif