COM application comunication performance
See the question and my original answer on StackOverflowThere are basically two possibiities when doing COM communication: 1) in-process, 2) out-of-process.
If you want maximum performance, you really want to use in-process COM (your code will run in the same process as your client code, so there is no serialization or "marshaling" involved). In this case, there is not really any "communication" layer. COM is a very simple binary contract. It's described here: The layout of a COM object
More info about v-table performance can be found here: Virtual method table
Note there are some subtleties about in-process COM, especially the threading model. Even in-process you want to make sure you choose a threading model that will fit with your client/calling code. So in the "Mixed Model Development" chapter of the article, you want "direct access", not "marshaling" (in the table).