Well, I was hoping some of the COM experts would comment on that. If I understand it right you are avoiding writing some thunking routines for older interfaces, at the cost of an extra pointer access in every function. I'm not convinced it's a good trade-off, but I'd like to hear other opinions.
Well, in the other case, the thunked interface will also have a performance trade-off as it will introduce extra pointer arithmetic and function calls on each COM call. Of course, the 'dominant' one will not have any performance penalty at all.
As for increased function sharing and reduced thunks usage... True, but the number of functions is not really annoying or problematic.
Well, in some cases like in D3DDevice where you have 34 methods that are shared between different interfaces, it starts to get a little bit annoying to write 34 thunks :-)
In any case, for the moment I rewrote most of the COM part for the Direct3D code using Christian's patch (as it made my life much easier :-) ). Now, if it won't go into the tree, I could add thunking to it (should not be that hard). Just take a decision soon so as to not have a 11 klines patch lying in my tree for too long...
Lionel