#include "StdAfx.h" #include "WHIniData.h" #include "WHEncrypt.h" ////////////////////////////////////////////////////////////////////////////////// //构造函数 CWHIniData::CWHIniData() { //设置变量 ZeroMemory(m_szIniFile,sizeof(m_szIniFile)); return; } //析构函数 CWHIniData::~CWHIniData() { } //设置路径 VOID CWHIniData::SetIniFilePath(LPCTSTR pszIniFile) { //设置变量 lstrcpyn(m_szIniFile,pszIniFile,CountArray(m_szIniFile)); return; } //读取数值 UINT CWHIniData::ReadInt(LPCTSTR pszItem, LPCTSTR pszSubItem, INT nDefault) { //效验状态 ASSERT(m_szIniFile[0]!=0); //读取数值 UINT uReadData=GetPrivateProfileInt(pszItem,pszSubItem,nDefault,m_szIniFile); return uReadData; } //读取字符 LPCTSTR CWHIniData::ReadString(LPCTSTR pszItem, LPCTSTR pszSubItem, LPCTSTR pszDefault, LPTSTR pszString, WORD wMaxCount) { //效验状态 ASSERT(m_szIniFile[0]!=0); //读取字符 GetPrivateProfileString(pszItem,pszSubItem,pszDefault,pszString,wMaxCount,m_szIniFile); return pszString; } //读取字符 LPCTSTR CWHIniData::ReadEncryptString(LPCTSTR pszItem, LPCTSTR pszSubItem, LPCTSTR pszDefault, LPTSTR pszString, WORD wMaxCount) { //效验状态 ASSERT(m_szIniFile[0]!=0); ASSERT(wMaxCount<=MAX_SOURCE_LEN); //设置结果 if (wMaxCount>0) pszString[0]=0; //读取字符 TCHAR szStringRead[MAX_ENCRYPT_LEN]; DWORD dwReadCount=GetPrivateProfileString(pszItem,pszSubItem,NULL,szStringRead,MAX_ENCRYPT_LEN,m_szIniFile); //解密字符 if ((dwReadCount>0)&&(dwReadCount0)&&(pszString[0]==0)) lstrcpyn(pszString,pszDefault,wMaxCount); return pszString; } //读取矩形 bool CWHIniData::ReadRect(RECT & ValueRect, LPCTSTR pszItem, LPCTSTR pszSubItem) { //效验状态 ASSERT(m_szIniFile[0]!=0); //设置变量 TCHAR szReadData[64]=TEXT(""); ZeroMemory(&ValueRect,sizeof(ValueRect)); //读取字符 GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile); //数据处理 if (szReadData[0]!=0) { //读取变量 LPCTSTR pszString=szReadData; ValueRect.left=SwitchStringToValue(pszString); ValueRect.top=SwitchStringToValue(pszString); ValueRect.right=SwitchStringToValue(pszString); ValueRect.bottom=SwitchStringToValue(pszString); return true; } return false; } //读取尺寸 bool CWHIniData::ReadSize(SIZE & ValueSize, LPCTSTR pszItem, LPCTSTR pszSubItem) { //效验状态 ASSERT(m_szIniFile[0]!=0); //设置变量 TCHAR szReadData[64]=TEXT(""); ZeroMemory(&ValueSize,sizeof(ValueSize)); //读取字符 GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile); //数据处理 if (szReadData[0]!=0) { //读取变量 LPCTSTR pszString=szReadData; ValueSize.cx=SwitchStringToValue(pszString); ValueSize.cy=SwitchStringToValue(pszString); return true; } return false; } //读取坐标 bool CWHIniData::ReadPoint(POINT & ValuePoint, LPCTSTR pszItem, LPCTSTR pszSubItem) { //效验状态 ASSERT(m_szIniFile[0]!=0); //设置变量 TCHAR szReadData[64]=TEXT(""); ZeroMemory(&ValuePoint,sizeof(ValuePoint)); //读取字符 GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile); //数据处理 if (szReadData[0]!=0) { //读取变量 LPCTSTR pszString=szReadData; ValuePoint.x=SwitchStringToValue(pszString); ValuePoint.y=SwitchStringToValue(pszString); return true; } return false; } //读取颜色 bool CWHIniData::ReadColor(COLORREF & ValueColor, LPCTSTR pszItem, LPCTSTR pszSubItem) { //效验状态 ASSERT(m_szIniFile[0]!=0); //设置变量 TCHAR szReadData[64]=TEXT(""); ZeroMemory(&ValueColor,sizeof(ValueColor)); //读取字符 GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile); //数据处理 if (szReadData[0]!=0) { //读取变量 LPCTSTR pszString=szReadData; ValueColor=RGB(SwitchStringToValue(pszString),SwitchStringToValue(pszString),SwitchStringToValue(pszString)); return true; } return false; } //转换数值 LONG CWHIniData::SwitchStringToValue(LPCTSTR & pszSring) { //效验参数 ASSERT((pszSring!=NULL)&&(pszSring[0]!=0)); if ((pszSring==NULL)||(pszSring[0]==0)) return 0L; //寻找开始 while (((pszSring[0]>0)&&(pszSring[0]TEXT('9'))) pszSring++; //读取数值 LONG lValue=0L; while ((pszSring[0]>=TEXT('0'))&&(pszSring[0]<=TEXT('9'))) { lValue=lValue*10L+pszSring[0]-TEXT('0'); ++pszSring; } return lValue; } //////////////////////////////////////////////////////////////////////////////////