When a .NET type attempts to access a legacy COM type, an intermediate object (termed a Runtime Callable Wrapper, or simply RCW) is responsible for translating between COM types and .NET types. For example, COM SAFEARRAY types map into the .NET System.Array class, COM BSTR types map into System.String, and so on. A similar operation occurs when a .NET type makes use of a legacy COM type (using an intervening COM Callable Wrapper, or simply CCW).