The MSN Search team recently silently released which among other things provides the API documentation for Windows Desktop Search that ships with the MSN Search Toolbar. The lowdown on what the API is good for is right at the beginning and is excerpted below

Which Extension Technology to Use?

There are two basic methods for creating add-ins for Desktop Search.

1.     Adding new file types by creating IFilters

  • Extend Desktop Search with an IFilter add-in that knows how to “crack” the contents of a new file type in order to index its text and metadata.
  • To do this, you need to build and register an object supporting the IFilter interface.
  • You can add file-specific icons or context-menu handlers by following this documentation on extending the Windows Explorer file types by creating IContextMenu and IExtractIcon interfaces.
2.     Adding a new store by creating protocol handlers

  • Extend Desktop Search so that it can index a new data store, such as the database of an e-mail application.
  • To do this, you need to build a protocol handler object supporting the ISearchProtocol interface, along with an IUrlAccessor to pull the items. If the contents of the data store are file types not already indexed by Desktop Search, you may also need to implement one or more IFilters..
  • To add icons or context-menu handlers, you need to implement portions of an IShellFolder.

You can also find custom IFilters at including ones for PDF, ZIP, CHM and Mozilla Thunderbird mail formats. If only there were C# wrappers for all the gnarly COM interfaces I'd provide one for indexing and searching the cache file format used by RSS Bandit. Then people would be able to search their feeds directly from desktop search. That would be kinda hot. 


Friday, July 1, 2005 7:55:13 PM (GMT Daylight Time, UTC+01:00)
As you note adding such a filter for RSS Bandit would rock incredibly. Lets hope a C# interop solution soon comes along!

Btw. Thanks for a great blog reading app!!!! Kudos!!!
Saturday, July 2, 2005 9:58:51 AM (GMT Daylight Time, UTC+01:00)

Maybe you care to comment on the fact that IFilter and the other components of the Microsoft search technology have been in Windows since Windows NT 4.0 thanks to Index Server ( Windows XP search can make use of Indexing Service for its work, but it's off by default and you need to get used to the idea of talking a dog into enabling it. However, other product teams have successfully used the technology for years (SQL Full Text Search and SharePoint, most notably).

Why did Microsoft wait for Google to come up with a desktop search tool when they had already had the technology in there for years? Heck, what took MSN so long to become the set of services that it's turning into now? If you think about it, Microsoft did have the resources to create a web search engine 5 years ago, together with Virtual Earth, maps and everything. Not only is Microsoft unable to create technological tidal waves, it constantly misses the waves produced by others. Aren't you guys learning from the past? Gates totally missed the Internet thingie in 1995, .NET should have happened 3-4 years earlier, right after Java emerged, you completely missed the second Internet wave (after .com burst) and the examples can continue.

What other amazing technologies do you have in there but fail to exploit properly?

"Your potential, our passion".
Saturday, July 2, 2005 10:18:46 AM (GMT Daylight Time, UTC+01:00)
What's different with the plain old indexing service and this?

I don't know how it's possible, but could the drive be indexed in such manner that there is no seek noises? Can't you just cache the file positions and get a list of fragmented files and not index the very fragmented files until they are defragmented or the user is running a process that reads them. Then just do a sequential read of the non-fragmented files, if another process causes head to move then continue the indexing from the new position instead of seeking to the old position :-)

There's a challenge for you..
Wednesday, July 6, 2005 7:49:52 PM (GMT Daylight Time, UTC+01:00)
Talking of the API support in MSN Desktop Search I knocked up an app to test out the query API that's just been released.

Basically an iTunes style music browser using the MSN Desktop Search index via the query API. Which allows you browse and select any of your music that has been indexed.

See the following entry for details and follow the link to CodeProject for more details and source code if you're interested.!1pC_K0hKOTPOd-hSoTxSOeeQ!114.entry

Monday, July 11, 2005 4:00:15 AM (GMT Daylight Time, UTC+01:00)
Your wishes have been granted - the MSN Search team have updated the SDK to include .NET interop assemblies and some C# samples :)
Comments are closed.