We’ve been getting a few questions on how to use RSS Platform events in VB.NET. The problem faced by most inquiries was the fact that the interface returned by the GetWatcher() method call couldn’t be cast to the FeedFolderWatcher or FeedWatcher type. Instead the returned interface can be cast to IFeedFolderEvents_Event or IFeedEvents_Event interface. As done here:

Imports Microsoft.Feeds.Interop

Module Module1

Dim WithEvents watcher As IFeedFolderEvents_Event

Sub Main()

Dim fm As IFeedsManager = New FeedsManager()

Dim rootFolder As IFeedFolder = fm.RootFolder

watcher = rootFolder.GetWatcher(FEEDS_EVENTS_SCOPE.FES_ALL, FEEDS_EVENTS_MASK.FEM_FOLDEREVENTS)

AddHandler watcher.FeedDownloading, AddressOf watcher_Downloading

End Sub

Sub watcher_Downloading(ByVal path As String)

Console.WriteLine("Downloading {0}", path)

End Sub

Sub watcher_DownloadCompleted(ByVal path As String, ByVal err As FEEDS_DOWNLOAD_ERROR) Handles watcher.FeedDownloadCompleted

Console.WriteLine("Downloaded {0}", path)

End Sub

End Module

 

The key is the highlighted part.

Note: We are aware that the IFeedFolderEvents_Event and IFeedEvents_Event interfaces do not appear in the Object Browser or in IntelliSense. We are looking into it.

Keep the feedback coming!

-Walter vonKoch