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

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

?? feed.h.svn-base

?? wince c++ 下 開發的 rss 閱讀器源代碼
?? SVN-BASE
字號:
/**
 *  Feed.h
 *
 *  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/>.
 *
 */

#if !defined(AFX_FEED_H__1DEB3F7C_FE75_4310_8D51_09C2FFB4DF9A__INCLUDED_)
#define AFX_FEED_H__1DEB3F7C_FE75_4310_8D51_09C2FFB4DF9A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxtempl.h>
#include <afxmt.h>

#if defined PRSSR_APP

//////////////////////////////////////////////////////////////////////

/*
class CPlaylistItem {
public:
	CString Title;
	CString FileName;

	CPlaylistItem(const CString &title, const CString &fileName) {
		Title = title;
		FileName = fileName;
	}
};
*/

//////////////////////////////////////////////////////////////////////

enum EEnclosureType {
	ENCLOSURE_TYPE_UNKNOWN,
	ENCLOSURE_TYPE_AUDIO,
	ENCLOSURE_TYPE_VIDEO,
	ENCLOSURE_TYPE_IMAGE,
};


class CEnclosureItem {
public:
	CString URL;
	DWORD Length;
	EEnclosureType Type;

	CEnclosureItem() {
		Length = 0;
	}

	CEnclosureItem(const CEnclosureItem &o) {
		URL = o.URL;
		Length = o.Length;
		Type = o.Type;
	}
};

#endif

//////////////////////////////////////////////////////////////////////

class CSiteItem;

#define MESSAGE_MASK_ALL						0xFFFF
#define MESSAGE_READ_STATE						0x0003

#define MESSAGE_READ							0x0000
#define MESSAGE_UNREAD							0x0001
#define MESSAGE_NEW								0x0002
#define MESSAGE_FLAG							0x0004
//#define MESSAGE_STICKY						0x0008
#define MESSAGE_SYNC							0x0040

#define MESSAGE_DELETED							0x0080

class CFeedItem {
public:
	CFeedItem(CSiteItem *si);
	CFeedItem(const CFeedItem &o);
	virtual ~CFeedItem();
#if defined PRSSR_APP
	void ComputeHash(CString prefix = _T(""));

	void GetEnclosures(CStringList &list, DWORD limit = 0);
	BOOL HasEnclosure() { return Enclosures.GetCount() > 0; }
	CList<CEnclosureItem *, CEnclosureItem *> Enclosures;

	void GetItemImages(CStringList &list);
#endif

#if defined PRSSR_APP
	BOOL HasKeywordMatch() { return KeywordPos.GetSize() > 0; }
	void SearchKeywords(CStringArray &keywords);
	CArray<int, int> KeywordPos;		// position in keyword list (from SiteList)
#endif

	CSiteItem *SiteItem;			// site item where the feed item belongs

	// info from feed file
	CString Title;
	CString Link;
	SYSTEMTIME PubDate;

	CString Hash;

#if defined PRSSR_APP
	CString Description;
	CString Author;
	SYSTEMTIME Date;			// used for sorting

	BOOL Hidden;
	void UpdateHiddenFlag();
#endif

	// flags related
	void SetFlags(DWORD flags, DWORD mask);
//	void SetFlagsFromRegistry(HKEY hItems);

	DWORD GetFlags() { return Flags; }
	DWORD GetReadState() { return Flags & MESSAGE_READ_STATE; }
	BOOL IsRead()    { return (Flags & MESSAGE_READ_STATE) == MESSAGE_READ; }
	BOOL IsUnread()  { return (Flags & MESSAGE_READ_STATE) == MESSAGE_UNREAD; }
	BOOL IsNew()     { return (Flags & MESSAGE_READ_STATE) == MESSAGE_NEW; }

	BOOL IsDeleted() { return Flags & MESSAGE_DELETED; }
	BOOL IsFlagged() { return Flags & MESSAGE_FLAG; }
	BOOL IsSynced()  { return Flags & MESSAGE_SYNC; }

protected:
	// flag
	//
	// 00000000
	// |    |||
	// |    |++--- read state (0 - read, 1 - unread, 2 - new)
	// |    +----- flag (1 - flag set)
	// +---------- deleted (1 - deleted)
	//

	DWORD Flags;

	friend class CFeed;
};

//////////////////////////////////////////////////////////////////////

class CFeed {
public:
	// info from xml file (feed)
	CString Title;

#ifdef PRSSR_APP
	CString HtmlUrl;
	CString Description;

	CString Language;
	CString Copyright;
	CString Format;

	SYSTEMTIME Published;
	int UpdateInterval;			// update interval suggested by feed (0 = not specified)
#endif

