When a COM object is called from .NET, the runtime generates a runtime callable wrapper (RCW). The RCW acts as a proxy for the unmanaged object. (This wrapper turns the COM interfaces exposed by the COM component into .NET Framework-compatible interfaces.)
The RCW is responsible for handling all interaction between the .NET client code and the COM component