You may recall that this trek began with a simple comparison of various Desktop Search engines... excluding MSN Desktop because it lacked Thunderbird support. I settled on Copernic and decided to write a File Extractor to extend Copernic's support to the Palm Desktop files from my PDA, which I did in C# to improve my skills in that (new to me) language. But Copernic combined a few serious bugs with a deep silence, such that I gave up and resorted to trying MSN Desktop Search (which, by this time, had changed its name to "MSN Desktop with Windows Search".) A bit later, Benoit at Citeknet came out with a Thunderbird Protocol Handler for MSN Desktop, eliminating my primary objection to it. So I finished my IFilter in C# for the Palm Desktop files, and got it running much more quickly than the Copernic File Extractor because, while IFilters are a bit more convoluted, the support code seems bug-free. And I discovered that C# is not well suited for IFilters (or Protocol Handlers) and that database-type systems are beyond the scope of IFilter rendering (not indexing) for MSN Desktop. More specifically, Desktop cannot display much of the file (more than about 1200 bytes), even though it correctly indexes it, because that's not how they expected IFilters to be used.
Which brings us to today. I toyed with the idea of diving into a Protocol Handler to solve this problem "right", but the thing is, the indexing was the most important part to me. Once I know where the data is, I can easily enough go to that location to get it. And rewriting so much code just didn't fit into my schedule recently; it's been a busy several months. You can get some of that from the rest of my blog, but I've been on some massive projects at work too. So instead I wrote a Palm Desktop Preview GUI. Basically just a program that, when run against a Palm database that it recognizes, converts it to HTML and views it. This didn't take long because I'd already written the HTML conversion code during that brief period when SafeHTML was inadvertantly allowing me to use my computer the way I want to rather than protecting me from myself. I'm not sure what caused that brief functionality to vanish, but as I reported before, I'm told it wasn't supposed to be there.
So the only trick was figuring out the GUI and determining how little to do. I did very little. No options. All it does is show a form of the file and let you search (via Ctrl-F) it. But that's enough, for me for now. Soon I'll probably add features like a next/previous record button and an actual Find box, but it does all I needed for now so that's what you get. Plus the source code; if you want to enhance it, you can.
- PalmFilter_setup.exe is the installer, which includes the (Windows-obviously) binaries for the viewer and the IFilter, plus a readme file, uninstall capabilities, etc. The installer will also handle some registration details, so hang onto it.
- PalmIFilter_Source.zip is a zip of the source C# files. I didn't include the assemblies, DLLs or solution files, so you'll need to know what you're doing. The important things are to add COM support to the project and import the Web Browser control into your Designer Toolbox.
- Don't forget to ensure that your hotsync directories are actually set to be indexed by MSN Desktop. And you might want to un-check temporary file directories while you're at it.
- I'm using the MIT license because it's pretty non-restrictive. If you want to modify the code, you can. You don't have to give the changes back. If you want to sell your modifications, you can. I would prefer you didn't, but you can. That's not true of some of the other open source licenses.
- The Palm data viewer will (if you allow the installer to register it) work not just by double-clicking on a file in MSN Desktop/Windows Search but also from Explorer in Windows.