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; }
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; }
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; }
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; }