Calling COM Components
COM has been around for a number of years, and a large base of useful COM components is now available. COM components execute in unmanaged space, but you can integrate these components into your .NET applications using COM Interop.
You can create, manage, and communicate with a COM component from managed code by using a Runtime Callable Wrapper (RCW). The RCW acts as a proxy to the COM object. It hides the differences between the COM and the .NET component models, how objects are activated, and how object lifetimes are managed. The overall aim of the RCW is to make the COM object appear just like any other ordinary .NET object (if there is such a thing!).
Behind the scenes, COM Interop uses P/Invoke to execute unmanaged ...