212 lines
4.5 KiB
C++
212 lines
4.5 KiB
C++
|
|
#include "StdAfx.h"
|
|||
|
|
#include "WHIniData.h"
|
|||
|
|
#include "WHEncrypt.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CWHIniData::CWHIniData()
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
ZeroMemory(m_szIniFile,sizeof(m_szIniFile));
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CWHIniData::~CWHIniData()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
|||
|
|
VOID CWHIniData::SetIniFilePath(LPCTSTR pszIniFile)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
lstrcpyn(m_szIniFile,pszIniFile,CountArray(m_szIniFile));
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ֵ
|
|||
|
|
UINT CWHIniData::ReadInt(LPCTSTR pszItem, LPCTSTR pszSubItem, INT nDefault)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7>״̬
|
|||
|
|
ASSERT(m_szIniFile[0]!=0);
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ֵ
|
|||
|
|
UINT uReadData=GetPrivateProfileInt(pszItem,pszSubItem,nDefault,m_szIniFile);
|
|||
|
|
|
|||
|
|
return uReadData;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
LPCTSTR CWHIniData::ReadString(LPCTSTR pszItem, LPCTSTR pszSubItem, LPCTSTR pszDefault, LPTSTR pszString, WORD wMaxCount)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7>״̬
|
|||
|
|
ASSERT(m_szIniFile[0]!=0);
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
GetPrivateProfileString(pszItem,pszSubItem,pszDefault,pszString,wMaxCount,m_szIniFile);
|
|||
|
|
|
|||
|
|
return pszString;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
LPCTSTR CWHIniData::ReadEncryptString(LPCTSTR pszItem, LPCTSTR pszSubItem, LPCTSTR pszDefault, LPTSTR pszString, WORD wMaxCount)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7>״̬
|
|||
|
|
ASSERT(m_szIniFile[0]!=0);
|
|||
|
|
ASSERT(wMaxCount<=MAX_SOURCE_LEN);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
|
|||
|
|
if (wMaxCount>0) pszString[0]=0;
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
TCHAR szStringRead[MAX_ENCRYPT_LEN];
|
|||
|
|
DWORD dwReadCount=GetPrivateProfileString(pszItem,pszSubItem,NULL,szStringRead,MAX_ENCRYPT_LEN,m_szIniFile);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
|
|||
|
|
if ((dwReadCount>0)&&(dwReadCount<CountArray(szStringRead)))
|
|||
|
|
{
|
|||
|
|
CWHEncrypt WHEncrypt;
|
|||
|
|
WHEncrypt.XorCrevasse(szStringRead,pszString,wMaxCount);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Ĭ<>ϲ<EFBFBD><CFB2><EFBFBD>
|
|||
|
|
if ((wMaxCount>0)&&(pszString[0]==0)) lstrcpyn(pszString,pszDefault,wMaxCount);
|
|||
|
|
|
|||
|
|
return pszString;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
bool CWHIniData::ReadRect(RECT & ValueRect, LPCTSTR pszItem, LPCTSTR pszSubItem)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7>״̬
|
|||
|
|
ASSERT(m_szIniFile[0]!=0);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
TCHAR szReadData[64]=TEXT("");
|
|||
|
|
ZeroMemory(&ValueRect,sizeof(ValueRect));
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
|
if (szReadData[0]!=0)
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
LPCTSTR pszString=szReadData;
|
|||
|
|
ValueRect.left=SwitchStringToValue(pszString);
|
|||
|
|
ValueRect.top=SwitchStringToValue(pszString);
|
|||
|
|
ValueRect.right=SwitchStringToValue(pszString);
|
|||
|
|
ValueRect.bottom=SwitchStringToValue(pszString);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ߴ<EFBFBD>
|
|||
|
|
bool CWHIniData::ReadSize(SIZE & ValueSize, LPCTSTR pszItem, LPCTSTR pszSubItem)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7>״̬
|
|||
|
|
ASSERT(m_szIniFile[0]!=0);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
TCHAR szReadData[64]=TEXT("");
|
|||
|
|
ZeroMemory(&ValueSize,sizeof(ValueSize));
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
|
if (szReadData[0]!=0)
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
LPCTSTR pszString=szReadData;
|
|||
|
|
ValueSize.cx=SwitchStringToValue(pszString);
|
|||
|
|
ValueSize.cy=SwitchStringToValue(pszString);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
bool CWHIniData::ReadPoint(POINT & ValuePoint, LPCTSTR pszItem, LPCTSTR pszSubItem)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7>״̬
|
|||
|
|
ASSERT(m_szIniFile[0]!=0);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
TCHAR szReadData[64]=TEXT("");
|
|||
|
|
ZeroMemory(&ValuePoint,sizeof(ValuePoint));
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
|
if (szReadData[0]!=0)
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
LPCTSTR pszString=szReadData;
|
|||
|
|
ValuePoint.x=SwitchStringToValue(pszString);
|
|||
|
|
ValuePoint.y=SwitchStringToValue(pszString);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ɫ
|
|||
|
|
bool CWHIniData::ReadColor(COLORREF & ValueColor, LPCTSTR pszItem, LPCTSTR pszSubItem)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7>״̬
|
|||
|
|
ASSERT(m_szIniFile[0]!=0);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
|
|||
|
|
TCHAR szReadData[64]=TEXT("");
|
|||
|
|
ZeroMemory(&ValueColor,sizeof(ValueColor));
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>ַ<EFBFBD>
|
|||
|
|
GetPrivateProfileString(pszItem,pszSubItem,TEXT(""),szReadData,CountArray(szReadData),m_szIniFile);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>
|
|||
|
|
if (szReadData[0]!=0)
|
|||
|
|
{
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
LPCTSTR pszString=szReadData;
|
|||
|
|
ValueColor=RGB(SwitchStringToValue(pszString),SwitchStringToValue(pszString),SwitchStringToValue(pszString));
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ת<><D7AA><EFBFBD><EFBFBD>ֵ
|
|||
|
|
LONG CWHIniData::SwitchStringToValue(LPCTSTR & pszSring)
|
|||
|
|
{
|
|||
|
|
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ASSERT((pszSring!=NULL)&&(pszSring[0]!=0));
|
|||
|
|
if ((pszSring==NULL)||(pszSring[0]==0)) return 0L;
|
|||
|
|
|
|||
|
|
//Ѱ<>ҿ<EFBFBD>ʼ
|
|||
|
|
while (((pszSring[0]>0)&&(pszSring[0]<TEXT('0')))||(pszSring[0]>TEXT('9'))) pszSring++;
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ֵ
|
|||
|
|
LONG lValue=0L;
|
|||
|
|
while ((pszSring[0]>=TEXT('0'))&&(pszSring[0]<=TEXT('9')))
|
|||
|
|
{
|
|||
|
|
lValue=lValue*10L+pszSring[0]-TEXT('0');
|
|||
|
|
++pszSring;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return lValue;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|