When a .NET component is called from COM, the runtime again generates a COM callable wrapper (CCW). The CCW acts as a proxy between the unmanaged COM code and the managed .NET code. The CCW is responsible for handling all interaction between the COM client and the managed object