COM Interop

Type of technology included in the .NET Framework

COM Interop is a technology included in the .NET Framework Common Language Runtime (CLR) that enables Component Object Model (COM) objects to interact with .NET objects, and vice versa.

COM Interop aims to provide access to the existing COM components without requiring that the original component be modified. It tries to make the .NET types equivalent to the COM types. In addition, COM Interop allows COM developers to access managed objects as easily as they access other COM objects.

Interop tools

Tools to support a COM component using a .NET assembly

The .NET Framework creates a type library and special registry entries when a component is registered. It provides a specialized utility (RegAsm.exe, usually located in C:\Windows\Microsoft.NET\Framework) that exports the managed types into a type library and registers the managed component as a traditional COM component. When the type is instantiated through COM, the .NET CLR is the actual COM object that executes, and it merely marshals any method calls or property access to the type implementation.

Registration-free COM can be used to avoid DLL hell.

Tools to support a .NET assembly using a COM component

A COM Interop for an existing COM component can be created through the use of the Tlbimp.exe tool supplied with the .NET Framework SDK. This tool will create a set of proxy classes implemented in CIL which is encapsulated in an assembly.

Details

COM interop automatically provides the following services to simplify COM usage from .NET:

  • Conversion between COM types and equivalent .NET types.
  • Translation of retval arguments into return values.
  • Translation of HRESULT return values into exceptions.

References

  • .NET Framework documentation on MSDN - COM Interop
  • Regasm.exe (Assembly Registration Tool)
  • Tlbimp.exe (Type Library Importer)
  • v
  • t
  • e
.NET
Implementations
  • .NET (Core)
  • .NET Framework
  • .NET Compact Framework
  • .NET Micro Framework
  • DotGNU
  • Mono
  • XNA Framework
Architecture
  • Common Language Runtime (CLR)
  • COM Interop
  • Framework Class Library (FCL)
ComponentsTools
Obfuscators
Decompilers
Misc
IDEsOrganizations
  • Category
  • List
  • Commons


Stub icon

This article about software created, produced or developed by Microsoft is a stub. You can help Wikipedia by expanding it.

  • v
  • t
  • e