Click here to Skip to main content
15,885,546 members
Articles / Desktop Programming / MFC

Introduces RSS Reader by AgileInfoSoftware

Rate me:
Please Sign up or sign in to vote.
4.38/5 (15 votes)
2 Dec 20032 min read 154.6K   1.1K   31  
This article introduces an application to consume RSS Feed from Internet.
// MainFrm.h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_MAINFRM_H__D90CB88B_2117_4D2B_A7D7_F3E58E0E6DAF__INCLUDED_)
#define AFX_MAINFRM_H__D90CB88B_2117_4D2B_A7D7_F3E58E0E6DAF__INCLUDED_

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

#include "FeedSource.h"

class CMainFrame : public CFrameWnd
{
	class CNode
	{
	public: 
		CNode( CString strLink )
		{
			m_strLink = strLink;
		}
		virtual ~CNode()
		{
		}
		CString		m_strLink;
	};

protected: // create from serialization only
	CMainFrame();
	DECLARE_DYNCREATE(CMainFrame)

// Attributes
protected:
	CSplitterWnd m_wndSplitter;
	CSplitterWnd m_wndSplitterRight;
	BOOL		 m_bCreate;
	UINT		 m_nTimer;
	int			 m_nRate;
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMainFrame)
	public:
	virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	//}}AFX_VIRTUAL

// Implementation
public:
	CHtmlView* GetHtmlView();
	CListCtrl* GetListCtrl();
	CTreeCtrl* GetTreeCtrl();
	virtual ~CMainFrame();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:  // control bar embedded members
	CStatusBar  m_wndStatusBar;
	CToolBar    m_wndToolBar;

// Generated message map functions
protected:
	//{{AFX_MSG(CMainFrame)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnFileSubscriberfeed();
	afx_msg void OnEditDelete();
	afx_msg void OnClose();
	afx_msg void OnToolsRefreshnow();
	afx_msg void OnUpdateToolsRefreshnow(CCmdUI* pCmdUI);
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnToolsRefreshrate5minutes();
	afx_msg void OnToolsRefreshrate15minutes();
	afx_msg void OnToolsRefreshrate1hour();
	afx_msg void OnToolsRefreshrate8hour();
	afx_msg void OnUpdateToolsRefreshrate15minutes(CCmdUI* pCmdUI);
	afx_msg void OnUpdateToolsRefreshrate8hour(CCmdUI* pCmdUI);
	afx_msg void OnUpdateToolsRefreshrate5minutes(CCmdUI* pCmdUI);
	afx_msg void OnUpdateToolsRefreshrate1hour(CCmdUI* pCmdUI);
	//}}AFX_MSG
	afx_msg LONG OnTreeDblClick(UINT wParam, LONG lParam);
	afx_msg LONG OnTreeItemChange(UINT wParam, LONG lParam);
	afx_msg LONG OnListDblClick(UINT wParam, LONG lParam);
	DECLARE_MESSAGE_MAP()
private:
	CWinThread* m_pThread;
	BOOL		m_bRunning;
	CString NormalizeDate( CString strValue );
	CImageList m_image;
	static UINT ProcRefreshAll( void* pParam );
	void DisplayFeed( CFeed& feed );
	void Release( HTREEITEM hParent );
	void AddTreeNode( CString strTitle, CString strLink );
	void InitList();
	void InitTree();
};

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

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MAINFRM_H__D90CB88B_2117_4D2B_A7D7_F3E58E0E6DAF__INCLUDED_)

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
LI is a architect of several database-centric tools and technologies. He has been programming since 1995. He is a Microsoft Certified Solution Developer (MCSD), MCSD.NET, SCJP, SCJD and OCDBA.

His programming experience includes C/C++, C#, MFC, ASP, VB and Perl. He has worked on Solaris, AIX, HPUX and various Windows, and found Windows is the easiest one to work with.

He has over 8 years of database experiences in Oracle, SQL Server, DB2 and other DBMS.

LI co-founded AgileInfoSoftware LLC (http://www.agileinfollc.com) in 2003. He is responsible for the overall vision and development strategy of the company.

Comments and Discussions