Windows RSS Platform
While I could go into detail about the Windows RSS Platform here, it is much easier for me to point you to the source which says in part…
“…As part of the RSS support in Internet Explorer 7, users can discover and subscribe to RSS feeds within the browser. When the user subscribes to a feed, it is added to the Common Feed List, which is available for clients to use in addition to or instead of their own list…”
“…The Feed Download Engine downloads feeds and merges the new items with the existing data in the feed store. Using the Windows RSS Platform, applications can then expose the feed data to the user…”
“…The consumption of feed data varies by application; the Windows RSS Platform makes a variety of scenarios possible by providing easy access to the feed data…”
To read the whole of the above and get some detailed information regarding the Windows RSS Platform you can go to “Introducing the Windows RSS Platform” out on the MSDN. The thing to bear in mind is that just about everything having to do with the Windows RSS Platform is surfaced through the msfeeds.dll, a COM dll that you are likely to find in your C:\Windows\System32 directory.
One of the prototypes that I worked on while developing for Sedna was a complete vcx wrapper for msfeeds.dll and an RSS reader application to show it off. This wrapper and RSS reader didn’t make the Sedna cut for whatever reason, but Microsoft has been kind enough to give me permission to release it on my own since they didn’t use it. The original idea behind the wrapper was to create something very FFC-like in that you could certainly program against msfeeds.dll directly in your VFP program, but a wrapper would make the task much simpler. A wrapper would also provide a wealth of information regarding msfeeds for VFP developers that took the time to explore the wrapper classes contained in the library.
Since then, I’ve finished fixing a few more bugs and renamed the project FoxFeeds. I came up with the name FoxFeeds as it seemed to fit, and though it is not trademarked, I must tell you that I ran into a few other references to this when I Google searched it later on. Andrew MacNeill once had (maybe still does) a folder in NewsGator called “FoxFeeds” that he used to keep his Fox Community oriented feeds organized, and Calvin Hsia once created an RSS reader that hooked into Outlook that Randy Brown showed at a DevCon keynote. So, it appears that it is a popular name, but I really like the name so, while it may be confusing for Andrew and those who attended the DevCon keynote in 2005, I’m going with it.
Machine Code On Purpose
Some may note some crazy code in the feedevents.prg. While the events of msfeeds can now be hooked in the normal fashion (using EventHandler without EventHandlerEx), there was a time when they couldn’t. Calvin Hsia was kind enough to get me real close to the solution in one of his blog posts and you can also see me commenting back to him down in the comments of his blog post. So, if you care to read how the code came about and was used to solve the problem, head on over to the above link. I just wanted you to know that I’ve left that crazy code in FoxFeeds on purpose because it shows that almost anything is possible in FoxPro, even a little machine code when needed. (The basic technique that I believe Calvin used to come up with the proper machine code was to compile a C\C++ project that did what he wanted and then he decompiled it… just a guess, but I think that’s about right. Pretty damn ingenious, I might add!)
I think the vcx provided in the download when coupled with the RSS reader example pretty much speaks for itself, so I won’t be going into any serious detail about the wrapper or the Windows RSS Platform in this post. If you want to figure out how it works, simply put it into debug mode and step through the code. You’ll be able to see that Microsoft did a pretty good job of creating a platform that developers can leverage when they created msfeeds.dll. While the RSS Platform isn’t perfect, I think you can see that it makes creating an RSS reader a walk in the park.
Perhaps the download serves to enlighten some developers to the existence of the Windows RSS Platform that hadn’t heard of it before (came out with IE 7), or, the very least, it could make a few programming tasks easier for those needing to work with msfeeds.dll. Or, conceivably, we could continue adding functionality to FoxFeeds until we had a first class open-source RSS reader for the Windows platform (the example was mostly to show how to use the wrapper – and yes, perhaps maybe to show some outside of the community that a VFP application can not only work great, but look great doing it). Whatever its worth, I present it here so that you can freely download it.
Download FoxFeeds Wrapper and RSS Reader Example (approx. 205 KB)
Until next time… VFP Rocks!