I still had an update to upload. It fixes a bug, and uses the interop classes from the sample Footballism mentioned instead of my own.
EDIT: If you're wondering why I don't just use the library from that sample instead of writing my own, it's because the library from the sample doesn't take non-Vista OSs into account, so you'd still have to write your own fallback code unless you want to support
only Vista. With my library you get that for free, and since it uses the exact same public interface as the original FileDialog classes it's trivial to plug it into an existing application.