For an in-proc COM component, a vtbl interface is generally in the order of 100 times faster than a dispinterface (although it depends on type of arguments in the function). For a out-of-proc component, the overhead of marshalling is more significant than overhead of IDispatch::invoke and so a vtbl interface is generally 2.5 times faster than a dispinterface. For a remote component however, it doesn