⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profile.cpp

📁 股软 通达信行情接收接口, 包括美元汇率
💻 CPP
📖 第 1 页 / 共 5 页
字号:

		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 + -