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

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

?? mainfrm.cpp

?? 本程序是VC為平臺開發的股票資訊系統
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(GetStockReferView()->CanActivateCopy());	
}

void CMainFrame::OnEditCopys() 
{
	// TODO: Add your command handler code here
	GetStockReferView()->EditCopys();
}

void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) 
{
	CFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
	
	// TODO: Add your message handler code here
	if(HAS_REG)
	{
		pPopupMenu->DeleteMenu(ID_HELP_INPUTNUM,MF_BYCOMMAND);
		pPopupMenu->DeleteMenu(ID_HELP_REG,MF_BYCOMMAND);
	}
	else if(m_bHasPost)
		pPopupMenu->DeleteMenu(ID_HELP_REG,MF_BYCOMMAND);	
}

BOOL CMainFrame::OpenStockdatDb()
{
	try
	{
		m_StockDb.Open(STOCKDAT_DATABASE,TRUE,FALSE,_T(";PWD=新_NS_???_dat!30訊"));
	}
	catch(CDaoException *ex)
	{
		if(m_StockDb.IsOpen()) m_StockDb.Close();
		ex->Delete();
		
		return FALSE;
	}
	
	return TRUE;
}

CString CMainFrame::GetIndexContent(LPCTSTR lpszIndex)
{
	CSerialNum ser;
	CString content;
	CNewsNouse item(&m_StockDb);
	try
	{
		CString sql;
		sql.Format(_T("SELECT * FROM list1 WHERE col0 = '%s'"),ser.Eencrypt(lpszIndex));
		item.Open(dbOpenDynaset,sql,0);
		if(!item.IsEOF())
			content = ser.Decode(item.m_cut);
		item.Close();
		
		return content;
	}
	catch(CDaoException *ex)
	{
		if(item.IsOpen()) item.Close();
		ex->Delete();
		
		return _T("");
	}
}

BOOL CMainFrame::BeginStockSearch()
{
	CString content;
	CSerialNum ser;

	CNewsdat item(&m_StockDb);
	try
	{
		CString sql,scla;
		scla.Format(_T("%d"),iCategoryIndex[m_iCurItem]);
		sql.Format(_T("SELECT * FROM list0 WHERE col2 = '%s';"),ser.Eencrypt(scla));
		item.Open(dbOpenDynaset,sql,0);
		while(!item.IsEOF())
		{
			m_ThreadCount++;
			if(m_ThreadCount > m_MaxThreadCount)
			{
				m_ToBeURL += item.m_url;
				m_ToBeURL += _T("\n");
			}
			else
			{
				ThreadParams* pThreadParams = new ThreadParams;
				if(!pThreadParams) return FALSE;
				
				if(m_UseProxy)
				{
					pThreadParams->m_Proxy = m_Proxy;
					pThreadParams->m_Port = m_Port;
				}
				pThreadParams->m_TimeOut = m_TimeOut*1000;
				if(m_IsIngoreLong)
					pThreadParams->m_IngoreLegth = m_IngoreLegth*1024;
				else
					pThreadParams->m_IngoreLegth = -1;
				pThreadParams->m_MaxThreadCount = m_MaxThreadCount + 1;

				pThreadParams->m_Key = m_strKey;
				pThreadParams->m_BaseUrl = _T("http://") + ser.Decode(item.m_url);
				pThreadParams->m_StartPos = ser.Decode(item.m_start);
				pThreadParams->m_FinishPos = ser.Decode(item.m_finish);
				pThreadParams->m_LinkFilter = ser.Decode(item.m_link);
				pThreadParams->m_TitleFilter = ser.Decode(item.m_title);
				pThreadParams->m_ClearString = ser.Decode(item.m_more);
				pThreadParams->m_VerifyDate = ser.Decode(item.m_vdate);
				pThreadParams->m_SearchTime = m_Date;
				content = GetIndexContent(ser.Decode(item.m_index));
				if(content.IsEmpty()) 
				{
					item.Close();
					return FALSE;
				}
				pThreadParams->m_CutMore = content;

				CSearchThread *pThread;
				pThread = NULL;
				pThread = new CSearchThread(CSearchThread::ThreadFunc,pThreadParams);
				if (pThread == NULL)
				{
					delete pThreadParams;
					return FALSE;
				}    

				if (!pThread->CreateThread())
				{
					delete pThread;
					pThread = NULL;
					delete pThreadParams;
					return FALSE;
				}    

				pThreadParams->m_threadID = pThread->m_nThreadID;

				m_threadList.AddTail(pThread);
				CString string;
				::InterlockedIncrement(&lThreadCount);
			}
			item.MoveNext();
		}
		item.Close();
	}
	catch(CDaoException *ex)
	{
		if(item.IsOpen()) item.Close();
		ex->Delete();

		return FALSE;
	}
	if(m_ThreadCount > m_MaxThreadCount)
	{
		m_ThreadCount -= m_MaxThreadCount;
		m_ThreadCount++;
	}

	return TRUE;
}

