亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stkreceiver.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

	if(hInst!=NULL) FreeLibrary(hInst); 

	CWnd::OnDestroy();
}

LRESULT CStkReceiver::OnStkReceiverInit(WPARAM wParam, LPARAM lParam)
{
	// 通視及兼容設備
	CString strProvider, strDriver;
	strProvider = AfxRegQueryString(HKEY_LOCAL_MACHINE, _T("Software"), _T("stockdrv"), "", "", _T("Provider"), "Tongshi");
	strDriver = AfxRegQueryString(HKEY_LOCAL_MACHINE, _T("Software"), _T("stockdrv"), "", "", _T("Driver"), "Stock.dll");
	
	// 數據共享引用
	gSTOCKDLL.Stock_Quit(m_hWnd);
	gSTOCKDLL.UnloadDriver();
	if (gSTOCKDLL.LoadDriver(strDriver)
		&& gSTOCKDLL.GetStockDrvInfo(RI_SUPPORTEXTHQ, NULL)
		&& gSTOCKDLL.Stock_Init(m_hWnd,WM_APP_STKRECEIVER_TSDATA,RCV_WORK_SENDMSG) > 0)
		m_bTongshiRunning	=	TRUE;
	else if (!wParam)
		AfxMessageBox("無法加載接收系統。", MB_OK | MB_ICONINFORMATION);

	return TRUE;
}

LRESULT CStkReceiver::OnStkReceiverSetup(WPARAM wParam, LPARAM lParam)
{
	return gSTOCKDLL.SetupReceiver(TRUE);
}

LRESULT CStkReceiver::OnStkReceiverQuit(WPARAM wParam, LPARAM lParam)
{
	gSTOCKDLL.Stock_Quit(m_hWnd);
	m_bTongshiRunning	=	FALSE;
	gSTOCKDLL.UnloadDriver();

	return TRUE;
}

