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.