List of Available Services
Visual Studio and the Visual Studio 2012 SDK support the following services. Note that some packages offer their own services which are not listed here. For example, language services do not have a single service GUID. You must use the name of the language to find the GUID of the language service in the registry.
Use the service GUIDs listed here or obtained from some other source (for example, language services) to obtain the primary interface or interfaces shown with each service.
The Services
Service |
Interface |
Visual Studio |
Visual Studio 2005 |
Description |
---|---|---|---|---|
Yes |
Yes |
Used by VSPackages to obtain an IBindHost interface from an ActiveX control to facilitate asynchronous data transfers. |
||
No |
Yes |
Obtains the Design Time Extensibility (DTE) object used for automation. C/C++ ID: SID_SDTE |
||
Yes |
Yes |
Implemented by a forms designer to display the default event handler for a control. |
||
IDispatch |
Yes |
Yes |
Allows a VSPackage to access the automation interface of another VSPackage or a control. |
|
Yes |
Yes |
Allows a VSPackage to add or create an extended type library. |
||
No |
Yes |
Provides access to a container's named list of lists; for example, the list of directories to search as shown in the Find and Replace dialog box in the Look In drop-down list. The IDirList object can be read from as well as written to. |
||
Yes |
Yes |
Allows a VSPackage to have its own tool windows dynamically shown or hidden. |
||
Yes |
Yes |
Allows a VSPackage to indicate to Visual Studio the classes that it requires by specifying a list of license keys. |
||
Yes |
Yes |
Allows a VSPackage to access the registry relative to the local Visual Studio registry hive. |
||
Yes |
Yes |
Provides component coordination services such as message loops, keyboard loops, and event notifications. |
||
Yes |
Yes |
Allows a VSPackage to access the various user interface (UI) elements of Visual Studio, such as help, status bar, and UI events. |
||
Yes |
Yes |
Allows a VSPackage to integrate its UI with the UI of Visual Studio. |
||
Yes |
Yes |
Allows a VSPackage to control UI changes that are specific to tools. |
||
Yes |
Yes |
Allows a VSPackage to access a container's undo manager to either participate in that container's undo stack or to access that container's undo stack. |
||
Yes |
Yes |
Allows a VSPackage to offer its own services. |
||
Yes |
Yes |
Allows a forms designer to make a type library available for reference. |
||
Yes |
Yes |
Provides access to the selections in a selection container. Used by a forms designer. |
||
Yes |
Yes |
Allows a VSPackage to participate in the command handler chain and handle commands on behalf of the integrated development environment (IDE) or itself. |
||
Yes |
Yes |
Provides access to the UI locale information of the host. |
||
No |
Yes |
Allows a VSPackage to log high-level messages when logging is turned on. |
||
Yes |
Yes |
Provides access to the Add Project Item dialog box, allowing VSPackages to implement their own Add Item menu option. |
||
Yes |
Yes |
Displays the Add Web Reference dialog box. |
||
Yes |
Yes |
Allows a VSPackage to determine if a command-line switch was given to devenv.exe. |
||
No |
Yes |
Allows a VSPackage to create a new Call Browser used in debugging. |
||
Yes |
Yes |
Allows a VSPackage to synchronize the Class View to a specific object. |
||
Yes |
Yes |
Provides support for mapping command names to GUIDs and back and determining the names of all available commands and names. |
||
No |
Yes |
Allows a VSPackage to manipulate the Code Definition View. |
||
Yes |
Yes |
Internal service. Do not use. |
||
Yes |
Yes |
Provides access to a code window that can contain one or more documents. |
||
Yes |
Yes |
Allows a VSPackage to add changes to the code window such as drop-down bars. |
||
Yes |
Yes |
Allows a VSPackage to run a command through the Command Window and otherwise interact with the Command Window. |
||
No |
Yes |
Allows a VSPackage to manipulate the list of Command windows maintained by Visual Studio. |
||
Yes |
Yes |
Allows a VSPackage to provide browse information to the Object Browser. |
||
No |
Yes |
Allows a VSPackage to support the Add Reference option, which lets a user select external components to add to the project. |
||
No |
Yes |
Allows a VSPackage to support the Add Reference option, which lets a user select external components to add to the project. This version of the dialog box allows pre-populating of the component list before it is shown. |
||
No |
Yes |
Displays the Configuration Manager dialog box. |
||
No |
Yes |
Allows a VSPackage to create a project that contains a collection of other projects. |
||
Yes |
Yes |
Allows a VSPackage to update the list of debuggable protocols used by the IDE to start particular debug engines. |
||
Yes |
Yes |
Allows a VSPackage to support starting a debugger. |
||
Yes |
Yes |
Allows a VSPackage to create a discovery session that is used to discover Web services. |
||
Yes |
Yes |
Provides a factory to create IVsEnumHierarchyItemsFactory objects used to enumerate over specified hierarchies (projects). |
||
No |
Yes |
Provides additional methods for manipulating the Build Error List task window. Specifically, brings the Build Error List task window to the forefront and forces all errors to be displayed. |
||
Yes |
Yes |
Provides access to the Miscellaneous Files project node of the current solution. |
||
|
Yes |
Yes |
Obsolete. Use SVsFileChangeEx service instead. |
|
Yes |
Yes |
Allows a VSPackage to gain access to various file change events triggered by the IDE. |
||
Yes |
Yes |
Allows a VSPackage to filter items that appear in the Add Item dialog box. |
||
Yes |
Yes |
Allows a VSPackage to perform advanced keyboard filtering. |
||
No |
Yes |
Provides access to the set of caches for fonts and colors in Visual Studio to refresh or clear a particular cache or all caches. |
||
Yes |
Yes |
Allows a VSPackage to manipulate the font and color settings maintained by Visual Studio. In addition, this service provides access to a collection of utility methods for manipulating font and color data. |
||
Yes |
Yes |
Provides access to the general Output Window pane, creating it as necessary. |
||
Yes |
Yes |
Provides access to the Help system. |
||
Yes |
Yes |
Used by the Visual Studio debugger to handle HTML to format its output. |
||
Yes |
Yes |
Provides access to the Input Method Editor (IME) API from within a VSPackage. |
||
Yes |
Yes |
Provides access to the Visual Studio Help system for keyword or URL access as well as navigation control through a help file. This service is available only if Help is integrated into the Visual Studio IDE and not running as an external program. |
||
Yes |
Yes |
Allows a VSPackage to gain access to IntelliMouse functionality such as using the mouse wheel and handling scroll and pan bitmaps when the mouse wheel is clicked. |
||
No |
Yes |
Allows a project hierarchy node to load or unload files as part of support for IntelliSense operations. The process of loading and unloading triggers events that can affect what is displayed in IntelliSense tooltips for the project. |
||
No |
Yes |
Allows a project hierarchy node to provide information about nested IntelliSense projects (that implement the IVsIntellisenseProject interface) that can be displayed in an IntelliSense tooltip. |
||
No |
Yes |
Allows a project hierarchy node to advise listeners of events, such as changes in references or configuration, which can affect what is displayed in IntelliSense tooltips. Designed to be used with Contained Languages. |
||
Yes |
Yes |
Allows a VSPackage to register an "invisible" editor, that is, an editor that provides full editing functionality but is not visible to users. |
||
Yes |
Yes |
Allows a VSPackage to provide additional information to the text view such as data tips and the extent of words. |
||
Yes |
Yes |
Allows a VSPackage to execute temporary batch scripts, to execute a command-line program whose output is sent to an output pane, and to parse standard warning and error messages that are sent to an error window. |
||
Yes |
Yes |
Provides a factory for creating IVsLaunchPad objects. |
||
Yes |
Yes |
Provides access to the linked undo manager. |
||
Yes |
Yes |
Allows a forms designer to access the shared menu editor. IVsMenuEditorFactory can be queried for IVsMenuEditor. |
||
Yes |
Yes |
Allows a VSPackage to create a "context bag", which is used to associate Help keywords for a particular context. |
||
Yes |
Yes |
Allows a VSPackage to navigate to a specific object in the Object Browser. |
||
Yes |
Yes |
Allows a VSPackage to register its library manager with Visual Studio for managing objects such as a namespaces, classes and enumerations. |
||
Yes |
Yes |
Allows a VSPackage to search for a particular object. |
||
No |
Yes |
Allows a VSPackage to use the standard Visual Studio dialog box to open a project or solution. |
||
Yes |
Yes |
Allows a VSPackage to create additional output panes in the general Output window. |
||
Yes |
Yes |
Allows an implementer of the IOleCommandTarget interface to parse command lines. |
||
No |
Yes |
Provides a way to resolve variables that are specific to Visual Studio and that are embedded in paths to produce a final path. |
||
No |
Yes |
Displays the Preview Changes dialog box that is used in refactoring code. |
||
No |
Yes |
Provides access to the profile manager of Visual Studio which allows for importing and exporting settings data as well as displaying a UI of the current user's profile settings. |
||
No |
Yes |
Displays a dialog box showing the current user's profile settings. |
||
Yes |
Yes |
Allows a VSPackage to override which property page is initially shown in the Properties window. |
||
No |
Yes |
Used by VSPackages to inform a source control provider that a file is about to be changed in memory or saved. |
||
No |
Yes |
Allows a VSPackage project to programmatically override the target to launch in a debugger. |
||
Yes |
Yes |
Allows a VSPackage to register an editor factory with the IDE. |
||
No |
Yes |
Allows a VSPackage to register a search scope for the Find in Files dialog box. |
||
Yes |
Yes |
Allows a VSPackage to register itself as a high priority command handler, which allows the VSPackage to see all commands. Use sparingly, if at all. |
||
Yes |
Yes |
Allows a VSPackage to register project types with the IDE. |
||
No |
Yes |
Allows a VSPackage to load managed and unmanaged resources from satellite DLLs. |
||
Yes |
Yes |
Use SVsClassView service instead. |
||
Yes |
Yes |
Provides access to the IDE's Running Document Table (RDT) that tracks all currently opened documents. |
||
No |
Yes |
Allows VSPackages to register themselves with a source control provider so they can participate in source control. |
||
Yes |
Yes |
Allows a VSPackage to get and set source control provider options. |
||
No |
Yes |
Provides read access to the user's profile settings. |
||
Yes |
Yes |
Allows a VSPackage to directly interact with and manipulate other VSPackages. |
||
Yes |
Yes |
Provides access to the Visual Studio debugger. |
||
Yes |
Yes |
Allows a VSPackage to access the current selection and manage command UI contexts. |
||
IVSMDCodeDomProvider |
No |
Yes |
Provides access to a code document object model (DOM) provider which can be used in native code. |
|
IVSMDCodeDomCreator IVSMDDesignerService |
No |
Yes |
Provides access to the IDE's support for managed form designers. The IVSMDCodeDomCreator can be used to create code DOM providers. |
|
IVSMDPropertyBrowser |
No |
Yes |
Provides access to the designer property windows service. |
|
No |
Yes |
Provides access to an interface that can return an ITypeResolutionService object useable in native code. |
||
No |
Yes |
Provides a way to open a scope on an assembly, taking into account locking as needed. |
||
Yes |
Yes |
Provides top-level access to the current solution. |
||
Yes |
Yes |
Allows a VSPackage to interact with a solution's build process. |
||
Yes |
Yes |
Use the SVsSolution service instead. |
||
Yes |
Yes |
Allows a VSPackage to store and retrieve information from the current solution's .sln file. |
||
No |
Yes |
Provides the ability add and update references in managed code assemblies. |
||
No |
Yes |
Provides access to the Start Page's download service for starting and stopping the download service on a background thread. |
||
Yes |
Yes |
Provides access to the IDE's status bar. |
||
No |
Yes |
Provides access to methods for creating strong key names and key files with passwords that are used in signing managed code assemblies. |
||
Yes |
Yes |
Allows a VSPackage to provide support for saving data in multiple formats. |
||
Yes |
Yes |
Provides access the IDE's Task List window. |
||
No |
Yes |
Provides utilities for loading and saving text files. |
||
Yes |
Yes |
Provides access to all text buffers as well as hidden text sessions (for hidden regions) that are available in the IDE. |
||
Yes |
Yes |
Provides a version of the Win32 TextOut function for writing text to a device context (requires a DC handle). |
||
Yes |
Yes |
Provides access to a list of text spans in a text image or buffer. This service is typically implemented on a container of documents and refers to the current document. |
||
No |
Yes |
Allows a VSPackage to show a dialog box that waits on a different thread (used to waiting for background tasks). |
||
No |
Yes |
Allows a VSPackage to initiate background tasks that are then maintained by Visual Studio. |
||
Yes |
Yes |
Provides access to the IDE's Toolbox. |
||
Yes |
Yes |
Allows a VSPackage to obtain information from Toolbox items. |
||
No |
Yes |
Allows a VSPackage to register a toolbox data provider without incurring the performance cost of preloading the entire Toolbox. |
||
No |
Yes |
Allows a VSPackage to determine if the Options dialog box is open and to refresh the visibility of all options page. |
||
No |
Yes |
Allows a VSPackage to monitor changes in a project's files and to provide batch control over a source control provider. |
||
Yes |
Yes |
Allows a VSPackage to inform the IDE of changes to a selection that can affect the currently selected project item. |
||
Yes |
Yes |
Allows a hierarchy (such as a project VSPackage) to coordinate use of the clipboard with other hierarchies. |
||
Yes |
Yes |
Provides access to the IDE's UI elements such as tool windows and document windows. |
||
Yes |
Yes |
Allows a VSPackage to restore the positions of all windows based on the contents of a stream of data or to save the position of all windows to a stream. Rarely used. |
||
Yes |
Yes |
Allows a VSPackage to open documents in numerous ways and to determine who owns what document. |
||
No |
Yes |
Used by implementers of the IVsProjectUpgradeViaFactory interface to report error and informational messages. |
||
Yes |
Yes |
Allows a VSPackage to create and control a Web browsing session. |
||
Yes |
Yes |
Allows a VSPackage to add to the user's Favorites list. |
||
Yes |
Yes |
Allows a VSPackage to preview a Web page, typically in a child window. |
||
Yes |
Yes |
Allows a VSPackage to add a URL to the Most Recently Used (MRU) list of URLs and to obtain a list of all URLs in the MRU list. |
||
Yes |
Yes |
Allows a VSPackage to obtain the window frame in which the package or part of the package might be situated. |
||
Yes |
Yes |
Provides access to XML-formatted documentation files associated with a particular metadata file. |
See Also
Other Resources
COM and Managed Services