Visual Studio Interop Assemblies

The Visual Studio interop assemblies allow managed applications to access the COM interfaces that provide Visual Studio extensibility.

Each interface in the interop assembly corresponds to a Visual Studio COM interface. Each is designed so that the parameter information passed by the managed code approximates the information required by the underlying COM object as closely as possible. Each method returns an HRESULT to the managed application.

The Visual Studio interop assemblies are not the same as the Managed Package Framework Classes. The MPF classes use the interop assemblies to provide a higher level of abstraction, a richer feature set, and more robust interoperability and error handling than the interop assemblies.

List of Interop Assemblies

The interop assemblies are installed by default at <Visual Studio SDK Installation Path>\VisualStudioIntegration\Common\Assemblies and are also installed into the global assembly cache (GAC). The following interop assemblies are provided in Visual Studio SDK:

Interop assembly name

Functionality

Microsoft.VisualStudio.Debugger.Interop.dll

Provides access to the debugging functionality in the integrated development environment (IDE).

Microsoft.VisualStudio.OLE.Interop.dll

Provides access to some standard OLE interfaces.

Microsoft.VisualStudio.Shell.Interop.dll

Provides access to basic IDE interfaces.

Microsoft.VisualStudio.Shell.Interop.8.0.dll

Provides access to IDE interfaces, types, and services.

Microsoft.VisualStudio.Shell.Interop.9.0.dll

Provides access to IDE interfaces, types, and services.

Microsoft.VisualStudio.Shell.Interop.10.0.dd

Provides access to IDE interfaces, types, and services.

Microsoft.VisualStudio.TextManager.Interop.dll

Provides access to core editor interfaces.

Microsoft.VisualStudio.TextManager.Interop.8.0.dll

Provides access to core editor interfaces, types, and services.

Microsoft.VisualStudio.TextManager.Interop.10.0.dll

Provides access to core editor interfaces, types, and services.

Together, these assemblies provide the following namespaces:

Namespace

Contents

Microsoft.VisualStudio.Shell.Interop

VSLangProj

IDE and OLE interfaces used in Visual Studio SDK.

Microsoft.VisualStudio.TextManager

Legacy editor interfaces.

Microsoft.VisualStudio.Debugger

Interfaces supporting the debugging environment.

Microsoft.VisualStudio.Ole.Interop

Interfaces supporting OLE types.

In addition, developers may find it valuable to use members of the VSConstants class to obtain definitions of common constants, such as S_OK.

Note

Some classes, such as the VsMethodTipWindowClass class, are COM classes that are registered only with the local registry. You cannot create an instance of these classes with the new keyword. Instead, you must get the ILocalRegistry object and create the object with the CreateInstance method. MPF wraps this method with CreateInstance.

See Also

Other Resources

Interoperating with Unmanaged Code

Managed VSPackages