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

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

?? searchdlg.cpp.svn-base

?? wince c++ 下 開發的 rss 閱讀器源代碼
?? SVN-BASE
字號:
/**
 *  SearchDlg.cpp
 *
 *  Copyright (C) 2008  David Andrs <pda@jasnapaka.com>
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

#include "StdAfx.h"
#include "prssr.h"
#include "SearchDlg.h"
#include "prssr.h"
#include "Config.h"
#include "misc.h"
#include "Errors.h"

#include "net/Searcher.h"
#include "net/Connection.h"

#include "ProgressDlg.h"

#ifdef MYDEBUG
#undef THIS_FILE
static TCHAR THIS_FILE[] = _T(__FILE__);
#include "debug\crtdbg.h"
#define new MYDEBUG_NEW
#endif

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

static CRITICAL_SECTION CSSearcher;

DWORD WINAPI SearchThreadProc(LPVOID lpParameter) {
	CSearchDlg *dlg = (CSearchDlg *) lpParameter;
	return dlg->SearchThread();
}

/////////////////////////////////////////////////////////////////////////////
// CSearchProgressDlg dialog

class CSearchProgressDlg : public CProgressDlg {
public:
	CSearchProgressDlg(CSyndic8ComSearcher *searcher, CSearchDlg *parent);
	virtual ~CSearchProgressDlg();

protected:
	CSyndic8ComSearcher *Searcher;
	UINT Timer;
	ESearchState State;
	CSearchDlg *Parent;

	int RangeHi;

    //{{AFX_MSG(CSearchProgressDlg)
	afx_msg void OnDestroy();
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG
	virtual BOOL OnInitDialog();

	virtual void OnCancel();

	DECLARE_MESSAGE_MAP()
};

CSearchProgressDlg::CSearchProgressDlg(CSyndic8ComSearcher *searcher, CSearchDlg *parent) {
	Searcher = searcher;
	State = SEARCH_STATE_NONE;
	Timer = 1;

	Parent = parent;
	RangeHi = 150000;
}

CSearchProgressDlg::~CSearchProgressDlg() {
}

BEGIN_MESSAGE_MAP(CSearchProgressDlg, CProgressDlg)
	//{{AFX_MSG_MAP(CSearchProgressDlg)
	ON_WM_TIMER()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BOOL CSearchProgressDlg::OnInitDialog() {
	LOG0(3, "CSearchProgressDlg::OnInitDialog()");

	SetTimer(Timer, 500, NULL);
	CProgressDlg::OnInitDialog();

	SetRange(0, RangeHi);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSearchProgressDlg::OnDestroy() {
	KillTimer(Timer);
}

void CSearchProgressDlg::OnTimer(UINT nIDEvent) {
	if (nIDEvent == Timer) {
		ESearchState state = SEARCH_STATE_NONE;

		EnterCriticalSection(&CSSearcher);
		if (Searcher != NULL) {
			state = Searcher->State;

			int newPos = (int) Searcher->GetDownloadedFileSize();
			if (newPos > RangeHi) {
				RangeHi *= 10;
				SetRange(0, RangeHi);
			}
			SetPos(newPos);
		}
		LeaveCriticalSection(&CSSearcher);

		if (State != state) {
			State = state;

			CString sText;
			switch (state) {
				case SEARCH_STATE_CONNECTING:         sText.LoadString(IDS_CONNECTING); break;
				case SEARCH_STATE_CONNECTED:          sText.LoadString(IDS_CONNECTED); break;
				case SEARCH_STATE_SENDING_REQUEST:    sText.LoadString(IDS_SENDING_REQUEST); break;
				case SEARCH_STATE_RECEIVING_RESPONSE: sText.LoadString(IDS_GETTING_RESPONSE); break;
				case SEARCH_STATE_DATA_TRANSFER:      sText.LoadString(IDS_DATA_TRANSFER); break;
				default:                              sText.LoadString(IDS_SEARCHING); break;
			}

			sText += _T("...");
			m_ctlLabel.SetWindowText(sText);
		}
	}

	CWnd::OnTimer(nIDEvent);
}

void CSearchProgressDlg::OnCancel() {
	LOG0(3, "CSearchProgressDlg::OnCancel()");

	EnterCriticalSection(&CSSearcher);
	if (Searcher != NULL)
		Searcher->Terminate();
	LeaveCriticalSection(&CSSearcher);

	Parent->m_pProgress = NULL;

	CProgressDlg::OnCancel();
}

/////////////////////////////////////////////////////////////////////////////
// CSearchDlg dialog

CSearchDlg::CSearchDlg(CWnd *pParent/* = NULL*/)
	: CCeDialog(InWideMode() ? CSearchDlg::IDD_WIDE : CSearchDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSearchDlg)
	//}}AFX_DATA_INIT
	m_nMenuID = IDR_SEARCH;

	m_pProgress = NULL;
	Searcher = NULL;
	InitializeCriticalSection(&CSSearcher);
}

