The RSS reader plug-in for IE is an open source project.
RSS stands for Really Simplified Syndication which is the standard XML format used for syndication. Many websites (such as CNN or other news websites for that matter) have different sections. But it is not always possible for the reader to visit and read the news in those sections, so what they do is publish the changes to that particular section in the form of XML. The XML format in which they publish this is standardized and that format is called as RSS. The advantage of all this stuff is that If I am interested in sports news from the world, I no longer have to go to the Sports section of some website, but I simply give the link of the RSS published by the concerned website (CNN, in our case) to my RSS reader (RSS Reader is a special software which has the capability to interpret and show the RSS in readable format). This is exactly what the toolbar that I have designed does.
About the RSS-Plugin for Internet Explorer
This plug-in is actually a toolbar for the Internet Explorer. It shows RSS news from the links which are given to it. The RSS links can be configured with the help of the configuration dialog box.
- Selecting the toolbar in the Internet Explorer.
The toolbar you have installed will have to be made visible if it is not visible. To do so, please select the View->Toolbar menu. You can see the RSS Reader toolbar there, and select that toolbar as follows:
- Viewing the news
Viewing the news is really very simple. You just have to click on the button that you have added (by default, there are five buttons which show the news from the CNN-IBN news channel). If the corresponding XML file is loaded, the news is visible as follows. The description about the item can be viewed in a balloon tool tip by simply moving the mouse over the corresponding menu item.
- Modifying the settings
The RSS Reader plug-in is fully customizable in terms of the buttons which are visible, and in terms of the link that it takes the data from. Clicking on the RSS Reader... button (the first button on the toolbar) will pop up the configuration dialog box as follows:
About the Code
This project contains some interesting code fragments, which can be used as an example by everyone. This section describes such code fragments. (This section is for the beginners; if you are already a pro in Windows Programming, you can simply skip this section.)
- Creating toolbar buttons dynamically:
In this toolbar, buttons are created and removed dynamically by the Settings dialog box provided.
- Creating a cool looking owner drawn menu:
The window on which news is displayed (see the screenshot) is actually a menu. This menu is owner drawn.
- Creating "Hot-Spot" on a menu item:
See the last menu item. There are two entries, Next, Prev. Now, when the user clicks on the menu item, only one message is generated; which part of the menu item is clicked is identified by the cursor position. But the cursor position alone can not help. We cannot predict what the valid sections for the Next and Prev are, since we cannot tell where the menu will be shown. So, I have taken the handle of the menu itself and transformed the co-ordinates using the
MapWindowPoints() Win32 API.
- C++ XML parsing:
I have used TinyXML for XML parsing. It is by far the best and the easiest XML parser available for C++.
- Inter-process communication:
The toolbar communicates with the RSS Fetcher process, and all the functions for fetching the RSS from the Internet is given to this process.
I have used MS Visual Studio 2005, and you will also need WTL 8.0 to compile this project. WTL 8.0 is available free of cost on the Internet.
- Erik Thompson - Creating desk-bands with an ATL Object Wizard.
- AmHttpUtilities by Anders Molin.
- TinyXML- This project is hosted on SourceForge.
- Some memory leaks in RRPRssFetcher.exe removed, some still remains :-(
- Problems with the Configuration Settings dialog box removed.
- Now, RRPRssFetcher compiles successfully, all dependent files have been included in the source code [see this thread below].
Quote : "Life is all about solving problems and enjoying their solutions !! "