// 通視處理數據
LRESULT CStkReceiver::OnStkReceiverTsdata(
		UINT wFileType,				// 文件類型, 參見 StockDrv.H
		LONG lPara)
{
	int	i = 0;
	PBYTE pFileBuf = NULL;
	PBYTE pBuffx = NULL;
	PGZLXBINDATA pGZLX = NULL;
	RCV_DATA *	pHeader = (RCV_DATA *) lPara;

	// 檢查參數
	ASSERT(pHeader && pHeader->m_pData);
	if (!pHeader || !pHeader->m_pData)
		return -1L;

	if (pHeader->m_nPacketNum <= 0 && !pHeader->m_bDISK)
		return -1L;

	//	對于處理較慢的數據類型,建議將數據備份,另創建一線程處理
	switch(wFileType)
	{
	case RCV_REPORT:
		{
			// 檢查參數
			if (pHeader->m_nPacketNum <= 0 || pHeader->m_bDISK)
				return -1L;
			
			MyQueueUserWorkItem(StkProcessReceiveReport, pHeader, WT_EXECUTEDEFAULT);
		}
		break;
	
	case RCV_FILEDATA:
		switch(pHeader->m_wDataType)
		{
		case FILE_HISTORY_EX:						// 補日線數據
			{
				RCV_HISTORY_STRUCTEx * pDay = pHeader->m_pDay;
				int	nPacketNum	=	pHeader->m_nPacketNum;
				CKData	kdata(CKData::ktypeDay);
				CString	sCode;
				DWORD	dwMarket = CStock::marketUnknown;

				// 讀取文件
				if (pHeader->m_bDISK)
				{
					pDay	=	NULL;
					CFile	file;
					if (file.Open(pHeader->m_File.m_szFileName,CFile::modeRead))
					{
						ASSERT(file.GetLength() == pHeader->m_File.m_dwLen);
						nPacketNum	=	(int)(file.GetLength()/sizeof(RCV_HISTORY_STRUCTEx));
						if (nPacketNum > 0)
							pDay = new RCV_HISTORY_STRUCTEx[nPacketNum];
						if (pDay)
							file.Read(pDay, sizeof(RCV_HISTORY_STRUCTEx)*nPacketNum);
						file.Close();
					}
				}

				// 分配備份數據存儲空間
				COMMPACKET * pCommPacket = AllocCommPacket(CStock::dataK, nPacketNum);
				if (NULL == pCommPacket)
					return -1L;

				// 處理數據
				DWORD	dwCount	=	0;
				for(i=0; i<nPacketNum && pDay; i++)
				{
					if (pDay[i].m_head.m_dwHeadTag == EKE_HEAD_TAG)
					{
						if (kdata.GetSize() > 0)
						{
							kdata.AutoSetKType();
							UpdateStockContainerByKData(AfxGetStockContainer(), sCode, kdata);
							AfxGetDB().InstallKData(kdata);
							kdata.RemoveAll();
						}
						sCode		=	pDay[i].m_head.m_szLabel;
						dwMarket	=	TSMarket_to_Market(pDay[i].m_head.m_wMarket);
						continue;
					}
					convert_TSHISTORY_to_KDATA(dwMarket, sCode, &(pDay[i]), &(pCommPacket->m_pKdata[dwCount]));
					kdata.Add(pCommPacket->m_pKdata[dwCount]);
					dwCount	++;
				}
				pCommPacket->m_dwCount	=	dwCount;
				if (pHeader->m_bDISK && pDay)
					delete [] pDay;
				if (kdata.GetSize() > 0)
				{
					kdata.AutoSetKType();
					UpdateStockContainerByKData(AfxGetStockContainer(), sCode, kdata);
					AfxGetDB().InstallKData(kdata);
				}

				// 通知各股票信息顯示窗口,刷新行情數據
				for(i=0; i<m_awndRcvData.GetSize(); i++)
					::SendMessage(m_awndRcvData[i], WM_APP_STKRECEIVER_DATA, CStock::dataK, (LPARAM)pCommPacket);
	
				// 釋放備份數據存儲空間
				FreeCommPacket(pCommPacket);
			}
			break;

		case FILE_MINUTE_EX:						// 補分鐘線數據
		case 83:	// 補分筆數據
			{
				RCV_MINUTE_STRUCTEx * pMin = pHeader->m_pMinute;
				ASSERT(pMin->m_head.m_dwHeadTag == EKE_HEAD_TAG);
				CMinute	minute;
				BOOL bAutoSaveKDataMin = AfxGetProfile().GetAutoSaveKDataMin(); // 作為分鐘K線保存
				CString	sCode;
				DWORD	dwMarket = CStock::marketUnknown;
				
				// 分配備份數據存儲空間
				COMMPACKET * pCommPacket = AllocCommPacket(CStock::dataMinute, pHeader->m_nPacketNum);
				if (NULL == pCommPacket)
					return -1L;

				DWORD	dwCount	=	0;
				for(i=0; i<pHeader->m_nPacketNum; i++)
				{
					if (pMin[i].m_head.m_dwHeadTag == EKE_HEAD_TAG)
					{
						if (minute.GetSize() > 0)
						{
							CKData	kdMin(CKData::ktypeMin5);
							if (minute.ToKData(kdMin))
								AfxGetDB().InstallKData(kdMin);
							minute.RemoveAll();
						}
						sCode		=	pMin[i].m_head.m_szLabel;
						dwMarket	=	TSMarket_to_Market(pMin[i].m_head.m_wMarket);
						continue;
					}
					convert_TSMINUTE_to_MINUTE(dwMarket, sCode, &(pMin[i]), &(pCommPacket->m_pMinute[dwCount]));
					if (bAutoSaveKDataMin)
						minute.Add(pCommPacket->m_pMinute[dwCount]);
					dwCount	++;
				}
				pCommPacket->m_dwCount	=	dwCount;
				if (minute.GetSize() > 0)
				{
					CKData	kdMin(CKData::ktypeMin5);
					if (minute.ToKData(kdMin))
						AfxGetDB().InstallKData(kdMin);
				}

				// 保存至本地文件
				AfxGetDB().StoreMinute(pCommPacket->m_pMinute, pCommPacket->m_dwCount);

				// 通知各股票信息顯示窗口,刷新行情數據
				for(i=0; i<m_awndRcvData.GetSize(); i++)
					::SendMessage(m_awndRcvData[i], WM_APP_STKRECEIVER_DATA, CStock::dataMinute, (LPARAM)pCommPacket);

				// 釋放備份數據存儲空間
				FreeCommPacket(pCommPacket);
			}
			break;

		case FILE_POWER_EX:							// 補充除權數據
			{
				RCV_POWER_STRUCTEx * pPower = pHeader->m_pPower;
				int	nPacketNum	=	pHeader->m_nPacketNum;
				CDRData	drdata;
				CString	sCode;
				DWORD	dwMarket = CStock::marketUnknown;

				if (pHeader->m_bDISK)
				{
					pPower	=	NULL;
					CFile	file;
					if (file.Open(pHeader->m_File.m_szFileName,CFile::modeRead))
					{
						ASSERT(file.GetLength() == pHeader->m_File.m_dwLen);
						nPacketNum	=	(int)(file.GetLength()/sizeof(RCV_POWER_STRUCTEx));
						if (nPacketNum > 0)
							pPower = new RCV_POWER_STRUCTEx[nPacketNum];
						if (pPower)
							file.Read(pPower, sizeof(RCV_POWER_STRUCTEx)*nPacketNum);
						file.Close();
					}
				}

				// 分配備份數據存儲空間
				COMMPACKET * pCommPacket = AllocCommPacket(CStock::dataDR, nPacketNum);
				if (NULL == pCommPacket)
					return -1L;

				DWORD	dwCount	=	0;
				for(i=0; i<nPacketNum && pPower; i++)
				{
					if (pPower[i].m_head.m_dwHeadTag == EKE_HEAD_TAG)
					{
						if (drdata.GetSize() > 0)
							AfxGetDB().InstallDRData(drdata);
						drdata.RemoveAll();
						sCode		=	pPower[i].m_head.m_szLabel;
						dwMarket	=	TSMarket_to_Market(pPower[i].m_head.m_wMarket);
						continue;
					}
					convert_TSPOWER_to_DRDATA(dwMarket, sCode, &(pPower[i]), &(pCommPacket->m_pDrdata[dwCount]));
					drdata.Add(pCommPacket->m_pDrdata[dwCount]);
					dwCount	++;
				}
				if (pHeader->m_bDISK && pPower)
					delete [] pPower;
				if (drdata.GetSize() > 0)
					AfxGetDB().InstallDRData(drdata);
				pCommPacket->m_dwCount	=	dwCount;

				// 通知各股票信息顯示窗口,刷新行情數據
				for(i=0; i<m_awndRcvData.GetSize(); i++)
					::SendMessage(m_awndRcvData[i], WM_APP_STKRECEIVER_DATA, CStock::dataDR, (LPARAM)pCommPacket);

				// 釋放備份數據存儲空間
				FreeCommPacket(pCommPacket);
			}
			break;

		case FILE_MULTISORT_EX:					// 綜合排名
			{
				RCV_MULTISORT_STRUCTEx * pMultisort = pHeader->m_pMultisort;
				
				// 分配備份數據存儲空間
				COMMPACKET * pCommPacket = AllocCommPacket(CStock::dataMultisort, pHeader->m_nPacketNum);
				if (NULL == pCommPacket)
					return -1L;

				for(i=0; i<pHeader->m_nPacketNum; i++)
				{
					convert_TSMULTISORT_to_MULTISORT(&(pMultisort[i]), &(pCommPacket->m_pMultisort[i]));
				}
				pCommPacket->m_dwCount	=	pHeader->m_nPacketNum;

				// 通知各股票信息顯示窗口,刷新行情數據
				for(i=0; i<m_awndRcvData.GetSize(); i++)
					::SendMessage(m_awndRcvData[i], WM_APP_STKRECEIVER_DATA, CStock::dataMultisort, (LPARAM)pCommPacket);

				// 釋放備份數據存儲空間
				FreeCommPacket(pCommPacket);
			}
			break;

		case FILE_BASE_EX:						// 錢龍兼容基本資料文件,m_szFileName僅包含文件名
			{
				if (pHeader->m_bDISK)
				{
					AfxGetDB().InstallBaseText(pHeader->m_File.m_szFileName, AfxGetFileTitle(pHeader->m_File.m_szFileName));
				}
				else
				{
					AfxGetDB().InstallBaseText(LPCTSTR(pHeader->m_pData), pHeader->m_File.m_dwLen, AfxGetFileTitle(pHeader->m_File.m_szFileName));
				}

				// 分配備份數據存儲空間
				COMMPACKET * pCommPacket = AllocCommPacket(CStock::dataCode, 1);
				if (NULL == pCommPacket)
					return -1L;
				CString	sTemp	=	AfxGetFileTitleNoExt(pHeader->m_File.m_szFileName);
				strncpy(pCommPacket->m_pStockcode[0].m_szCode, sTemp, min(sizeof(pCommPacket->m_pStockcode[0].m_szCode)-1,sTemp.GetLength()));
				pCommPacket->m_pStockcode[0].m_dwMarket	=	CStock::marketUnknown;

				// 通知各股票信息顯示窗口,刷新行情數據
				for(i=0; i<m_awndRcvData.GetSize(); i++)
					::SendMessage(m_awndRcvData[i], WM_APP_STKRECEIVER_DATA, CStock::dataBasetext, (LPARAM)pCommPacket);

				// 釋放備份數據存儲空間
				FreeCommPacket(pCommPacket);
			}
			break;

		case FILE_NEWS_EX:						// 新聞類,其類型由m_szFileName中子目錄名來定
			if (pHeader->m_bDISK)
			{
				AfxGetDB().InstallNewsText(pHeader->m_File.m_szFileName, AfxGetFileTitle(pHeader->m_File.m_szFileName));
			}
			else
			{
				AfxGetDB().InstallNewsText(LPCTSTR(pHeader->m_pData), pHeader->m_File.m_dwLen, AfxGetFileTitle(pHeader->m_File.m_szFileName));
			}
			// 通知各股票信息顯示窗口,刷新行情數據
			for(i=0; i<m_awndRcvData.GetSize(); i++)
				::SendMessage(m_awndRcvData[i], WM_APP_STKRECEIVER_DATA, CStock::dataNews, NULL);
			break;

		case FILE_HTML_EX:						// HTML文件,m_szFileName為URL
			AfxGetProfile().AddHTMLURLToExplorer(pHeader->m_File.m_szFileName);
			break;

		case FILE_SOFTWARE_EX:
			TRACE("%s\n",pHeader->m_File.m_szFileName);
			TRACE("%d\n",pHeader->m_File.m_dwLen);
			pBuffx = (PBYTE)pHeader->m_pData;
			break;

		case FILE_SHAZQDATA_EX:		//h上海國債凈價交易
			break;
		case FILE_TYPE_RES:
			TRACE("MSG: CStkReceiver::OnStkDataOK, Replaced data \n");
			break;
		default:
			TRACE("Msg: CStkReceiver::OnStkReceiverData,Unkonw data type\n");
		}
		break;
	}

	return 0L;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品久久久久影院薰衣草| 欧美亚洲一区二区三区四区| 欧美大片拔萝卜| 免费观看成人av| 久久免费看少妇高潮| 国产电影一区在线| 亚洲欧洲韩国日本视频 | 精品制服美女丁香| 精品国产乱码久久久久久闺蜜| 国产精品综合视频| 中文字幕一区二区三区精华液| 一本久久精品一区二区| 亚洲一区影音先锋| 日韩免费一区二区| 不卡av电影在线播放| 亚洲自拍欧美精品| 日韩天堂在线观看| 成人动漫视频在线| 亚洲电影一级片| 久久精品亚洲麻豆av一区二区| 99久久久无码国产精品| 奇米精品一区二区三区在线观看一 | 国产亚洲美州欧州综合国| 91欧美激情一区二区三区成人| 一区二区三区蜜桃| 久久一二三国产| 色天天综合久久久久综合片| 日本va欧美va欧美va精品| 国产欧美日韩另类视频免费观看| 色综合天天狠狠| 久久疯狂做爰流白浆xx| 亚洲欧洲在线观看av| 91精品福利在线一区二区三区| 国产91精品精华液一区二区三区| 亚洲高清久久久| 国产网红主播福利一区二区| 欧美三区在线观看| 成人免费av资源| 日本sm残虐另类| 中文字幕一区二区三区不卡 | 在线观看日韩国产| 国产九色sp调教91| 天堂精品中文字幕在线| 国产精品久久久久久久久免费樱桃| 欧美日韩高清一区二区不卡| 国产91对白在线观看九色| 午夜电影一区二区| 亚洲欧美综合另类在线卡通| 日韩欧美一卡二卡| 欧美亚洲免费在线一区| 成人黄色av电影| 国产一区二区福利| 青草国产精品久久久久久| 亚洲六月丁香色婷婷综合久久| 精品欧美一区二区三区精品久久 | 日韩一级片在线观看| 一本一本大道香蕉久在线精品| 国产乱子伦一区二区三区国色天香| 性感美女极品91精品| 亚洲人成精品久久久久久| 国产三级一区二区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美一区二区高清| 在线精品视频免费播放| 99久久精品国产精品久久| 国产精品77777| 国产在线精品一区二区不卡了| 午夜精品福利在线| 亚洲大尺度视频在线观看| 中文字幕日韩欧美一区二区三区| 国产亚洲精久久久久久| 久久久综合精品| wwwwxxxxx欧美| 精品乱人伦小说| 精品欧美乱码久久久久久| 日韩精品一区二区在线观看| 91精品国产黑色紧身裤美女| 欧美肥妇free| 7777精品伊人久久久大香线蕉最新版 | 国产成人av福利| 国产成人av福利| 成人97人人超碰人人99| aa级大片欧美| 91极品视觉盛宴| 欧美日韩国产首页在线观看| 欧美三级韩国三级日本一级| 欧美日韩视频专区在线播放| 欧美人与z0zoxxxx视频| 91精品福利在线一区二区三区 | 不卡区在线中文字幕| 成人av在线电影| 91免费观看国产| 色狠狠色狠狠综合| 欧美久久久久久蜜桃| 777午夜精品视频在线播放| 欧美变态口味重另类| 久久色在线视频| 国产欧美精品在线观看| 国产精品高潮久久久久无| 亚洲你懂的在线视频| 亚洲超碰97人人做人人爱| 男男gaygay亚洲| 国产精品一区二区果冻传媒| 99国产精品久久| 欧美久久一二区| 国产丝袜欧美中文另类| 亚洲视频一区在线| 人人狠狠综合久久亚洲| 国产精品一区二区久久精品爱涩| av在线不卡免费看| 欧美日韩国产综合一区二区三区| 日韩欧美激情四射| 国产精品入口麻豆原神| 亚洲成人手机在线| 国产在线不卡一区| 日本韩国精品一区二区在线观看| 91精品婷婷国产综合久久性色| 久久综合给合久久狠狠狠97色69| 国产精品毛片无遮挡高清| 婷婷丁香激情综合| 国产91富婆露脸刺激对白| 欧美疯狂做受xxxx富婆| 国产欧美日韩在线| 日日噜噜夜夜狠狠视频欧美人| 国产精品亚洲第一区在线暖暖韩国| 欧美自拍丝袜亚洲| 国产亚洲一区二区三区| 亚洲成人午夜影院| 9色porny自拍视频一区二区| 欧美一区二区大片| 亚洲欧美日本在线| 狠狠狠色丁香婷婷综合激情 | 国产1区2区3区精品美女| 欧美色图免费看| 中文幕一区二区三区久久蜜桃| 亚洲动漫第一页| 不卡视频一二三| 精品电影一区二区三区| 亚洲国产美国国产综合一区二区| 国产福利一区二区| 日韩一区二区麻豆国产| 亚洲精选视频免费看| 国产精品91一区二区| 欧美一区二区三区成人| 亚洲网友自拍偷拍| av一区二区三区四区| 欧美精品一区二区三区高清aⅴ| 一区二区三区成人| av在线不卡免费看| 国产香蕉久久精品综合网| 美腿丝袜在线亚洲一区| 欧美日韩一区二区不卡| 亚洲视频每日更新| 国产成a人亚洲精| 2023国产精品| 久国产精品韩国三级视频| 欧美精品在线观看播放| 亚洲香肠在线观看| 欧美日韩一卡二卡三卡| 一区二区三区 在线观看视频| 成人看片黄a免费看在线| 久久久综合激的五月天| 国产精品99久久久久久有的能看 | 成人性生交大片免费| 337p日本欧洲亚洲大胆精品| 免费成人美女在线观看| 欧美精品自拍偷拍| 视频一区在线播放| 欧美一级欧美一级在线播放| 美女视频网站黄色亚洲| 日韩三级中文字幕| 韩国成人精品a∨在线观看| 精品国产1区二区| 国产成人综合精品三级| 欧美国产禁国产网站cc| 成人av高清在线| 亚洲美女少妇撒尿| 欧美午夜一区二区三区免费大片| 亚洲一区二区在线观看视频| 欧美精品久久天天躁| 青青草伊人久久| 2021国产精品久久精品| 国产成人在线观看免费网站| 亚洲国产精品国自产拍av| 成人va在线观看| 一区二区三区高清在线| 欧美一二区视频| 国产精品一区二区免费不卡| 成人欧美一区二区三区黑人麻豆| 91亚洲资源网| 日韩国产欧美在线视频| 精品少妇一区二区三区免费观看| 国产乱子伦一区二区三区国色天香| 国产拍揄自揄精品视频麻豆| 97se亚洲国产综合自在线 | 日韩高清欧美激情| 久久综合久久综合久久| 成人免费视频免费观看| 亚洲精品第1页| 日韩精品一区二区三区在线|