RSS Platform Screen Saver Sample

John and I have been working on a sample application using the Windows RSS Platform. It’s a screen saver which displays the image of RSS posts that have image enclosures. The screen saver is based on the Visual Studio 2005 Screen Saver Starter Kit. We changed it to retrieve images and feed content from the RSS Platform.

Here what to do:

  1. Install IE7 Beta 2 Preview.
  2. Download and install the screen saver. The .msi installer will create a folder in “My Documents” called MSDN\RssScreenSaver with the source code and including documentation.
  3. Read the documentation and follow the steps to build the screen saver.
  4. Subscribe to photo feeds in IE7 Beta 2 Preview. A simple photo feed is located here. You can also subscribe to flickr feeds. (Note: add _enc to the format query param to get pictures as enclosures)

Give it a try and let us know what you think.


Update 2/28/06: By request a screenshot of the simple photo feed:


Update 3/3/06: Sean has posted with a compiled version of the screensaver, so now you don’t even need Visual Studio to try it out.  

Update 4/5/06: We’ve updated the screen saver to work against IE7 Beta 2 Preview release March 20th, 2006. Note the new download link.

Comments (27)

  1. Kris says:

    Can I see a screenshot of the screensaver. I cannot install IE7 as I need IE6 for testing our webapps.

  2. Dylan Greene says:

    I second the screenshot request.  

    Who’s going to go through all that trouble not knowing what they are going to get?

  3. rss says:

    FYI – I just updated the post with a screenshot.

    – Walter [MSFT]

  4. Peter says:

    I’ve never understood the point of RSS-based screen savers.  Typically the screen saver only kicks in when you’re not there anyway, so why would I want it to display some nice pictures or RSS feeds when I’m not there anyway?

  5. rss says:


    Well, it sort of presumes that you understand the point of picture screensavers in general.

    If you accept that a picture screensaver is interesting, then a screensaver that is automatically updated with pictures from a photo feed is just cooler.

    If you don’t buy into picture screensavers at all, then an RSS-enabled one probably isn’t going to change that. 🙂


  6. game kid says:

    Odd.  The installer can be removed, even "repaired", but there’s nothing else of any kind installed.  Certainly no screen saver, and definitely not an RSS one.

  7. rss says:

    game kid:

    The install is a little tricky. You need to look in your My Documents folder for an MSDN folder. In there you’ll find the source and documentation.

    For a compiled version, check the link to my blog.

  8. game kid says:


  9. Andrew Davey says:

    Why is an MSI needed to simply distribute the source code? I hate having to "install" every piece of source I get from MSDN. Surely a simple ZIP file will surfice for the source?

    Often I just want to quickly open the source archive and take a peak. Having to "install" makes me less likely to do this unless I *really* need the source.

  10. Richard Rafaj says:

    It doesn’t work for me – I can see text but no images, just black background…

  11. John [msft] says:

    The RSS screensaver is a _sample_ application. The download page clearly points out that the application source code must be compiled with Visual Studio 2005. (It can be downgraded to Visual Studio .NET with a few minor code changes.)

    If you get a blank screen with text and no pictures, you should make sure the feed properties are set to "download enclosures automatically."  I believe you will need to wait for updates to the feed for new items to appear. (Or you can delete the feed, and resubscribe with this option selected.)

    PS: Remember, the documentation is your friend… The blank screen "bug" is discussed and a workaround proposed–only a modicum of cutting and pasting required. My favorite feature isn’t in the source code at all. To "Open Current Item in Browser" you need to read the documentation! All the hard work is already done for you.

  12. Edward says:

    I was writing a databindable wrapper for the Feed class. I’m subscribing to the notifications but it looks like the parameters passed with the FeedItemCountChanged event are incorrect.

    Whilst I do get a notification whenever I set the IsRead property of an item from another app, the itemCount seems to always be 3 and the unreadItemCount is 0 regardless of how many items there are in the feed.

    Its not too much of a problem to catch the notification, and then reread the actual unreadItemCount from the feed object. It just seems strange that these parameters are wrong.

  13. damien says:

    Two months ago, I developped exactly the same application, strange isn’t it ? Some differences :

    * .NET 2.0 C# source code under GPL

    * works with any Windows XP + .NET 2.0 framework

    * works with any feed containing enclosure tags _or_ media:content tags

    * you can modify some of the parameters (a GUI lets you change the timings, background color, URL feed, font colors…)

    * image/feed background refresh (in separate threads)

    * high quality image resizing for full screen display

  14. mark says:

    Is there any way to run the screensaver without IE7? Ie7 is bullshit

  15. Edward says:

    The whole point of the screensaver is to show how to use the Feed Store platform introduced with IE7, so no, without IE7 there is no Feed Store platform, thus no API, thus nothing to display in the screensaver.

    Why not try out the one mentioned by damien in the previous comment?

  16. kurt says:

    where does msi install code. i cannot find.

  17. Walter [MSFT] says:


    what you are seeing FeedItemCountChanged call back is change that is not completed yet. Currently the method’s signature doesn’t reflect yet that one arguments sends back the FEEDS_EVENTS_MASK and the other is zero in current builds. Future builds will correct the method’s signature.


    the MSI installs the sample code in

       My DocumentsMSDNRssScreenSaver

  18. rserious says:

    The screensaver example is good for an example of interfacing with IE7.  However, I have one already loaded from an earlier, I think implementation done in VB.  I don’t care what language the examples are in, as it gives me an opportunity to learn about each of the languages.  My only complaint is that the 2 apps are named the same, and the installer, wants to repair or remove, and I just want to see the code and play with it.  Can you at least name these examples in a more unique way to avoid having to make a choice between one or the other?

  19. VirGin says:

    Why on earth would someone think deploying a sample with source in an MSI package is a good idea?

    This sounds interesting, even though I don’t use screensavers on any of my machines. But it isn’t worth the hassle or the potential issues associated with ‘installing’ something on the machine.

    I hope it’s cool, because the deployment method is completely unacceptable.


  20. WhyNot says:

    Me thinks it better to offer an example of using the MS custom Feeds dll within the context of a web app.  Just makes more sense.  Screensavers that consume web resourcds whilst one is away is a pretty bad security issue in my mind.

    I applaud the attempt, but a better example needs to be offerred.

    Also, why is the feeds dll only available if you load IE7.  If this is to become a useful library then it should be part of the framework, no?

  21. Ed says:

    Thanks – that’s a really rather clever way of making RSS work.  I guess a lot lessons have been learnt from the joys of MAPI.

    From the comments, it looks like a simple RSS API aware screen saver would be very well received – how about doing some tidying up and making this an IE7 "power toy" or some such?

  22. Ron says:

    Does anyone know of a sample RSS Platform app written in VB.Net?  I’ve  been running into problems with the IFeedFolder.GetWatcher method and setting up an event handler and would like to it working somewhere.

    My problem code:

        Dim rssEvents As Object

        rssEvents = CType(msFeedMgr.RootFolder, IFeedFolder).GetWatcher(FEEDS_EVENTS_SCOPE.FES_ALL, _


        AddHandler CType(rssEvents, FeedFolderWatcher).Error, AddressOf RSSPlatformEvent_Error

    … doesn’t allow me to cast the rssEvents to FeedFolderWatcher.


  23. rss says:

    Ron, I’ve posted about your question on how to make events work from VB.NET. See:

    – Walter [MSFT]