CSearchDlg::~CSearchDlg() {
	DeleteCriticalSection(&CSSearcher);
}

void CSearchDlg::DoDataExchange(CDataExchange* pDX) {
	LOG0(5, "CSearchDlg::DoDataExchange()");

	CCeDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSearchDlg)
	DDX_Control(pDX, IDC_WHAT, m_ctlWhat);
	DDX_Text(pDX, IDC_WHAT, m_strWhat);
	//}}AFX_DATA_MAP
	DDV_NotEmpty(pDX, m_strWhat, IDS_SEARCH_FIELD_EMPTY);
}


BEGIN_MESSAGE_MAP(CSearchDlg, CCeDialog)
	//{{AFX_MSG_MAP(CSearchDlg)
	ON_EN_CHANGE(IDC_WHAT, OnChangeWhat)
	//}}AFX_MSG_MAP
	ON_COMMAND(ID_SEARCH, OnSearch)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSearchDlg message handlers

BOOL CSearchDlg::OnInitDialog() {
	LOG0(3, "CSearchDlg::OnInitDialog()");

	CCeDialog::OnInitDialog();

//	m_ctlWhat.SetWindowText(_T("gadget"));

	SetForegroundWindow();
	UpdateControls();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSearchDlg::OnSearch() {
	LOG0(1, "CSearchDlg::OnSearch()");

	if (UpdateData())
		OnOK();
}

void CSearchDlg::UpdateControls() {
	LOG0(5, "CSearchDlg::UpdateControls()");

}

void CSearchDlg::OnChangeWhat() {
	LOG0(5, "CSearchDlg::OnChangeWhat()");

	UpdateControls();
}

void CSearchDlg::ResizeControls() {
	LOG0(3, "CSearchDlg::ResizeControls()");

	RelayoutDialog(AfxGetInstanceHandle(), GetSafeHwnd(), InWideMode() ?
		MAKEINTRESOURCE(IDD_WIDE) :
		MAKEINTRESOURCE(IDD));
}

void CSearchDlg::OnOK() {
	LOG0(1, "CSearchDlg::OnOK()");

	if (m_pProgress == NULL) {
		CString what;
		m_ctlWhat.GetWindowText(what);

		EnterCriticalSection(&CSSearcher);
		Searcher = new CSyndic8ComSearcher(what, Config.CacheLocation);
		LeaveCriticalSection(&CSSearcher);

		m_pProgress = new CSearchProgressDlg(Searcher, this);
		m_pProgress->OpenDialog(IDS_SEARCHING, this);
		CloseHandle(CreateThread(NULL, 0, SearchThreadProc, this, 0, NULL));
	}
	else
		m_pProgress->SetActiveWindow();

/*
//	SearchResults->AddTail(new CSearchResultItem(
//		_T("Tech Tips Today - Gadget and Gizmo News"), _T("http://www.techtipstoday.com/feed/atom/")));
	CSearchResultItem *sri = new CSearchResultItem(
		_T("GADGET"), _T("http://www.netcityonline.com/commy/prodotti_lista_public_xml.asp?CM_CATEGORIA_ID=143&amp;FEED_ID=1&amp;RSS_DISP=1"));
	sri->Description = _T("tohle je silene dlouhy Description, ktery by se mel zlomit na vic radek, abych moh otestovat, lamani v editu, ktery jsem pouzil mito staticu, protoze static je nejkay vadny a nefunguje moc dobre, previt jeden");
	SearchResults->AddTail(sri);

	sri = new CSearchResultItem(
		_T("GADGET2"), _T("http://www.netcityonline.com/commy/prodotti_lista_public_xml.asp?CM_CATEGORIA_ID=143&amp;FEED_ID=1&amp;RSS_DISP=1"));
	sri->Description = _T("Descr");
	SearchResults->AddTail(sri);

	SearchResults->AddTail(new CSearchResultItem(
		_T("ecoblog"), _T("http://www.ecoblog.it/categoria/gadget/rss2.xml")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("Computer Alchemy"), _T("http://www.computeralchemy.com/feed/atom/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("Design News - Gadget Freak"), _T("http://www.designnews.com/DN_GadgetFreak.xml")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("All Gadget"), _T("http://www.allgadget.com/feed/rss2/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("The Tech Gadget Mag"), _T("http://aboi.uplies.co.uk/wp-rss2.php")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("GadgetRoad - Daily Gadget News"), _T("http://www.gadgetroad.com/feed/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("The Tech Gadget Mag"), _T("http://bob.uplies.co.uk/wp-atom.php")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("Gadget Universe Deals at DealShake.com"), _T("http://www.dealshake.com/storedealrss.php?store_id=389")));

	SearchResults->AddTail(new CSearchResultItem(
		_T("GADGET"), _T("http://www.netcityonline.com/commy/prodotti_lista_public_xml.asp?CM_CATEGORIA_ID=143&amp;FEED_ID=1&amp;RSS_DISP=1")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("ecoblog"), _T("http://www.ecoblog.it/categoria/gadget/rss2.xml")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("Computer Alchemy"), _T("http://www.computeralchemy.com/feed/atom/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("Design News - Gadget Freak"), _T("http://www.designnews.com/DN_GadgetFreak.xml")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("All Gadget"), _T("http://www.allgadget.com/feed/rss2/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("The Tech Gadget Mag"), _T("http://aboi.uplies.co.uk/wp-rss2.php")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("GadgetRoad - Daily Gadget News"), _T("http://www.gadgetroad.com/feed/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("The Tech Gadget Mag"), _T("http://bob.uplies.co.uk/wp-atom.php")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("GADGET"), _T("http://www.netcityonline.com/commy/prodotti_lista_public_xml.asp?CM_CATEGORIA_ID=143&amp;FEED_ID=1&amp;RSS_DISP=1")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("ecoblog"), _T("http://www.ecoblog.it/categoria/gadget/rss2.xml")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("Computer Alchemy"), _T("http://www.computeralchemy.com/feed/atom/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("Design News - Gadget Freak"), _T("http://www.designnews.com/DN_GadgetFreak.xml")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("All Gadget"), _T("http://www.allgadget.com/feed/rss2/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("The Tech Gadget Mag"), _T("http://aboi.uplies.co.uk/wp-rss2.php")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("GadgetRoad - Daily Gadget News"), _T("http://www.gadgetroad.com/feed/")));
	SearchResults->AddTail(new CSearchResultItem(
		_T("The Tech Gadget Mag"), _T("http://bob.uplies.co.uk/wp-atom.php")));

	CDialog::OnOK();
*/
}

DWORD CSearchDlg::SearchThread() {
	LOG0(1, "CSearchDlg::SearchThread() - start");

	// empty previous search results
	while (!SearchResults->IsEmpty())
		delete SearchResults->RemoveHead();

	CString errMsg;
	BOOL bOK = TRUE;
	BOOL disconnect;
	if (CheckConnection(Config.AutoConnect, disconnect)) {
		if (Searcher->Search(Config.SearchLimit, *SearchResults)) {
			// ok
		}
		else {
			bOK = FALSE;
			errMsg = Searcher->GetErrorMsg();
		}

		if (disconnect)
			Connection.HangupConnection();
	}
	else {
		// error: can not connect to the Internet
		bOK = FALSE;
		errMsg.LoadString(IDS_NO_INTERNET_CONNECTION);
	}

	// done
	if (bOK) {
		SetForegroundWindow();
		CDialog::OnOK();
	}
	else {
		if (Searcher->IsTerminated()) {
			// terminated
		}
		else {
			SetForegroundWindow();
			m_pProgress->CloseDialog();
			Error(IDS_SEARCH_ERROR, errMsg);
		}
	}
	m_pProgress = NULL;

	EnterCriticalSection(&CSSearcher);
	delete Searcher;
	Searcher = NULL;
	LeaveCriticalSection(&CSSearcher);

	LOG0(1, "CSearchDlg::AddThread() - end");

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜久久久久| a级高清视频欧美日韩| 欧美性色欧美a在线播放| 国产亚洲va综合人人澡精品| 久久99国产精品久久99| 欧美一二三四在线| 精品综合久久久久久8888| 欧美一区三区二区| 日韩精品福利网| 久久久久国色av免费看影院| 成人精品视频一区二区三区| 亚洲欧美日韩一区| 欧美色倩网站大全免费| 日本 国产 欧美色综合| 欧美在线观看18| 日韩电影一区二区三区四区| 精品日韩欧美一区二区| 国产激情一区二区三区桃花岛亚洲| 中文字幕欧美区| 欧美日韩一区 二区 三区 久久精品 | 成人自拍视频在线| 一区二区三区四区不卡在线| 欧美日韩激情一区| 国产精品99久久久久| 一区二区免费在线播放| 日韩欧美在线网站| 成年人网站91| 蜜桃av一区二区三区电影| 国产日本欧美一区二区| 欧美日韩在线播放三区| 国产成人在线视频播放| 香蕉成人啪国产精品视频综合网| 精品对白一区国产伦| 欧美日韩精品久久久| 成人免费视频播放| 91精品欧美久久久久久动漫| 欧美一区2区视频在线观看| 日韩一区有码在线| 99在线视频精品| 国产精品自拍三区| 蜜桃av一区二区三区电影| 亚洲成a人片综合在线| 日日骚欧美日韩| 国产剧情在线观看一区二区| 色综合色综合色综合色综合色综合| 91久久精品国产91性色tv| 欧洲一区二区三区在线| 99热这里都是精品| 国产69精品久久777的优势| 韩国女主播成人在线| 久久超碰97中文字幕| 日本在线不卡视频一二三区| 天天亚洲美女在线视频| 午夜精品在线看| 一卡二卡三卡日韩欧美| 亚洲特黄一级片| 亚洲人成精品久久久久| 亚洲人成在线播放网站岛国| 亚洲少妇30p| 亚洲欧美另类久久久精品| 伊人夜夜躁av伊人久久| 最新日韩av在线| 亚洲bt欧美bt精品| 国产精品你懂的在线欣赏| aaa亚洲精品| 日本韩国一区二区三区视频| 成人ar影院免费观看视频| 欧美日韩极品在线观看一区| 成人av在线播放网站| 国产一区二区日韩精品| gogogo免费视频观看亚洲一| 51精品秘密在线观看| 久久久99久久精品欧美| 一区二区三区在线免费播放| 久久精品二区亚洲w码| 色94色欧美sute亚洲13| 久久九九99视频| 卡一卡二国产精品 | 色噜噜狠狠色综合欧洲selulu| 久久99精品久久久久久久久久久久 | 欧美国产日韩精品免费观看| 7777女厕盗摄久久久| 一本大道久久a久久精品综合 | 久久成人免费网| 99久久免费精品高清特色大片| 国产欧美日韩另类一区| 欧美精品 国产精品| 国产乱码精品一区二区三| 国产福利一区二区三区在线视频| 免费看欧美美女黄的网站| 欧美综合天天夜夜久久| 中文字幕制服丝袜成人av| 欧美一级在线免费| 26uuu欧美| 亚洲精品国产无套在线观| 日韩av不卡在线观看| 国产一区二区剧情av在线| 99免费精品在线观看| 欧美日韩国产综合久久 | 国产不卡免费视频| 91丨九色丨尤物| 欧美精品一级二级| 久久一日本道色综合| 一区二区三区四区在线| 麻豆freexxxx性91精品| 国产精品77777| 精品视频一区三区九区| 精品久久99ma| 亚洲乱码日产精品bd| 国产最新精品精品你懂的| 99国产精品久久久久| 日韩午夜激情av| 亚洲人吸女人奶水| 黄色日韩三级电影| 欧美在线视频日韩| 国产精品亚洲午夜一区二区三区| 成人aa视频在线观看| 国产xxx精品视频大全| 欧洲视频一区二区| 久久久久久97三级| 日本麻豆一区二区三区视频| 91影视在线播放| 久久影院电视剧免费观看| 亚洲综合在线免费观看| 国产不卡视频一区| 欧美午夜精品理论片a级按摩| 精品乱码亚洲一区二区不卡| 夜夜精品视频一区二区| 国产麻豆视频一区二区| 欧美日韩精品欧美日韩精品一综合| 久久精品亚洲一区二区三区浴池| 国产精品久久久久久久久免费丝袜 | 亚洲人午夜精品天堂一二香蕉| 精品一区在线看| 欧美日韩国产在线观看| 亚洲视频一区二区在线观看| 国模一区二区三区白浆| 日韩欧美在线影院| 日一区二区三区| 欧美性videosxxxxx| 国产亚洲精品精华液| 精品福利一区二区三区| 成人av资源在线观看| 麻豆成人av在线| 中文字幕欧美一| 福利电影一区二区| 久久久噜噜噜久噜久久综合| 麻豆成人av在线| 欧美videofree性高清杂交| 午夜精彩视频在线观看不卡| 91久久免费观看| 亚洲天堂中文字幕| 91麻豆免费看| 亚洲精品久久7777| 色婷婷久久久久swag精品| 国产精品家庭影院| 99久久精品免费看| 国产精品久久福利| 不卡的av中国片| 国产精品美日韩| av一区二区久久| 国产精品卡一卡二卡三| 粉嫩绯色av一区二区在线观看| 国产欧美一二三区| av不卡一区二区三区| 国产亚洲美州欧州综合国| 久久精品国产**网站演员| 国产无一区二区| av色综合久久天堂av综合| 亚洲天堂中文字幕| 国产精品一线二线三线| 日韩电影在线观看电影| 亚洲欧美一区二区三区孕妇| 国产三区在线成人av| 精品少妇一区二区三区在线视频| 欧美性生活大片视频| 国产精品网站一区| 99久久国产综合精品麻豆| 亚洲一区二三区| 91精品国产色综合久久不卡蜜臀| 人妖欧美一区二区| 国产三级一区二区| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美国产精品劲爆| 99国产精品国产精品久久| 亚洲男同1069视频| 5566中文字幕一区二区电影 | 91免费看`日韩一区二区| 亚洲综合色婷婷| 欧美一区二区三区小说| 国产久卡久卡久卡久卡视频精品| 国产精品久久午夜夜伦鲁鲁| 欧美三级日本三级少妇99| 亚洲成人免费av| 狠狠色伊人亚洲综合成人| 成人av免费在线| 国产1区2区3区精品美女| 夜夜嗨av一区二区三区网页| 日韩美女视频在线| www.欧美.com|