📄 profile.cpp
字号:
ar >> m_strDefaultServer;
m_astrDownloadServers.Serialize( ar );
ar >> m_nAccessType;
ar >> m_strProxyAddress;
ar >> m_nProxyPort;
// Window Placement
ar >> m_strWindowPlacement;
// Data path
ar >> m_strQianlongPath;
// Color
m_ColorClassContainer.Serialize( ar );
// Last Opened Strategies
m_astrLastOpenedStrategy.Serialize( ar );
ar >> m_strLastActiveStrategy;
// Net Info
ar >> m_bNetInfoShow;
ar >> m_strNetInfo;
ar >> m_strNetInfourl;
ar >> m_strLatestver;
// AutoResumeDRLimit
ar >> m_nAutoResumeDRLimit;
// SList Columns
m_anSListColumnsShow.Serialize( ar );
m_anSListColumnsOrder.Serialize( ar );
m_aSListColumnsUser.FileSerialize( ar );
ar >> m_nDiffDays;
ar >> m_nDiffPercentDays;
ar >> m_nScopeDays;
ar >> m_nRatioChangeHandDays;
ar >> m_nRatioVolumeDays;
ar >> m_nRSDays;
ar >> m_nYieldAverageDays;
// Info View
ar >> m_nInfoCurrentServer;
// Graph Techs
m_anGraphTechsShow.Serialize( ar );
m_anGraphTechsKLine.Serialize( ar );
m_anGraphTechsAll.Serialize( ar );
ar >> m_nGraphKFormat;
ar >> m_nGraphMaindataType;
ar >> m_dwAutoResumeDRBegin;
// SListView Font And BaseView Font
ar.Read( &m_lfSListView, sizeof(m_lfSListView) );
ar.Read( &m_lfBaseView, sizeof(m_lfBaseView) );
m_techparameters.Serialize( ar );
if( m_dwFileVersion >= 0x20030828 )
m_aHTMLURLToExplorer.Serialize( ar );
if( m_dwFileVersion >= 0x20030910 )
{
m_astrProvider.Serialize( ar );
m_astrDriver.Serialize( ar );
}
if( m_dwFileVersion >= 0x20040710 )
{
ar >> m_strTrader;
ar >> m_bAutoSaveKDataMin;
}
if( m_dwFileVersion >= 0x20040717 )
{
ar >> m_nProxyType;
ar >> m_strProxyUser;
ar >> m_strProxyPasswd;
}
if( m_dwFileVersion >= 0x20040803 )
{
ar >> m_bNotifyIcon;
ar >> m_nCacheDays;
m_nCacheDays = STKLIB_DAYS_CACHE;
}
if( m_dwFileVersion >= 0x20040903 )
{
m_aAlarmCond.Serialize( ar );
}
if( m_dwFileVersion >= 0x20050630 )
{
ar >> m_nLocalDataVersion;
}
}
}
CSPString CStProfile::GetMainServerDomain()
{
CSPString strResult;
char szMainServerDomainFmt[] = "%sin%su%sls%sco%s";
// ninebul ls.co m
// ^ ^^ ^ ^ ^
strResult.Format( szMainServerDomainFmt, "n", "eb", "l", ".", "m" );
strResult = "tsking.cn";
return strResult;
}
CSPString CStProfile::GetHTTPServerDomain()
{
CSPString strResult;
strResult.Format("www.%s", (LPCTSTR)GetMainServerDomain());
return strResult;
}
WORD CStProfile::GetHTTPServerPort( )
{
return 80;
}
CSPString CStProfile::GetMainServer( )
{
CSPString strInfo;
strInfo = sz_mainserverinfo;
CSPString strResult;
strResult.Format( "%s:%d:%s", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort(), (LPCTSTR)strInfo );
return strResult;
}
CSPString CStProfile::GetProductURL( )
{
CSPString strResult;
#ifdef CLKLAN_ENGLISH_US
strResult.Format( "http://%s:%d/enu/product/ninebulls/", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#elif defined CLKVER_OEM
strResult.Format( "http://%s:%d/product/stockana/", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#else
strResult.Format( "http://%s:%d/product/clking/", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#endif
return strResult;
}
CSPString CStProfile::GetDownloadURL( )
{
CSPString strResult;
#ifdef CLKLAN_ENGLISH_US
strResult.Format( "http://%s:%d/enu/download/ninebulls/", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#elif defined CLKVER_OEM
strResult.Format( "http://%s:%d/download/stockana/", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#else
strResult.Format( "http://%s:%d/download/clking/", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#endif
return strResult;
}
CSPString CStProfile::GetPurchaseURL( )
{
CSPString strResult;
#ifdef CLKLAN_ENGLISH_US
strResult.Format( "http://%s:%d/enu/purchase/ninebulls", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#elif defined CLKVER_OEM
strResult.Format( "http://%s:%d/purchase/stockana", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#else
strResult.Format( "http://%s:%d/purchase/clking", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#endif
return strResult;
}
CSPString CStProfile::GetAgentRootURL( )
{
CSPString strResult;
strResult.Format( "http://%s:%d/agent/", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
return strResult;
}
CSPString CStProfile::GetSupportMailto( )
{
CSPString strResult;
#ifdef CLKVER_OEM
strResult = "mailto:";
strResult += OEM_SUPPORT_MAILTO;
strResult += "?subject=";
#else
strResult.Format( "www.%s", (LPCTSTR)GetMainServerDomain() );
char szSupportMailtoFmt[] = "ma%sto%ssu%sor%s@%s?subject="; // ?subject=support&body=hello
strResult.Format( szSupportMailtoFmt, "il", ":", "pp", "t", (LPCTSTR)GetMainServerDomain() );
#endif
strResult += sz_mailsubjectsupport;
return strResult;
}
CSPString CStProfile::GetUpgradeURL( )
{
CSPString strResult;
#ifdef CLKLAN_ENGLISH_US
strResult.Format( "http://%s:%d/enu/download/ninebulls/upgrade3.exe", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#elif defined CLKVER_OEM
strResult.Format( "http://%s:%d/download/stockana/upgrade3.exe", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#else
strResult.Format( "http://%s:%d/download/tsking.exe", (LPCTSTR)GetHTTPServerDomain(), GetHTTPServerPort() );
#endif
return strResult;
}
CSPString CStProfile::GetEvaluateEmail( )
{
CSPString strResult;
strResult.Format( "evaluate@%s", (LPCTSTR)GetMainServerDomain() );
return strResult;
}
CSPString CStProfile::GetEvaluateSMTPServer( )
{
CSPString strResult;
strResult.Format( "mail.%s", (LPCTSTR)GetMainServerDomain() );
return strResult;
}
CSPString CStProfile::GetEvaluateSMTPUser( )
{
CSPString strResult;
strResult.Format( "evasend@%s", (LPCTSTR)GetMainServerDomain() );
return strResult;
}
CSPString CStProfile::GetEvaluateSMTPPasswd( )
{
return "evasend";
}
CSPString CStProfile::GetDefaultServer( )
{
if( m_strDefaultServer.IsEmpty() )
return GetMainServer( );
return m_strDefaultServer;
}
void CStProfile::SetDefaultServer( LPCTSTR lpszDefaultServer )
{
m_strDefaultServer = lpszDefaultServer;
}
CSPStringArray & CStProfile::GetDownloadServers( )
{
return m_astrDownloadServers;
}
void CStProfile::SetDownloadServers( CSPStringArray & astrAllServers )
{
m_astrDownloadServers.RemoveAll();
m_astrDownloadServers.Copy( astrAllServers );
}
/*
* not use now, use CQSProfile's proxy settings
*
char szQuoteServerProfileName[] = "QuoteServer.ini";
char szProfile_Proxy[] = "Proxy";
char szProfile_AccessType[] = "AccessType";
char szProfile_ProxyType[] = "ProxyType";
char szProfile_ProxyAddress[] = "ProxyAddress";
char szProfile_ProxyPort[] = "ProxyPort";
char szProfile_ProxyUser[] = "ProxyUser";
char szProfile_ProxyPasswd[] = "ProxyPasswd";
int CStProfile::GetAccessType( )
{
//if( INTERNET_OPEN_TYPE_DIRECT != m_nAccessType
// && INTERNET_OPEN_TYPE_PRECONFIG != m_nAccessType
// && INTERNET_OPEN_TYPE_PROXY != m_nAccessType )
// return INTERNET_OPEN_TYPE_DIRECT;
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
m_nAccessType = ::GetPrivateProfileInt( szProfile_Proxy, szProfile_AccessType, 0, sFileName );
return m_nAccessType;
}
void CStProfile::SetAccessType( int nAccessType )
{
m_nAccessType = nAccessType;
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
CSPString sTemp;
sTemp.Format( "%d", m_nAccessType );
::WritePrivateProfileString( szProfile_Proxy, szProfile_AccessType, sTemp, sFileName );
}
int CStProfile::GetProxyType( )
{
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
m_nProxyType = ::GetPrivateProfileInt( szProfile_Proxy, szProfile_ProxyType, 3, sFileName );
return m_nProxyType;
}
void CStProfile::SetProxyType( int nProxyType )
{
m_nProxyType = nProxyType;
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
CSPString sTemp;
sTemp.Format( "%d", m_nProxyType );
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyType, sTemp, sFileName );
}
CSPString CStProfile::GetProxyAddress( )
{
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
char szAddress[1024];
memset( szAddress, 0, sizeof(szAddress) );
::GetPrivateProfileString( szProfile_Proxy, szProfile_ProxyAddress, "", szAddress, sizeof(szAddress)-2, sFileName );
m_strProxyAddress = szAddress;
return m_strProxyAddress;
}
void CStProfile::SetProxyAddress( LPCTSTR lpszProxyAddress )
{
m_strProxyAddress = lpszProxyAddress;
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyAddress, m_strProxyAddress, sFileName );
}
WORD CStProfile::GetProxyPort( )
{
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
m_nProxyPort = ::GetPrivateProfileInt( szProfile_Proxy, szProfile_ProxyPort, 80, sFileName );
return m_nProxyPort;
}
void CStProfile::SetProxyPort( WORD nPort )
{
m_nProxyPort = nPort;
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
CSPString sTemp;
sTemp.Format( "%d", m_nProxyPort );
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyPort, sTemp, sFileName );
}
CSPString CStProfile::GetProxyUser( )
{
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
char szUser[1024];
memset( szUser, 0, sizeof(szUser) );
::GetPrivateProfileString( szProfile_Proxy, szProfile_ProxyUser, "", szUser, sizeof(szUser)-2, sFileName );
m_strProxyUser = szUser;
return m_strProxyUser;
}
void CStProfile::SetProxyUser( LPCTSTR lpszProxyUser )
{
m_strProxyUser = lpszProxyUser;
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyUser, m_strProxyUser, sFileName );
}
CSPString CStProfile::GetProxyPasswd( )
{
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
char szPasswd[1024];
memset( szPasswd, 0, sizeof(szPasswd) );
::GetPrivateProfileString( szProfile_Proxy, szProfile_ProxyPasswd, "", szPasswd, sizeof(szPasswd)-2, sFileName );
m_strProxyPasswd = szPasswd;
return m_strProxyPasswd;
}
void CStProfile::SetProxyPasswd( LPCTSTR lpszProxyPasswd )
{
m_strProxyPasswd = lpszProxyPasswd;
CSPString sFileName = GetWorkDirectory() + szQuoteServerProfileName;
::WritePrivateProfileString( szProfile_Proxy, szProfile_ProxyPasswd, m_strProxyPasswd, sFileName );
}
*/
static char szFormat[] = "%u,%u,%d,%d,%d,%d,%d,%d,%d,%d";
BOOL CStProfile::GetWindowPlacement(LPWINDOWPLACEMENT pwp)
{
if( m_strWindowPlacement.IsEmpty() )
return FALSE;
WINDOWPLACEMENT wp;
int nRead = sscanf(m_strWindowPlacement, szFormat,
&wp.flags, &wp.showCmd,
&wp.ptMinPosition.x, &wp.ptMinPosition.y,
&wp.ptMaxPosition.x, &wp.ptMaxPosition.y,
&wp.rcNormalPosition.left, &wp.rcNormalPosition.top,
&wp.rcNormalPosition.right, &wp.rcNormalPosition.bottom);
if (nRead != 10)
return FALSE;
int cxScreen = GetSystemMetrics( SM_CXSCREEN );
int cyScreen = GetSystemMetrics( SM_CYSCREEN );
if( wp.rcNormalPosition.top < -5
|| wp.rcNormalPosition.left < -cxScreen/2
|| wp.rcNormalPosition.right < 5
|| wp.rcNormalPosition.right - wp.rcNormalPosition.left < 1
|| wp.rcNormalPosition.bottom - wp.rcNormalPosition.top < 1 )
return FALSE;
wp.length = sizeof wp;
*pwp = wp;
return TRUE;
}
void CStProfile::SetWindowPlacement(LPWINDOWPLACEMENT pwp)
{
TCHAR szBuffer[sizeof("-32767")*8 + sizeof("65535")*2];
sprintf(szBuffer, szFormat,
pwp->flags, pwp->showCmd,
pwp->ptMinPosition.x, pwp->ptMinPosition.y,
pwp->ptMaxPosition.x, pwp->ptMaxPosition.y,
pwp->rcNormalPosition.left, pwp->rcNormalPosition.top,
pwp->rcNormalPosition.right, pwp->rcNormalPosition.bottom);
m_strWindowPlacement = szBuffer;
}
CSPString CStProfile::GetWorkDirectory( )
{
if( m_strWorkDirectory.IsEmpty() )
{
TCHAR szLongPathName[_MAX_PATH];
GetModuleFileName( NULL, szLongPathName, _MAX_PATH);
m_strWorkDirectory = AfxGetFileDirectory( szLongPathName, "" );
}
return m_strWorkDirectory;
}
CSPString CStProfile::GetVersion( )
{
return "3.10";
}
CSPString CStProfile::GetSViewFile( )
{
return GetWorkDirectory() + "profile.dat";
}
CSPString CStProfile::GetDomainFile( )
{
return GetWorkDirectory() + "history\\domain.dat";
}
CSPString CStProfile::GetGroupFile( )
{
return GetWorkDirectory() + "group.dat";
}
CSPString CStProfile::GetProjectPath( )
{
CSPString strPath = GetWorkDirectory() + "projects" + STRING_DIRSEP;
if( 0 != access( strPath, 0 ) || FILE_ATTRIBUTE_DIRECTORY != GetFileAttributes( strPath ) )
{
if( !CreateDirectory( strPath, NULL ) )
strPath.Empty();
}
return strPath;
}
CSPString CStProfile::GetExportPath( )
{
CSPString strPath = GetWorkDirectory() + "export" + STRING_DIRSEP;
if( 0 != access( strPath, 0 ) || FILE_ATTRIBUTE_DIRECTORY != GetFileAttributes( strPath ) )
{
if( !CreateDirectory( strPath, NULL ) )
strPath.Empty();
}
return strPath;
}
CSPString CStProfile::GetYongxinPath( )
{
CSPString strPath = GetWorkDirectory() + "yongxin" + STRING_DIRSEP;
if( 0 != access( strPath, 0 ) || FILE_ATTRIBUTE_DIRECTORY != GetFileAttributes( strPath ) )
{
if( !CreateDirectory( strPath, NULL ) )
strPath.Empty();
}
return strPath;
}
CSPString CStProfile::GetSelfDBPath( )
{
return GetWorkDirectory();
}
CSPString CStProfile::GetSelfDBNewsPath( DWORD dwMarket )
{
return CSelfDB::GetNewsPath( dwMarket );
}
CSPString CStProfile::GetSelfDBBasePath( DWORD dwMarket )
{
return CSelfDB::GetBasePath( dwMarket );
}
CSPString CStProfile::GetQianlongPath( )
{
if( 0 == access(m_strQianlongPath,0) )
return m_strQianlongPath;
return "";
}
void CStProfile::SetQianlongPath( LPCTSTR lpszPath )
{
m_strQianlongPath = lpszPath;
SP_ASSERT( 0 == access(m_strQianlongPath,0) );
}
COLORREF CStProfile::GetColor( int nColorIndex )
{
return m_ColorClassContainer.GetColor( nColorIndex );
}
CColorClassContainer & CStProfile::GetColorClassContainer( )
{
return m_ColorClassContainer;
}
CSPStringArray & CStProfile::GetLastOpenedStrategy( )
{
return m_astrLastOpenedStrategy;
}
void CStProfile::SetLastOpenedStrategy( CSPStringArray & astr )
{
m_astrLastOpenedStrategy.Copy( astr );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -