void CDownloadAndSetupThread::DownLoadAndSetupDlFile(PDOWN_LOAD_PARAM_NODE pDownloadParam)
{

	m_emDlKind = pDownloadParam->emKind;
	m_bSetupDlFile = pDownloadParam->bSetupDlFile;
	m_strDlPath = pDownloadParam->strSaveFile;
	m_strSetupPath = pDownloadParam->strSetupPath;

	m_bThreadExcute = false;

	// 记录下下载USBKEY时的参数
	if (emUsbKey == m_emDlKind)
		m_dlUSBParam = pDownloadParam->dwUsbKeyParam;

	// 初使化下载参数
	DownLoadInit (pDownloadParam->strHWID.c_str (), pDownloadParam->strUrl.c_str (),
		pDownloadParam->strSaveFile.c_str (), (LPSTR)pDownloadParam->strSendData.c_str ());

	
	if (pDownloadParam->bCreateThread == false) // 不创建新线程
	{
		DownLoadData ();

		SetupDlFileOrNotNeed(m_emDlKind, m_bSetupDlFile);

	}
	else // 创建下载线程
	{
		DWORD dwThreadID = 0;

		CloseHandle (CreateThread (NULL, 0, DLAndSetupThreadProc, (LPVOID)this, 0, &dwThreadID));
	}


}
bool CDownloadAndSetupThread::CheckDlFileAndShowErrMeg(LPCTSTR lpPath, MY_DOWNLOAD_KIND emKind)
{
	//OutputDebugString(L"111---168");
	// 弹出提示校验文件失败的提示框
	if (!CheckDownLoadFile (lpPath))
	{
		if (emKind == emOther)
			return false;

		//OutputDebugString(L"111---169");
		int nBack = IDRETRY;//::MessageBox (NULL, L"下载银行软件失败,是否重试?", L"银行软件下载", MB_OK | MB_RETRYCANCEL);
		if (IDRETRY == nBack && !m_bCancled) // 重下
		{
			//OutputDebugString(L"111---170");
			Sleep(5000);
			DownLoadData ();
			
		}
		return false;
		//else
		//{
		//	//OutputDebugString(L"111---171");
		//	m_bCancled = true;
		//	if (emBkActiveX & emKind)
		//	{ 
		//		// 取消时调用用户界面的取消功能
		//		return false;
		//	}
		//}

	}
	return true;
}
Example #3
0
BOOL CHSDownloadData::HSDataSourceSink_OnRecvData( void* pData, int nLen )
{
	if (!pData || IsBadReadPtr(pData,1))
	{
		return FALSE;
	}
	DataHead* pHead = (DataHead*)pData;
	if(pHead->m_nType == RT_TECHDATA_RANGE)
	{
		CriticalGuard guard(&m_critical);
		DealTechDataAns(pHead);	
		DownLoadData();
		TRACE2("\r\n recv packet code:%s, nPeriod:%d\r\n", pHead->m_nPrivateKey.m_pCode.m_cCode, pHead->m_lKey);
	}
	return TRUE;
}
Example #4
0
BOOL CHSDownloadData::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	m_pManager = (IChannelManager*)CWinnerApplication::GetObject(OBJ_CHANNELMANAGER);
	m_pDataSource = (IDataSourceEx*)CWinnerApplication::GetObject(OBJ_HSDATAENGINE);
	if (m_pDataSource && !IsBadReadPtr(m_pDataSource,1))
	{
		m_nDataSourceID = m_pDataSource->HSDataSource_DataSouceInit(this,NULL);
	}
	//创建行情连接
	m_lHandle = m_pManager->CreateConnector(CEV_Connect_HQ,"");
	m_nTaskMask = 0xFFFF;
	m_nCulType = 1;
	InitListView();
	DownLoadData();
	return TRUE;
}
Example #5
0
BOOL CHSDownloadData::DownLoadData()
{
	CriticalGuard guard(&m_critical);
	long lLen;
	StockUserInfo* pStock = NULL;
	short nPeriod;
	SetTaskMask(m_nCulType);
	m_nCulType ++;
	if ( m_nCulType >= 4)
		m_nCulType = 1;
	GetNextCode(&pStock, nPeriod);
	char* pBuffer = MakeReqPacket(&pStock->m_ciStockCode,nPeriod,lLen);

	if(pBuffer == NULL)
	{
		DownLoadData();
	}
	else
	{
		HSMarketDataType market = pStock->m_ciStockCode.m_cCodeType & 0xF000;
		char cServerType = CEV_Connect_HQ;

		if(market == FUTURES_MARKET)
		{
			//cServerType = CEV_Connect_QH;  //期货
		}

		if (market == HK_MARKET)
		{
			//cServerType = CEV_Connect_GG;  //港股
		}
		if ( m_pDataSource && !IsBadReadPtr(m_pDataSource,1))
			m_pDataSource->HSDataSource_RequestAsyncData(m_nDataSourceID,pBuffer,lLen,-1,e_DataSouceSend_Normal|e_DataSourceSend_HQDataDownLoad,
			                     m_lHandle);
		TRACE2("\r\n send packet code:%s, nPeriod:%d \r\n", pStock->GetName(),nPeriod);
	}
	return TRUE;	
}