可用服务的列表
Visual Studio 和 Visual Studio SDK 支持以下服务。 某些包提供此处未列出的自己的服务,例如,语言服务没有单个服务 GUID。 必须使用语言的名称在注册表中查找语言服务的 GUID。
使用此处列出的服务 GUID 或从某些其他源(例如语言服务)获取与每个服务显示的主接口或接口。
服务
服务 | 接口 | Visual Studio | Visual Studio 2005 | 说明 |
---|---|---|---|---|
SBindHost | IBindHost | 是 | 是 | 由 VSPackages 用来从 ActiveX 控件获取 IBindHost 接口,以方便异步数据传输。 |
SDTE | DTE | 否 | 是 | 获取用于自动化的设计时扩展性 (DTE) 对象。 C/C++ ID:SID_SDTE |
SCodeNavigate | ICodeNavigate | 是 | 是 | 由窗体设计器实现以显示控件的默认事件处理程序。 |
SContainerDispatch | IDispatch | 是 | 是 | 允许 VSPackage 访问另一个 VSPackage 或控件的自动化接口。 |
SExtendedTypeLib | IExtendedTypeLib | 是 | 是 | 允许 VSPackage 添加或创建扩展类型库。 |
SDirList | IDirList | 否 | 是 | 提供对容器的命名列表的访问权限;例如,要搜索的目录列表,如“查找和替换”对话框中的“查找和替换”下拉列表中所示。 IDirList可以读取对象以及写入对象。 |
SIVsPackageDynamicToolOwner | IVsPackageDynamicToolOwner | 是 | 是 | 使 VSPackage 能够动态显示或隐藏自己的工具窗口。 |
SLicensedClassManager | ILicensedClassManager | 是 | 是 | 通过指定许可证密钥列表,使 VSPackage 能够向 Visual Studio 指示它所需的类。 |
SLocalRegistry | ILocalRegistry ILocalRegistry2 |
是 | 是 | 允许 VSPackage 访问相对于本地 Visual Studio 注册表配置单元的注册表。 |
SOleComponentManager | IOleComponentManager | 是 | 是 | 提供组件协调服务,例如消息循环、键盘循环和事件通知。 |
SOleComponentUIManager | IOleComponentUIManager | 是 | 是 | 使 VSPackage 能够访问 Visual Studio 的各种用户界面(UI)元素,例如帮助、状态栏和 UI 事件。 |
SOleInPlaceComponent | IOleInPlaceComponent | 是 | 是 | 使 VSPackage 能够将其 UI 与 Visual Studio 的 UI 集成。 |
SOleInPlaceComponentSite | IOleInPlaceComponentSite | 是 | 是 | 使 VSPackage 能够控制特定于工具的 UI 更改。 |
SOleUndoManager | IOleUndoManager | 是 | 是 | 使 VSPackage 能够访问容器的撤消管理器,以参与该容器的撤消堆栈或访问该容器的撤消堆栈。 |
SProfferService | IProfferService | 是 | 是 | 使 VSPackage 能够提供自己的服务。 |
SProfferTypeLib | IProfferTypeLib | 是 | 是 | 使表单设计器能够使类型库可供引用。 |
STrackSelection | ITrackSelection | 是 | 是 | 提供对选择容器中所选内容的访问权限。 表单设计器使用。 |
SUIHostCommandDispatcher | IOleCommandTarget | 是 | 是 | 使 VSPackage 能够参与命令处理程序链,并代表集成开发环境(IDE)本身处理命令。 |
SUIHostLocale | IUIHostLocale | 是 | 是 | 提供对主机的 UI 区域设置信息的访问权限。 |
SVsActivityLog | IVsActivityLog | 否 | 是 | 启用日志记录后,VSPackage 可以记录高级消息。 |
SVsAddProjectItemDlg | IVsAddProjectItemDlg | 是 | 是 | 提供对 “添加项目项 ”对话框的访问权限,允许 VSPackage 实现其自己的 “添加项 ”菜单选项。 |
SVsAddWebReferenceDlg | IVsAddWebReferenceDlg | 是 | 是 | 显示“ 添加引用 ”对话框。 |
SVsAppCommandLine | IVsAppCommandLine | 是 | 是 | 使 VSPackage 能够确定是否为 devenv.exe 提供了命令行开关。 |
SVsCallBrowser | IVsCallBrowser | 否 | 是 | 使 VSPackage 能够创建新的 用于调试的呼叫浏览器 。 |
SVsClassView | IVsClassView | 是 | 是 | 使 VSPackage 能够将 类视图 同步到特定对象。 |
SVsCmdNameMapping | IVsCmdNameMapping | 是 | 是 | 支持将命令名称映射到 GUID,并返回并确定所有可用命令和名称的名称。 |
SVsCodeDefView | IVsCodeDefView | 否 | 是 | 使 VSPackage 能够操作 代码定义视图。 |
SVsCodeShareHandler | IVsCodeShareHandler | 是 | 是 | 内部服务。 请勿使用。 |
SVsCodeWindow | IVsCodeWindow | 是 | 是 | 提供对可包含一个或多个文档的代码窗口的访问权限。 |
SVsCodeWindowManager | IVsCodeWindowManager | 是 | 是 | 允许 VSPackage 将更改添加到代码窗口,例如下拉条。 |
SVsCommandWindow | IVsCommandWindow IVsCommandWindow2 |
是 | 是 | 允许 VSPackage 通过 命令窗口 运行命令,否则与 命令窗口交互。 |
SVsCommandWindowsCollection | IVsCommandWindowsCollection | 否 | 是 | 使 VSPackage 能够操作 Visual Studio 维护的 命令 窗口列表。 |
SVsComplusLibrary | IVsLibraryReferenceManager | 是 | 是 | 使 VSPackage 能够向对象浏览器提供浏览信息。 |
SVsComponentSelectorDlg | IVsComponentSelectorDlg | 否 | 是 | 使 VSPackage 能够支持 “添加引用 ”选项,使用户可以选择要添加到项目的外部组件。 |
SVsComponentSelectorDlg2 | IVsComponentSelectorDlg2 | 否 | 是 | 使 VSPackage 能够支持 “添加引用 ”选项,使用户可以选择要添加到项目的外部组件。 此版本的对话框允许在显示组件列表之前预先填充组件列表。 |
SVsConfigurationManagerDlg | IVsConfigurationManagerDlg | 否 | 是 | 显示“Configuration Manager”对话框。 |
SVsCreateAggregateProject | IVsCreateAggregateProject | 否 | 是 | 使 VSPackage 能够创建包含其他项目的集合的项目。 |
SVsDebuggableProtocol | IVsDebuggableProtocol | 是 | 是 | 使 VSPackage 能够更新 IDE 用于启动特定调试引擎的可调试协议列表。 |
SVsDebugLaunch | IVsDebugLaunch | 是 | 是 | 允许 VSPackage 支持启动调试器。 |
SVsDiscoveryService | IVsDiscoveryService | 是 | 是 | 使 VSPackage 能够创建用于发现 Web 服务的发现会话。 |
SVsEnumHierarchyItemsFactory | IVsEnumHierarchyItemsFactory | 是 | 是 | 提供一个工厂,用于创建 IVsEnumHierarchyItemsFactory 用于枚举指定层次结构(项目)的对象。 |
SVsErrorList | IVsErrorList | 否 | 是 | 提供用于操作 生成错误列表 任务窗口的其他方法。 具体而言,将 “生成错误列表 ”任务窗口引入最前沿,并强制显示所有错误。 |
SVsExternalFilesManager | IVsExternalFilesManager | 是 | 是 | 提供对 当前解决方案的“杂项文件” 项目节点的访问权限。 |
SVsFileChange | 是 | 是 | 已过时。 请改用 SVsFileChangeEx 服务。 |
|
SVsFileChangeEx | IVsFileChangeEx | 是 | 是 | 使 VSPackage 能够访问 IDE 触发的各种文件更改事件。 |
SVsFilterAddProjectItemDlg | IVsFilterAddProjectItemDlg | 是 | 是 | 允许 VSPackage 筛选在“添加项”对话框中显示的项目。 |
SVsFilterKeys | IVsFilterKeys | 是 | 是 | 使 VSPackage 能够执行高级键盘筛选。 |
SVsFontAndColorCacheManager | IVsFontAndColorCacheManager | 否 | 是 | 提供对 Visual Studio 中字体和颜色的缓存集的访问权限,以刷新或清除特定缓存或所有缓存。 |
SVsFontAndColorStorage | IVsFontAndColorStorage IVsFontAndColorUtilities |
是 | 是 | 使 VSPackage 能够操作 Visual Studio 维护的字体和颜色设置。 此外,此服务还提供对用于操作字体和颜色数据的实用工具方法集合的访问权限。 |
SVsGeneralOutputWindowPane | IVsOutputWindowPane | 是 | 是 | 提供对常规 “输出窗口 ”窗格的访问权限,并根据需要创建它。 |
SVsHelpService | IVsHelpSystem | 是 | 是 | 提供对帮助系统的访问权限。 |
SVsHTMLConverter | IVsHTMLConverter | 是 | 是 | 由 Visual Studio 调试器用来处理 HTML 以格式化其输出。 |
SVsIME | IVsIME | 是 | 是 | 从 VSPackage 中提供对输入法编辑器 (IME) API 的访问权限。 |
SVsIntegratedHelp | SVsHelp | 是 | 是 | 提供对 Visual Studio 帮助系统的访问权限,以便关键字 (keyword)或 URL 访问,并通过帮助文件进行导航控制。 仅当帮助集成到 Visual Studio IDE 中且未作为外部程序运行时,此服务才可用。 |
SVsIntelliMouseHandler | IVsIntelliMouseHandler | 是 | 是 | 使 VSPackage 能够访问 IntelliMouse 功能,例如使用鼠标滚轮并在单击鼠标滚轮时处理滚动和平移位图。 |
SVsIntellisenseEngine | IVsIntellisenseEngine | 否 | 是 | 使项目层次结构节点能够加载或卸载文件,作为 IntelliSense 操作支持的一部分。 加载和卸载触发器事件的过程可能会影响项目的 IntelliSense 工具提示中显示的事件。 |
SVsIntellisenseProjectHost | IVsIntellisenseProjectHost | 否 | 是 | 使项目层次结构节点能够提供有关可在 IntelliSense 工具提示中显示的嵌套 IntelliSense 项目(实现 IVsIntellisenseProject 接口)的信息。 |
SVsIntellisenseProjectManager | IVsIntellisenseProjectManager | 否 | 是 | 使项目层次结构节点能够向侦听器提供事件建议,例如引用或配置中的更改,这可能会影响 IntelliSense 工具提示中显示的内容。 设计为与包含语言一起使用。 |
SVsInvisibleEditorManager | IVsInvisibleEditorManager | 是 | 是 | 使 VSPackage 能够注册“不可见”编辑器,即提供完整编辑功能的编辑器,但对用户不可见。 |
SVsLanguageFilter | IVsTextViewFilter | 是 | 是 | 使 VSPackage 能够向文本视图提供其他信息,例如数据提示和字词范围。 |
SVsLaunchPad | IVsLaunchPad | 是 | 是 | 使 VSPackage 能够执行临时批处理脚本、执行其输出发送到输出窗格的命令行程序,以及分析发送到错误窗口的标准警告和错误消息。 |
SVsLaunchPadFactory | IVsLaunchPadFactory | 是 | 是 | 提供用于创建 IVsLaunchPad 对象的工厂。 |
SVsLinkedUndoTransactionManager | IVsLinkedUndoTransactionManager | 是 | 是 | 提供对链接撤消管理器的访问权限。 |
SVsMenuEditor | IVsMenuEditorFactory | 是 | 是 | 使表单设计器能够访问共享菜单编辑器。 可以查询 IVsMenuEditorIVsMenuEditorFactory。 |
SVsMonitorUserContext | IVsMonitorUserContext | 是 | 是 | 使 VSPackage 能够创建一个“上下文包”,该包用于关联特定上下文的帮助关键字 (keyword)。 |
SVsObjBrowser | IVsObjBrowser | 是 | 是 | 使 VSPackage 能够导航到对象浏览器中的特定对象。 |
SVsObjectManager | IVsObjectManager | 是 | 是 | 使 VSPackage 能够向 Visual Studio 注册其库管理器,以便管理命名空间、类和枚举等对象。 |
SVsObjectSearch | IVsObjectSearch | 是 | 是 | 允许 VSPackage 搜索特定对象。 |
SVsOpenProjectOrSolutionDlg | IVsOpenProjectOrSolutionDlg | 否 | 是 | 允许 VSPackage 使用标准 Visual Studio 对话框打开项目或解决方案。 |
SVsOutputWindow | IVsOutputWindow | 是 | 是 | 允许 VSPackage 在常规输出窗口中创建其他输出窗格。 |
SVsParseCommandLine | IVsParseCommandLine | 是 | 是 | 使接口的 IOleCommandTarget 实现者能够分析命令行。 |
SVsPathVariableResolver | IVsPathVariableResolver | 否 | 是 | 提供一种方法来解析特定于 Visual Studio 的变量,以及嵌入在路径中以生成最终路径的变量。 |
SVsPreviewChangesService | IVsPreviewChangesService | 否 | 是 | 显示重构代码中使用的“预览更改”对话框。 |
SVsProfileDataManager | IVsProfileDataManager | 否 | 是 | 提供对 Visual Studio 的配置文件管理器的访问权限,该管理器允许导入和导出设置数据,以及显示当前用户配置文件设置的 UI。 |
SVsProfilesManagerUI | IVsProfilesManagerUI | 否 | 是 | 显示显示当前用户配置文件设置的对话框。 |
SVsPropertyPageFrame | IVsPropertyPageFrame | 是 | 是 | 使 VSPackage 能够替代最初显示在 “属性” 窗口中的属性页。 |
SVsQueryEditQuerySave | IVsQueryEditQuerySave2 | 否 | 是 | VSPackages 用来通知源代码管理提供程序文件即将在内存中更改或保存。 |
SVsRegisterDebugTargetProvider | IVsRegisterProjectDebugTargetProvider | 否 | 是 | 使 VSPackage 项目能够以编程方式替代目标以在调试器中启动。 |
SVsRegisterEditors | IVsRegisterEditors | 是 | 是 | 使 VSPackage 能够向 IDE 注册编辑器工厂。 |
SVsRegisterFindScope | IVsRegisterFindScope | 否 | 是 | 允许 VSPackage 为“在文件中查找”对话框注册搜索范围。 |
SVsRegisterPriorityCommandTarget | IVsRegisterPriorityCommandTarget | 是 | 是 | 使 VSPackage 能够将自身注册为高优先级命令处理程序,从而允许 VSPackage 查看所有命令。 请谨慎使用(如果有)。 |
SVsRegisterProjectTypes | IVsRegisterProjectTypes | 是 | 是 | 使 VSPackage 能够向 IDE 注册项目类型。 |
SVsResourceManager | IVsResourceManager | 否 | 是 | 使 VSPackage 能够从附属 DLL 加载托管和非托管资源。 |
SVsResourceView | IVsResourceView | 是 | 是 | 请改用 SVsClassView 服务。 |
SVsRunningDocumentTable | IVsRunningDocumentTable | 是 | 是 | 提供对跟踪所有当前打开的文档的 IDE 正在运行的文档表(RDT)的访问权限。 |
SVsSccManager | IVsSccManager2 | 否 | 是 | 使 VSPackages 能够向源代码管理提供程序注册自己,以便他们可以参与源代码管理。 |
SVsSccToolsOptions | IVsSccToolsOptions | 是 | 是 | 允许 VSPackage 获取和设置源代码管理提供程序选项。 |
SVsSettingsReader | IVsSettingsReader | 否 | 是 | 提供对用户配置文件设置的读取访问权限。 |
SVsShell | IVsShell | 是 | 是 | 使 VSPackage 能够直接与其他 VSPackage 交互和操作。 |
SVsShellDebugger | IVsDebugger | 是 | 是 | 提供对 Visual Studio 调试器的访问权限。 |
SVsShellMonitorSelection | IVsMonitorSelection | 是 | 是 | 使 VSPackage 能够访问当前选择并管理命令 UI 上下文。 |
SVSMDCodeDomProvider | IVSMDCodeDomProvider | 否 | 是 | 提供对可在本机代码中使用的代码文档对象模型(DOM)提供程序的访问。 |
SVSMDDesignerService | IVSMDCodeDomCreator IVSMDDesignerService |
否 | 是 | 提供对托管表单设计器的 IDE 支持的访问权限。 IVSMDCodeDomCreator 可用于创建代码 DOM 提供程序。 |
SVSMDPropertyBrowser | IVSMDPropertyBrowser | 否 | 是 | 提供对设计器属性窗口服务的访问权限。 |
SVSMDTypeResolutionService | IVSMDTypeResolutionService | 否 | 是 | 提供对接口的访问权限,该接口可以返回 ITypeResolutionService 可在本机代码中使用的对象。 |
SVsSmartOpenScope | IVsSmartOpenScope | 否 | 是 | 提供一种方法来打开程序集上的作用域,并根据需要考虑锁定。 |
SVsSolution | IVsSolution | 是 | 是 | 提供对当前解决方案的顶级访问权限。 |
SVsSolutionBuildManager | IVsSolutionBuildManager | 是 | 是 | 使 VSPackage 能够与解决方案的生成过程进行交互。 |
SVsSolutionObject | IVsSolution | 是 | 是 | 请改用该服务 SVsSolution 。 |
SVsSolutionPersistence | IVsSolutionPersistence | 是 | 是 | 使 VSPackage 能够存储和检索当前解决方案的 .sln 文件中的信息。 |
SVsSQLCLRReferences | IVsSQLCLRReferences | 否 | 是 | 提供在托管代码程序集中添加和更新引用的功能。 |
SVsStartPageDownload | IVsStartPageDownload | 否 | 是 | 提供对 Visual Studio 2017 起始页下载服务的访问权限,以便在后台线程上启动和停止下载服务。 |
SVsStatusbar | IVsStatusbar | 是 | 是 | 提供对 IDE 状态栏的访问权限。 |
SVsStrongNameKeys | IVsStrongNameKeys | 否 | 是 | 提供对使用密码创建强密钥名称和密钥文件的方法的访问权限,这些密码用于对托管代码程序集进行签名。 |
SVsStructuredFileIO | IVsStructuredFileIO | 是 | 是 | 使 VSPackage 能够支持以多种格式保存数据。 |
SVsTaskList | IVsTaskList | 是 | 是 | 提供访问 IDE 的任务列表窗口。 |
SVsTextImageUtilities | IVsTextImageUtilities | 否 | 是 | 提供用于加载和保存文本文件的实用工具。 |
SVsTextManager | IVsTextManager IVsHiddenTextManager |
是 | 是 | 提供对 IDE 中提供的所有文本缓冲区以及隐藏文本会话(对于隐藏区域)的访问。 |
SVsTextOut | IVsTextOut | 是 | 是 | 提供 Win32 TextOut 函数的版本,用于将文本写入设备上下文(需要 DC 句柄)。 |
SVsTextSpanSet | IVsTextSpanSet | 是 | 是 | 提供对文本图像或缓冲区中文本跨度列表的访问。 此服务通常在文档容器上实现,并引用当前文档。 |
SVsThreadedWaitDialog | IVsThreadedWaitDialog | 否 | 是 | 使 VSPackage 能够显示一个对话框,该对话框在不同线程上等待(用于等待后台任务)。 |
SVsThreadPool | IVsThreadPool | 否 | 是 | 使 VSPackage 能够启动由 Visual Studio 维护的后台任务。 |
SVsToolbox | IVsToolbox | 是 | 是 | 提供对 IDE 工具箱的访问权限。 |
SVsToolboxActiveXDataProvider | IVsToolboxDataProvider | 是 | 是 | 允许 VSPackage 从 工具箱 项获取信息。 |
SVsToolboxDataProviderRegistry | IVsToolboxDataProviderRegistry | 否 | 是 | 使 VSPackage 能够注册工具箱数据提供程序,而不会产生预加载整个 工具箱的性能成本。 |
SVsToolsOptions | IVsToolsOptions | 否 | 是 | 使 VSPackage 能够确定“选项”对话框是否打开并刷新所有选项页面的可见性。 |
SVsTrackProjectDocuments | IVsTrackProjectDocuments2 IVsTrackProjectDocuments3 |
否 | 是 | 使 VSPackage 能够监视项目文件中的更改,并提供对源代码管理提供程序的批量控制。 |
SVsTrackSelectionEx | IVsTrackSelectionEx | 是 | 是 | 使 VSPackage 能够通知 IDE 对可能影响当前所选项目项的选择的更改。 |
SVsUIHierWinClipboardHelper | IVsUIHierWinClipboardHelper | 是 | 是 | 允许层次结构(如项目 VSPackage)与其他层次结构协调剪贴板的使用。 |
SVsUIShell | IVsUIShell | 是 | 是 | 提供对 IDE UI 元素(如工具窗口和文档窗口)的访问。 |
SVsUIShellDocumentWindowMgr | IVsUIShellDocumentWindowMgr | 是 | 是 | 使 VSPackage 能够基于数据流的内容还原所有窗口的位置,或将所有窗口的位置保存到流中。 很少使用。 |
SVsUIShellOpenDocument | IVsUIShellOpenDocument | 是 | 是 | 使 VSPackage 能够以多种方式打开文档,并确定谁拥有哪些文档。 |
SVsUpgradeLogger | IVsUpgradeLogger | 否 | 是 | 接口的实现者 IVsProjectUpgradeViaFactory 用来报告错误和信息性消息。 |
SVsWebBrowsingService | IVsWebBrowsingService | 是 | 是 | 使 VSPackage 能够创建和控制 Web 浏览会话。 |
SVsWebFavorites | IVsWebFavorites | 是 | 是 | 允许 VSPackage 添加到用户的 收藏夹 列表。 |
SVsWebPreview | IVsWebPreview | 是 | 是 | 允许 VSPackage 预览网页,通常位于子窗口中。 |
SVsWebURLMRU | IVsWebURLMRU | 是 | 是 | 允许 VSPackage 将 URL 添加到最近使用的 URL 列表,并获取 MRU 列表中所有 URL 的列表。 |
SVsWindowFrame | IVsWindowFrame | 是 | 是 | 使 VSPackage 能够获取包或包的一部分可能位于的窗口框架。 |
SVsXMLMemberIndexService | IVsXMLMemberIndexService | 是 | 是 | 提供对与特定元数据文件关联的 XML 格式的文档文件的访问权限。 |