BOOL CMainFrame::AnotherSearch()
{
	CString url;
	int pos;
	pos = m_ToBeURL.Find('\n');
	if(pos != -1)
	{
		url = m_ToBeURL.Left(pos);
		m_ToBeURL = m_ToBeURL.Mid(pos + 1);
		m_ThreadCount--;
	}
	else return FALSE;
	
	CSerialNum ser;
	CNewsdat item(&m_StockDb);
	try
	{
		CString sql,content;
		sql.Format(_T("SELECT * FROM list0 WHERE col0 = '%s';"),url);
		item.Open(dbOpenDynaset,sql,0);
		if(!item.IsEOF())
		{
			ThreadParams* pThreadParams = new ThreadParams;
			if(!pThreadParams) return FALSE;
			
			if(m_UseProxy)
			{
				pThreadParams->m_Proxy = m_Proxy;
				pThreadParams->m_Port = m_Port;
			}
			pThreadParams->m_TimeOut = m_TimeOut*1000;
			if(m_IsIngoreLong)
				pThreadParams->m_IngoreLegth = m_IngoreLegth*1024;
			else
				pThreadParams->m_IngoreLegth = -1;
			pThreadParams->m_MaxThreadCount = m_MaxThreadCount + 1;
			
			pThreadParams->m_Key = m_strKey;
			pThreadParams->m_BaseUrl = _T("http://") + ser.Decode(item.m_url);
			pThreadParams->m_StartPos = ser.Decode(item.m_start);
			pThreadParams->m_FinishPos = ser.Decode(item.m_finish);
			pThreadParams->m_LinkFilter = ser.Decode(item.m_link);
			pThreadParams->m_TitleFilter = ser.Decode(item.m_title);
			pThreadParams->m_ClearString = ser.Decode(item.m_more);
			pThreadParams->m_VerifyDate = ser.Decode(item.m_vdate);
			pThreadParams->m_SearchTime = m_Date;
			content = GetIndexContent(ser.Decode(item.m_index));
			pThreadParams->m_CutMore = content;
			
			CSearchThread *pThread;
			pThread = NULL;
			pThread = new CSearchThread(CSearchThread::ThreadFunc,pThreadParams);
			if (pThread == NULL)
			{
				delete pThreadParams;
				return FALSE;
			}    
			
			if (!pThread->CreateThread())
			{
				delete pThread;
				pThread = NULL;
				delete pThreadParams;
				return FALSE;
			}    
			
			pThreadParams->m_threadID = pThread->m_nThreadID;
			
			m_threadList.AddTail(pThread);
			CString string;
			::InterlockedIncrement(&lThreadCount);
		}
		item.Close();
	}
	catch(CDaoException *ex)
	{
		if(item.IsOpen())
			item.Close();
		ex->Delete();
		return FALSE;
	}
	
	return TRUE;
}

void CMainFrame::AfterStop(BOOL bEndProgram/* = FALSE*/)
{
	m_IsThreadRunning = FALSE;
	m_ThreadCount = 0;
	CString tip,string;
	m_wndAnimate.Stop();
	m_wndAnimate.Seek(0);
	string = _T("連接已經關閉");
	m_wndStatusBar.SetWindowText (string);
	m_wndStatusBar.SetPaneText (1,_T("搜索完成。"),TRUE);
	long m_count;
	
	m_ToBeURL.Empty();
		
	m_count = m_NewsCount;
	string.Format(_T("共搜索到資訊 %ld 條"),m_count);
	m_NewsCount = 0;
	
	m_wndStatusBar.SetPaneText (2,string,TRUE);
	tip.Format(_T("搜索完成。\n\n%s"),string);
	if(!bEndProgram)
		AfxMessageBox(tip,MB_ICONINFORMATION);
	
	m_wndStatusBar.SetWindowText(_T(""));
	m_wndStatusBar.SetPaneText(1,_T(""),TRUE);
	m_wndStatusBar.SetPaneText(2,_T(""),TRUE);
}

