📄 qsprofile.cpp
字号:
return m_nAccessType;
}
void CQSProfile::SetAccessType( int nAccessType )
{
m_nAccessType = nAccessType;
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
CString sTemp;
sTemp.Format( "%d", m_nAccessType );
::WritePrivateProfileString( szProfile_Proxy, szProfile_AccessType, sTemp, sFileName );
}
int CQSProfile::GetProxyType( )
{
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
m_nProxyType = ::GetPrivateProfileInt( szProfile_Proxy, szProfile_ProxyType, 3, sFileName );
return m_nProxyType;
}
void CQSProfile::SetProxyType( int nProxyType )
{
m_nProxyType = nProxyType;
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
CString sTemp;
sTemp.Format( "%d", m_nProxyType );
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyType, sTemp, sFileName );
}
CString CQSProfile::GetProxyAddress( )
{
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
char szAddress[CProxySocket::MaxLenAddress+2];
memset( szAddress, 0, sizeof(szAddress) );
::GetPrivateProfileString( szProfile_Proxy, szProfile_ProxyAddress, "", szAddress, sizeof(szAddress)-2, sFileName );
m_strProxyAddress = szAddress;
return m_strProxyAddress;
}
void CQSProfile::SetProxyAddress( LPCTSTR lpszProxyAddress )
{
m_strProxyAddress = lpszProxyAddress;
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyAddress, m_strProxyAddress, sFileName );
}
WORD CQSProfile::GetProxyPort( )
{
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
m_nProxyPort = ::GetPrivateProfileInt( szProfile_Proxy, szProfile_ProxyPort, 80, sFileName );
return m_nProxyPort;
}
void CQSProfile::SetProxyPort( WORD nPort )
{
m_nProxyPort = nPort;
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
CString sTemp;
sTemp.Format( "%d", m_nProxyPort );
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyPort, sTemp, sFileName );
}
CString CQSProfile::GetProxyUser( )
{
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
char szUser[CProxySocket::MaxLenUser+2];
memset( szUser, 0, sizeof(szUser) );
::GetPrivateProfileString( szProfile_Proxy, szProfile_ProxyUser, "", szUser, sizeof(szUser)-2, sFileName );
m_strProxyUser = szUser;
return m_strProxyUser;
}
void CQSProfile::SetProxyUser( LPCTSTR lpszProxyUser )
{
m_strProxyUser = lpszProxyUser;
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyUser, m_strProxyUser, sFileName );
}
CString CQSProfile::GetProxyPasswd( )
{
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
char szPasswd[CProxySocket::MaxLenPasswd+2];
memset( szPasswd, 0, sizeof(szPasswd) );
::GetPrivateProfileString( szProfile_Proxy, szProfile_ProxyPasswd, "", szPasswd, sizeof(szPasswd)-2, sFileName );
m_strProxyPasswd = szPasswd;
return m_strProxyPasswd;
}
void CQSProfile::SetProxyPasswd( LPCTSTR lpszProxyPasswd )
{
m_strProxyPasswd = lpszProxyPasswd;
CString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyPasswd, m_strProxyPasswd, sFileName );
}
static CString QSP_AfxGetFileDirectory( CString strPathName, CString strDefault )
{
if( strPathName.IsEmpty() )
return strDefault;
CString strResult = strPathName;
if( strResult.GetLength() > 0 )
{
int nIndex = strResult.ReverseFind( '\\' );
if( -1 == nIndex )
nIndex = strResult.ReverseFind( '/' );
if( -1 == nIndex )
strResult = strDefault;
else
strResult = strResult.Left( nIndex );
}
if( strResult.GetLength() <= 0 )
return strDefault;
int nLen = strResult.GetLength();
if( nLen > 0 && strResult[nLen-1] != '\\' && strResult[nLen-1] != '/' )
strResult += "\\";
return strResult;
}
CString CQSProfile::GetWorkDirectory( )
{
if( m_strWorkDirectory.IsEmpty() )
{
TCHAR szLongPathName[_MAX_PATH];
::GetModuleFileName( AfxGetModuleHandle(), szLongPathName, _MAX_PATH);
m_strWorkDirectory = QSP_AfxGetFileDirectory( szLongPathName, "" );
}
return m_strWorkDirectory;
}
int CQSProfile::GetCurrentServerIndex()
{
if( m_nCurrentServer < 0 || m_nCurrentServer >= m_aQuoteServers.GetSize() )
m_nCurrentServer = 0;
if( 0 == m_aQuoteServers.GetSize() )
m_nCurrentServer = -1;
return m_nCurrentServer;
}
CQuoteServer CQSProfile::GetCurrentServer()
{
CQuoteServer qs;
int nIndex = GetCurrentServerIndex();
if( nIndex >= 0 && nIndex < m_aQuoteServers.GetSize() )
qs = m_aQuoteServers.ElementAt(nIndex);
return qs;
}
void CQSProfile::SetCurrentServer( int nServer )
{
m_nCurrentServer = nServer;
}
BOOL CQSProfile::GetCycleConnect()
{
return m_bCycleConnect;
}
void CQSProfile::SetCycleConnect( BOOL bCycleConnect )
{
m_bCycleConnect = bCycleConnect;
}
CQuoteServerArray & CQSProfile::GetQuoteServers( )
{
return m_aQuoteServers;
}
int CQSProfile::AddQuoteServers( CQuoteServerArray & aNew )
{
int nCount = 0;
for( int i=0; i<aNew.GetSize(); i++ )
{
CQuoteServer & qs = aNew.ElementAt(i);
for( int j=0; j<m_aQuoteServers.GetSize(); j++ )
{
if( 0 == qs.m_strName.CompareNoCase(m_aQuoteServers.ElementAt(j).m_strName)
|| 0 == qs.m_strAddress.CompareNoCase(m_aQuoteServers.ElementAt(j).m_strAddress) )
{
m_aQuoteServers.SetAt( j, qs );
nCount ++;
break;
}
}
if( j == m_aQuoteServers.GetSize() )
{
m_aQuoteServers.Add( qs );
nCount ++;
}
}
return nCount;
}
void SerializeAlias( CArchive & ar, CAliasArray & aAliases )
{
char szFileMagic[] = "NETTSALIAS";
DWORD dwFileVersion = 0x20040825;
if( ar.IsStoring() )
{
ar.WriteString( szFileMagic );
ar << dwFileVersion;
ar << (int)aAliases.GetSize();
for( int i=0; i<aAliases.GetSize(); i++ )
{
CAlias & a = aAliases.ElementAt(i);
ar << a.m_strName;
ar << a.m_strValue;
}
}
else
{
TCHAR buffer[64];
memset( buffer, 0, sizeof(buffer) );
ar.ReadString( buffer, strlen(szFileMagic) );
if( 0 != strncmp( szFileMagic, buffer, strlen(szFileMagic) ) )
return;
DWORD dwVer;
ar >> dwVer;
if( dwVer > dwFileVersion )
return;
int size;
ar >> size;
if( size < 0 || size > 10000 ) // too big
return;
aAliases.SetSize( 0, size+2 );
for( int i=0; i<size; i++ )
{
CAlias a;
ar >> a.m_strName;
ar >> a.m_strValue;
aAliases.Add( a );
}
}
}
CString GetNetTSAliasFileName( )
{
TCHAR buffer[MAX_PATH];
memset( buffer, 0, sizeof(buffer) );
GetWindowsDirectory(buffer, sizeof(buffer));
buffer[sizeof(buffer)-1] = 0;
CString string = buffer;
int nLen = string.GetLength();
if( nLen > 0 && '\\' != string[nLen-1] )
string += '\\';
return string + "NetTSAlias";
}
BOOL CQSProfile::StoreAliases( CAliasArray & aNew )
{
m_aAliases.SetSize( 0, aNew.GetSize() + 2 );
for( int i=0; i<aNew.GetSize(); i++ )
{
CAlias & alias = aNew.ElementAt(i);
m_aAliases.Add( alias );
}
CFile file;
if( file.Open( GetNetTSAliasFileName(), CFile::modeWrite | CFile::modeCreate ) )
{
CArchive ar( &file, CArchive::store );
SerializeAlias( ar, m_aAliases );
ar.Close();
file.Close();
return TRUE;
}
return FALSE;
}
BOOL CQSProfile::LoadAliases( )
{
CFile file;
if( file.Open( GetNetTSAliasFileName(), CFile::modeRead ) )
{
DWORD dwLen = (DWORD)file.GetLength();
if( 0 == dwLen || dwLen > 102400 ) // too big
{
file.Close();
return FALSE;
}
CArchive ar( &file, CArchive::load );
SerializeAlias( ar, m_aAliases );
ar.Close();
file.Close();
return TRUE;
}
return FALSE;
}
CString CQSProfile::GetAlias( LPCTSTR lpszName )
{
for( int i=0; i<m_aAliases.GetSize(); i++ )
{
CAlias & alias = m_aAliases.ElementAt(i);
if( 0 == alias.m_strName.CompareNoCase(lpszName) )
return alias.m_strValue;
}
return lpszName;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -