I wrote a small program that generates xml from a type library. The type library can be a .tlb, or embedded as a resource in a PE (.dll, .ocx, .exe, etc).
The source can be downloaded from
here, or you can view it online
here. It doesn't grab everything from the tlb, but it's pretty simple and not hard to extend.
I'm using this as a build tool--basically it's the glue that makes a big project using C#, C++, VB6,
WiX and
NAnt hold together.