LRESULT CMainFrame::OnThreadDone(WPARAM wParam,LPARAM lParam) 
{
	EnterCriticalSection(&m_CritSect);
	
	CString string,tip;
	ThreadParams *lpThreadParams = NULL;
	lpThreadParams = (ThreadParams*)lParam;
	POSITION pos= NULL;

	if(m_ThreadCount > 0) AnotherSearch();

	::InterlockedDecrement(&lThreadCount);
	if(lThreadCount < 0) lThreadCount = 0;
	if(lThreadCount == 0)
	{
		AfterStop();

		LeaveCriticalSection(&m_CritSect);
		return 0;
	}
	else
	{
		int nThreadsLeft = m_threadList.GetCount();

		if(lpThreadParams != NULL )
		{
			for(int i = 0; i < nThreadsLeft; i++)
			{
				if((pos = m_threadList.FindIndex(i))!= NULL )
				{				
					CSearchThread* pThread = m_threadList.GetAt(pos);
					if(pThread != NULL)
					{
						if(lpThreadParams->m_threadID == pThread->m_nThreadID)
						{
							//A thread object is deleted when the last handle to the thread 
							//is closed. 
							m_threadList.RemoveAt(pos);

							delete  lpThreadParams;
	 						if(lThreadCount < m_MaxThreadCount) 
								ReleaseSemaphore(hConnection,1,NULL);
						
							break;
						}
					}
				}
			}
		}
		LeaveCriticalSection(&m_CritSect);
		return 0;
	}
}

LRESULT CMainFrame::OnServerStatus(WPARAM wParam,LPARAM lParam) 
{
	EnterCriticalSection(&m_CritSect);

	LPCTSTR pStatus;
	pStatus = (LPCTSTR)lParam;
	DWORD count = (DWORD)wParam;
    CString Status;
	if(count < 1000)
		Status.Format (_T("線程 %ld:%s"),count,pStatus);
	else
		Status.Format (_T("%s"),pStatus);
	m_wndStatusBar.SetWindowText(Status);

	LeaveCriticalSection(&m_CritSect);

	return 0;
}

LRESULT CMainFrame::OnSendBody(WPARAM wParam,LPARAM lParam) 
{
	EnterCriticalSection(&m_CritSect);

	LPCTSTR pbody;
	pbody = (LPCTSTR)lParam;
    CString body;
    body.Format (_T("%s"),pbody);

	if(GetContainView()->AcceptBody(m_iCurItem,body))
	{
		m_NewsCount++;
		if(!HAS_REG && m_NewsCount >= UNREG_SEARCH_NEWS)
		{
			KillThreads();
			AfterStop(TRUE);

			CString m_strUnreg;
			m_strUnreg.Format(_T("非常抱歉,未注冊的軟件只能搜索前 %ld 條資訊。"),
				UNREG_SEARCH_NEWS);
			AfxMessageBox(m_strUnreg);

			LeaveCriticalSection(&m_CritSect);
			return 0;
		}

		CString str;
		str.Format(_T("已接收資訊 %ld 條"),m_NewsCount);
		m_wndStatusBar.SetPaneText(2,str,TRUE);
	}
	
	LeaveCriticalSection(&m_CritSect);
	return 0;
}