	CFeed();
	~CFeed();

	int GetItemCount() const { return Items.GetSize(); }
	int GetNewCount() const;
	int GetUnreadCount() const;
	int GetFlaggedCount() const;
	CFeedItem *GetItem(int i) const { return Items.GetAt(i); }

	BOOL Load(LPCTSTR fileName, CSiteItem *si);
#ifdef PRSSR_APP
	BOOL Save(LPCTSTR fileName);
#endif

	void Detach();
	void Destroy();
	void Add(CFeedItem *item) { Items.Add(item); }
	void UpdateHiddenFlags();

	void SetSize(int count) { Items.SetSize(count); }
	void SetAt(int idx, CFeedItem *item) { Items.SetAtGrow(idx, item); }

#if defined PRSSR_APP
	BOOL GenerateASX(const CString &strFileName, DWORD limit);
	BOOL GenerateM3U(const CString &strFileName, DWORD limit);
//	void SetKeywordFlags(CStringArray &keywords);
#endif

//	void SetFlagsFromRegistry();
//	void PurgeRegistryHashes();

#ifdef PRSSR_APP
	void MarkAll(DWORD flag, DWORD mask);
#endif

	void Lock() { EnterCriticalSection(&CS); }
	void Unlock() { LeaveCriticalSection(&CS); }

protected:
	CArray<CFeedItem *, CFeedItem *> Items;
	CRITICAL_SECTION CS;

#if defined PRSSR_APP
//	void GetPlaylistItems(CList<CPlaylistItem*, CPlaylistItem*> &list, DWORD limit = 0);
#endif
};


//////////////////////////////////////////////////////////////////////

#if defined PRSSR_APP
int CompareFeedItemDate(CFeedItem *fi1, CFeedItem *fi2);
int CompareFeedItemFlag(CFeedItem *fi1, CFeedItem *fi2);
#endif

void WriteFeedItemFlagsToRegistry(CFeedItem* feedItem);
void WriteFeedItemFlagsToRegistry(CList<CFeedItem*, CFeedItem*> &feedItems);
void SetFeedItemFlags(CList<CFeedItem*, CFeedItem*> &feedItems, DWORD flag, DWORD mask);

void FeedDiff(CFeed *first, CFeed *second, CArray<CFeedItem *, CFeedItem *> *diff);
void FeedIntersection(CFeed *first, CFeed *second, CArray<CFeedItem *, CFeedItem *> *diff);


