My COM object uses outside .dll's for rendering, so that new filetypes can be easily added. After posting here on gamedev and another forum, AND chatting on #gamedev the best solution was to load all the .dll's in the constructor of my COM object and store the function pointers in a map (where they key was the filetype).
Argh, but that was a complete waste of time! Since ALL libraries will now be opened and closed instead of just the one needed... doh!
luckily I save a copy after each successfull version :P (yeah, should use CVS but don't have a server yadayada)