void CMainFrame::KillThreads()
{
	int nCount,tCount,i;
	int nThreadsLeft;
	POSITION pos= NULL;
	DWORD dwStatus;
	
	m_ThreadCount = 0;
	m_ToBeURL.Empty();
	
	nCount = 0,tCount=0;
	nThreadsLeft = m_threadList.GetCount();
	
	for(i=0; i<nThreadsLeft; i++)
	{
		if((pos = m_threadList.FindIndex(i))!= NULL )
		{				
			CSearchThread *pThread = m_threadList.GetAt(pos);
			if(pThread->m_hThread != NULL)
				::TerminateThread(pThread->m_hThread, 0);
		}
	}
	
	Sleep(200);
	nThreadsLeft = m_threadList.GetCount();
	
	for(i=0; i<nThreadsLeft; i++)
	{
		if((pos = m_threadList.FindIndex(i))!= NULL )
		{				
			CSearchThread *pThread = m_threadList.GetAt(pos);
			if(pThread->m_hThread != NULL)
			{
				tCount++;
				::TerminateThread(pThread->m_hThread, 0);
				::GetExitCodeThread(pThread->m_hThread, &dwStatus);
				if (dwStatus == STILL_ACTIVE)
					nCount++;
				else 
					m_threadList.RemoveAt(pos);
			}
		}
	}
	
	CString string;
	string.Format (_T("搜索停止"),nCount);
	m_wndStatusBar.SetWindowText(string);
	
	if(nCount > 0)
	{
		string.Format (_T("線程數:%d\n正在運行線程數:%d"),tCount,nCount );
		AfxMessageBox(string);
	}
	else
		lThreadCount = 0;
}

void CMainFrame::OnHelpMailto() 
{
	// TODO: Add your command handler code here
	CString path;
	path.Format(_T("%s"),HELP_PATH);
	::HtmlHelp(this->m_hWnd,(LPCSTR)path,HH_HELP_CONTEXT,1000);
}

void CMainFrame::OnHelpIndex() 
{
	// TODO: Add your command handler code here
	CString path;
	path.Format(_T("%s"),HELP_PATH);
	::HtmlHelp(this->m_hWnd,(LPCSTR)path,HH_DISPLAY_TOPIC,0);
}

void CMainFrame::OnHelpUpdate() 
{
	// TODO: Add your command handler code here
	if(m_StockDb.IsOpen()) m_StockDb.Close();
	CStockReferApp *App = (CStockReferApp *)AfxGetApp();
	App->HelpUpdate();
}

