Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

RSS Reader Plug-in for Internet Explorer

, 17 Jul 2007 CPOL
This is a toolbar for the Internet Explorer which shows information from RSS taken from the Internet.
rssreader_exe.zip
Setup.exe
rssreader_src.zip
RssReader_src
RRPRssFetcher
RRPRssFetcher
res
RRPRssFetcher.ico
toolbar.bmp
RRPRssFetcher.vcproj.TEKAWADE.Prafulla V Tekawade.user
RSSReaderplugin
Debug
res
RssReaderPlugin.dll.manifest
RRPComInterfaceImplementor.rgs
RssReaderPlugin.aps
RssReaderPlugin.def
RssReaderPlugin.dsp
RssReaderPlugin.dsw
RssReaderPlugin.opt
RssReaderPlugin.plg
RssReaderPlugin.tlb
RssReaderPlugin.vcproj.TEKAWADE.Prafulla V Tekawade.user
RssReaderPluginps.def
RssReaderPluginps.mk
Setup.iss
/*
	Project		: RSS Reader plugin for Internet Explorer
	File name	: RRPRssFetcher.h
	Date		: 
	Purpose		: It is the class which interacts with the fetcher process
	Note		: Fetcher process and toolbar uses message.txt to exchange messages
	Send comments 
	or Bugs to	: prafulla_t@users.sourceforge.net
*/

#pragma once

//Messages used in the interaction with fetcher process
#define RRP_RSSFETCH WM_USER + 10
#define RRP_FETCHCOMPLETE WM_USER + 11
#define RRP_REFRESH WM_USER + 12
#define RRP_REMOVE WM_USER + 13
#define RRP_TOOLBAR_REG WM_USER + 14
#define RRP_TOOLBAR_UNREG WM_USER + 15

#include <queue>
#include <string>
using namespace std;

class RRPToolbar;
//Structures used in message exchange
//Structures used in message exchange
typedef struct RssInfo {
	UINT message;
	char *localName;
	char *remoteName;
}RssInfo;


typedef struct TRssInfo {
	UINT message;
	char localName[50];//cant be more than 10 actually
	char remoteName[1024];//I've heard this is the URL limit
	HWND toolbarHandle;
}TRssInfo;


class RRPRssFetcher {
public:
	RRPRssFetcher(RRPToolbar *toolbar);
	~RRPRssFetcher(void);
	//Locates the RSS fetcher process window
	void initialize();

	//Implementation of simple reference counting mechanism
	void registerToolbar();
	void unregisterToolbar();
	
	//Fetcher window will shutdown when it has no associated toolbar.
	void shutDown();

	void sendFetchRssRequest(char *localName,char *remoteName);
	void removeRssFromList(char *localName,char *remoteName);
	void sendCleanMessage();
	LRESULT OnFetchComplete(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
	LRESULT OnRefresh(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
	void writeFile();
	//Invoked by the Toolbar only when ACK comes from Fetcher process
	void informRSSFetcherProcess(bool retry = false);


	void setToolbar(RRPToolbar *toolbar) {
		this->toolbar = toolbar;
	};

	RRPToolbar* getToolbar() {
		return toolbar;
	};
private:
	HWND fetcherWindowHandle;
	std::queue<TRssInfo *> rssInfoQueue;
	RRPToolbar *toolbar;
};

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, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

PrafullaT

India India
Quote : "Life is all about solving problems and enjoying their solutions !! "

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.1411022.1 | Last Updated 17 Jul 2007
Article Copyright 2007 by PrafullaT
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid