在互联网信息爆炸的时代,RSS(Really Simplified Syndication)以其简洁的格式和高效的信息获取方式,成为了许多用户获取新闻和博客更新的首选方式。本文将介绍一个为IE浏览器开发的RSS阅读器插件,它是一个开源项目,旨在帮助用户更便捷地获取和管理RSS订阅内容。
RSS是一种用于内容聚合的标准XML格式。许多网站(如CNN等新闻网站)都有不同的版块,但用户不可能总是有时间访问并阅读这些版块的内容。因此,网站会将特定版块的更新以XML的形式发布。这种XML格式是标准化的,被称为RSS。RSS的优势在于,如果用户对世界体育新闻感兴趣,他不必访问某个网站的体育版块,而只需将该网站发布的RSS链接(以CNN为例)提供给他的RSS阅读器即可。RSS阅读器是一种特殊软件,能够解析并显示RSS内容。
这个插件实际上是IE浏览器的一个工具栏,它显示了提供给它的RSS链接的新闻。用户可以通过配置对话框来配置RSS链接。
如果安装的工具栏不可见,需要先将其设置为可见。用户可以通过选择“查看->工具栏”菜单来实现。在工具栏列表中找到RSS阅读器工具栏,并选择它。
查看新闻非常简单。用户只需点击添加的按钮(默认情况下,有五个按钮显示CNN-IBN新闻频道的新闻)。如果相应的XML文件加载成功,新闻就会显示出来。用户可以通过将鼠标悬停在相应的菜单项上来查看项目的描述。
RSS阅读器插件在可见按钮和数据源链接方面是完全可定制的。点击RSS阅读器按钮(工具栏上的第一个按钮)将弹出配置对话框。
本项目包含了一些有趣的代码片段,可以作为示例供大家使用。本节将描述这些代码片段。
在这个工具栏中,按钮是通过提供的设置对话框动态创建和删除的。
显示新闻的窗口(见截图)实际上是一个菜单。这个菜单是自定义绘制的。
查看最后一个菜单项。有两个条目,分别是“下一页”和“上一页”。现在,当用户点击菜单项时,只生成一个消息;通过光标位置来识别点击的是菜单项的哪一部分。但是,光标位置本身并不能提供帮助。无法预测“下一页”和“上一页”的有效部分,因为无法告诉菜单将在哪里显示。因此,采用了菜单本身的句柄,并使用Win32 API的MapWindowPoints()函数转换坐标。
使用了TinyXML进行XML解析。它是迄今为止最好、最简单的C++ XML解析器。
工具栏与RSS Fetcher进程通信,所有从互联网获取RSS的函数都交给了这个进程。
使用了MS Visual Studio 2005,并且还需要WTL 8.0来编译这个项目。WTL 8.0可以免费从互联网上获得。