#endif // !defined(AFX_FEED_H__1DEB3F7C_FE75_4310_8D51_09C2FFB4DF9A__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
555www色欧美视频| caoporn国产精品| 日韩欧美激情一区| 久色婷婷小香蕉久久| 久久综合九色综合久久久精品综合 | 久久精品亚洲精品国产欧美 | 精品一区二区日韩| 久久嫩草精品久久久精品一| 成人午夜免费电影| 亚洲国产日产av| 日韩你懂的在线播放| 国产一区二区三区久久悠悠色av| 国产日韩欧美麻豆| 色素色在线综合| 男女男精品视频| 欧美国产激情二区三区 | 日本成人在线网站| 国产午夜精品一区二区三区视频 | 99国产精品久| 三级在线观看一区二区| 久久久久亚洲综合| 欧美在线免费观看视频| 久久狠狠亚洲综合| 国产精品人成在线观看免费| 欧美伦理电影网| 丁香五精品蜜臀久久久久99网站 | 久久久久久99久久久精品网站| 成人高清av在线| 日韩精品1区2区3区| 欧美韩国日本一区| 欧美酷刑日本凌虐凌虐| 懂色av噜噜一区二区三区av| 亚洲www啪成人一区二区麻豆| 久久久久久久久久看片| 欧洲一区二区三区在线| 国产传媒欧美日韩成人| 日韩vs国产vs欧美| 亚洲免费观看高清在线观看| 欧美tickle裸体挠脚心vk| 色综合视频一区二区三区高清| 精品在线一区二区三区| 一区二区三区四区精品在线视频| 26uuu另类欧美亚洲曰本| 欧美系列在线观看| av资源站一区| 国产高清在线精品| 男男成人高潮片免费网站| 亚洲尤物在线视频观看| 国产精品视频看| 精品国产91九色蝌蚪| 欧美裸体一区二区三区| 色一情一伦一子一伦一区| 国产精品91xxx| 久久99国产精品尤物| 午夜日韩在线观看| 亚洲美女电影在线| 国产精品私人影院| 国产欧美日韩综合| 日韩精品一区二区三区在线| 这里只有精品电影| 欧美精品日韩综合在线| 色婷婷香蕉在线一区二区| 成人听书哪个软件好| 黄色日韩网站视频| 国内精品伊人久久久久av影院 | 五月激情六月综合| 亚洲综合精品久久| 亚洲另类色综合网站| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲精品一区二区三区影院 | 成人av电影免费在线播放| 激情国产一区二区| 国精品**一区二区三区在线蜜桃| 久久精品久久综合| 美女网站色91| 国产在线精品一区二区不卡了| 久久成人av少妇免费| 国产一区三区三区| 国产成人亚洲精品青草天美| 国产高清久久久| 国产黄色精品视频| 丁香婷婷综合五月| 91丨九色porny丨蝌蚪| 91年精品国产| 欧美色涩在线第一页| 欧美精品丝袜久久久中文字幕| 91精品国产综合久久国产大片| 日韩欧美你懂的| 久久久亚洲精华液精华液精华液| 国产无一区二区| 18成人在线视频| 午夜视频一区在线观看| 美国一区二区三区在线播放| 精品影院一区二区久久久| 国产不卡一区视频| 91丨九色porny丨蝌蚪| 欧美日韩在线不卡| 日韩你懂的电影在线观看| 中文字幕不卡一区| 亚洲欧美区自拍先锋| 亚洲v精品v日韩v欧美v专区| 麻豆高清免费国产一区| 岛国av在线一区| 在线观看中文字幕不卡| 日韩亚洲欧美成人一区| 国产欧美日韩一区二区三区在线观看| 最新中文字幕一区二区三区| 亚洲午夜电影网| 国产一区二区按摩在线观看| 色妞www精品视频| 日韩欧美中文字幕公布| 国产精品欧美经典| 日韩精品电影在线| 成人午夜激情影院| 欧美一级夜夜爽| 国产精品高潮呻吟久久| 日本不卡一区二区三区高清视频| 丁香亚洲综合激情啪啪综合| 91精品国产综合久久久久| 中文字幕的久久| 天堂成人免费av电影一区| 国产精品亚洲一区二区三区在线 | 欧美一区二区三区日韩| 欧美激情艳妇裸体舞| 日韩电影在线免费观看| 北条麻妃国产九九精品视频| 91精品国产综合久久久久久漫画 | 日本在线不卡一区| 99国产精品久| 久久一日本道色综合| 亚洲大片一区二区三区| 99久久99久久精品免费看蜜桃| 日韩免费高清电影| 亚洲1区2区3区视频| 99久久99久久久精品齐齐| 久久久午夜电影| 美国av一区二区| 欧美精选在线播放| 亚洲一区二区三区精品在线| 成人18视频日本| 国产欧美日韩精品一区| 免费成人在线影院| 91精品婷婷国产综合久久| 亚洲欧美偷拍另类a∨色屁股| 国产成人福利片| 久久综合资源网| 美腿丝袜在线亚洲一区 | 丰满白嫩尤物一区二区| 精品电影一区二区三区| 日本午夜精品一区二区三区电影| 欧美亚洲国产一区二区三区| 最新国产成人在线观看| 成a人片亚洲日本久久| 国产亚洲精品久| 国产精华液一区二区三区| 欧美videossexotv100| 日韩电影一区二区三区四区| 在线播放中文字幕一区| 亚洲成人av福利| 欧美乱熟臀69xxxxxx| 日韩精品91亚洲二区在线观看 | 国产精品1区2区3区| 久久中文娱乐网| 国产又黄又大久久| 久久久国产一区二区三区四区小说| 老司机精品视频线观看86| 7777精品伊人久久久大香线蕉| 亚洲sss视频在线视频| 777久久久精品| 日本不卡在线视频| 精品久久久久久久人人人人传媒| 久久99精品国产.久久久久| 精品国产亚洲一区二区三区在线观看| 久久99国产精品久久99 | 日韩一区二区在线免费观看| 日韩和欧美的一区| 日韩精品一区二区三区老鸭窝| 麻豆国产91在线播放| 国产清纯美女被跳蛋高潮一区二区久久w| 国产一区二区91| 亚洲欧洲精品一区二区三区| 91年精品国产| 日韩国产欧美在线视频| 精品乱人伦小说| 成人av动漫在线| 婷婷开心激情综合| 久久一区二区三区四区| av一区二区不卡| 亚洲一区二区三区在线播放| 欧美一级片免费看| 国产精品一区二区不卡| 亚洲免费色视频| 欧美电影免费观看高清完整版在线 | 在线成人av影院| 开心九九激情九九欧美日韩精美视频电影 | 亚洲色图欧洲色图婷婷| 欧美三级午夜理伦三级中视频| 日本成人在线电影网| 欧美高清在线视频| 欧美视频你懂的|