This is a classic article on MicroSoft ComponentObjectModel, by DonBox who is now onto MicrosoftIndigo stuff, I think.
- It can be found here:
Summary
- by default, COM objects marshal by reference. That is, when passing object references as method parameters, Co-Marshal Interface creates a stub to allow MethodCall to be dispatched to the object from foreign apartments. Clients wind up with COM-provided proxies that send the stub request messages that trigger RemoteMethodInvocations.