void CMainFrame::OnUpdateHelpUpdate(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(!m_IsThreadRunning);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲网友自拍偷拍| 黄色资源网久久资源365| 日韩精品一区二区三区在线观看 | 亚洲国产人成综合网站| 欧美成人精品福利| 欧洲精品在线观看| 丁香婷婷深情五月亚洲| 久久国产三级精品| 日韩中文欧美在线| 夜夜揉揉日日人人青青一国产精品 | 亚洲国产综合91精品麻豆| 国产欧美日产一区| 亚洲精品一区二区三区蜜桃下载 | 91影院在线观看| 国产激情视频一区二区三区欧美| 石原莉奈一区二区三区在线观看| 中文字幕一区二区不卡| 精品国产一二三区| 日韩片之四级片| 在线播放一区二区三区| 在线观看不卡一区| 色香蕉成人二区免费| 99免费精品在线观看| 国产91丝袜在线播放| 国产成人在线观看免费网站| 狠狠久久亚洲欧美| 狠狠久久亚洲欧美| 国产在线精品一区二区夜色| 久久99这里只有精品| 麻豆精品精品国产自在97香蕉| 亚洲va韩国va欧美va| 午夜精品久久久久久久久久| 夜夜精品视频一区二区 | 国产亚洲精久久久久久| 精品88久久久久88久久久| 日韩欧美黄色影院| 精品国内片67194| 日韩一二三区视频| 欧美精品一区二区三| 久久青草欧美一区二区三区| 欧美精品一区二区不卡| 久久精品一区二区| 国产精品美女久久久久久久网站| 国产精品女同一区二区三区| 中文字幕中文字幕一区| 亚洲欧美色图小说| 亚洲成人在线网站| 奇米精品一区二区三区在线观看一| 日韩专区在线视频| 久久超碰97人人做人人爱| 激情文学综合插| 成人性生交大片免费看中文| 99热精品一区二区| 欧美日韩在线免费视频| 欧美一区二区三区在线视频| 亚洲成人动漫一区| 日韩精品国产精品| 国产精品综合一区二区| 成人av网在线| 欧美偷拍一区二区| 日韩一二三区不卡| 国产精品国产a| 亚洲成av人综合在线观看| 久久激情五月婷婷| www.亚洲在线| 欧美精品 国产精品| 久久先锋影音av鲁色资源网| 中文字幕一区二| 五月综合激情网| 国产在线观看免费一区| 91蜜桃网址入口| 欧美一卡在线观看| 欧美韩国日本不卡| 亚洲综合一区二区| 国产在线精品国自产拍免费| 一本久久a久久免费精品不卡| 日韩一区二区在线观看| 国产精品久久久久影院| 午夜不卡av在线| 国产成人午夜高潮毛片| 欧美视频在线不卡| 中日韩免费视频中文字幕| 婷婷一区二区三区| 99久久婷婷国产综合精品电影 | 久久久久久久综合色一本| 亚洲精品国久久99热| 精品夜夜嗨av一区二区三区| 在线观看不卡视频| 国产精品人妖ts系列视频| 日韩精品电影在线| 99久久国产综合精品麻豆| 日韩欧美中文字幕精品| 夜夜爽夜夜爽精品视频| 国产精品亚洲第一区在线暖暖韩国| 欧美亚洲一区三区| 国产精品久久久久久久久快鸭| 日韩国产高清影视| 日本高清免费不卡视频| 欧美国产激情二区三区| 美女网站在线免费欧美精品| 一本久道久久综合中文字幕 | 亚洲欧美偷拍三级| 国产aⅴ综合色| 欧美成人一区二区三区片免费| 亚洲精品乱码久久久久久黑人 | 免费在线视频一区| 日本久久一区二区三区| 中日韩av电影| 国产ts人妖一区二区| 欧美成人乱码一区二区三区| 婷婷久久综合九色国产成人| 日本伦理一区二区| **欧美大码日韩| 成人黄色av电影| 久久久精品天堂| 久久99热国产| 欧美一区二区播放| 日韩不卡一区二区| 国产夫妻精品视频| 99热在这里有精品免费| 久久精品人人做人人爽97| 久久超碰97人人做人人爱| 91精品国产入口| 日韩电影网1区2区| 欧美精品丝袜久久久中文字幕| 一区二区三区日韩欧美| 色婷婷综合久久久中文一区二区| 国产精品福利一区| 白白色 亚洲乱淫| 国产精品传媒入口麻豆| 波多野洁衣一区| 中文子幕无线码一区tr| 成人毛片视频在线观看| 中文字幕免费一区| 成人激情图片网| 亚洲欧洲日韩av| 99久久久久久99| 亚洲免费av高清| 在线免费亚洲电影| 视频一区二区三区入口| 91精品国产综合久久久久久漫画 | 日本亚洲视频在线| 欧美电视剧在线看免费| 国产一区二区三区视频在线播放| 久久噜噜亚洲综合| 不卡影院免费观看| 亚洲欧美一区二区三区国产精品 | 国产一区二区视频在线| 国产亚洲精品超碰| 成人免费毛片片v| 亚洲人成人一区二区在线观看| 色狠狠av一区二区三区| 亚洲二区在线视频| 日韩精品在线网站| 国产99精品视频| 一区二区三区在线观看动漫| 欧美久久久久中文字幕| 精品亚洲国产成人av制服丝袜| 日本一区二区三级电影在线观看| 99久久精品国产一区| 亚洲一区二区三区免费视频| 欧美一级在线视频| 成人小视频免费在线观看| 亚洲靠逼com| 日韩欧美一二区| 成人美女视频在线看| 亚洲成人综合视频| 久久奇米777| 在线日韩一区二区| 极品少妇xxxx精品少妇偷拍| 中文字幕一区二区三区四区| 欧美日韩亚洲综合| 国产一区999| 亚洲一二三区视频在线观看| 欧美sm极限捆绑bd| 一本大道久久精品懂色aⅴ| 免费视频最近日韩| 国产精品毛片久久久久久久| 欧美精品日韩一本| 成人精品视频一区| 日韩成人一区二区三区在线观看| 国产人妖乱国产精品人妖| 欧美无砖砖区免费| 国产在线精品不卡| 亚洲一区国产视频| 欧美国产97人人爽人人喊| 欧美丰满少妇xxxbbb| www.av精品| 成人av免费观看| 国产黄色成人av| 亚洲成人精品影院| 国产精品剧情在线亚洲| 欧美一三区三区四区免费在线看| 成人性色生活片免费看爆迷你毛片| 亚洲成a人片在线观看中文| 欧美—级在线免费片| 日韩色视频在线观看| 色噜噜偷拍精品综合在线| 激情久久五月天| 天天影视色香欲综合网老头|