HTA == HTML Application
As some of you know I've been playing around with Mozilla Application development using XUL. It's really powerful and cool, but I wanted to try out the same idea in IE. HTA's are basically HTML pages, with a *.hta extension instead of *.htm. You run them just like any other EXE, just double-click. They run in a full-rights IE shell. Anyways, this was simply a proof of concept. It's not meant to look pretty (both code-wise and UI). You need FrodoXMService installed obviously. I use an XML "data island" and XSLT for the channel list to make sorting easier and faster (you can click on the column names to sort). XUL has much better UI elements than your basic HTML which is what you have to use for HTA's so I had to hack a scrolling list box. It works, so whatever...
So anyways, HTA's are pretty cool because you've got full support for everything in Windows. XUL is a lot better for UI work, but it's limited to mostly XPCOM for components which is not as "easy" to write for as .NET or COM. There's an ActiveX plugin for Mozilla/Firefox but it doesn't support events in XUL mode (in HTML mode it does) so I can't use FrodoXMService client in XUL. However, I've written a rough XUL client using JavaXM. It's pretty cool, I can load local Java libraries with JavaScript in XUL and run them no problem. But there also, it's limited due to how JavaXM was written (it sends events to objects that implement a certain interface, but you can't implement java interfaces in Javascript). I had started writing my own XPCOM XM class, but I didn't feel like finishing it. So potentially if I really wanted to use XUL I would have to make an XPCOM class for XM. Anyhow, I'm not sure why I'm so fascinated with all this XML/Javascript stuff...but it's fun.
NOTICE: since I can't upload an HTA file, I've uploaded the app as a .txt. Just rename it to .hta after you save it...
PS - one of the really nice things of using HTML/XUL is how easy and powerful skinning becomes since you can take advantage of the ultimate skinning tool: CSS!! In this example I just use inline styles in the elements, but in a "real" app I would just use a stylesheet file so you can just swap different stylesheets and have full control over the display of the whole UI.
*UPDATE*: made a few minor UI changes, cleaned up CSS code...