IVsUIHierarchyWindow.GetCurrentSelection 方法

定义

当使用替代的 UIHierarchy 时,获取当前所选内容的备用 itemID。

public:
 int GetCurrentSelection([Runtime::InteropServices::Out] IntPtr % ppHier, [Runtime::InteropServices::Out] System::UInt32 % pitemid, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Shell::Interop::IVsMultiItemSelect ^ % ppMIS);
public int GetCurrentSelection (out IntPtr ppHier, out uint pitemid, out Microsoft.VisualStudio.Shell.Interop.IVsMultiItemSelect ppMIS);
abstract member GetCurrentSelection : nativeint * uint32 * IVsMultiItemSelect -> int
Public Function GetCurrentSelection (ByRef ppHier As IntPtr, ByRef pitemid As UInteger, ByRef ppMIS As IVsMultiItemSelect) As Integer

参数

ppHier
IntPtr

nativeint

弄指向 IVsHierarchy 当前项目层次结构的接口的指针。

pitemid
UInt32

弄指向当前项目项的标识符的指针。 如果 pitemid 设置为 VSITEMID_SELECTION ,则当前所选内容涉及多个项。 可以使用 IVsMultiItemSelect 指向的接口访问这些项 ppMIS

ppMIS
IVsMultiItemSelect

弄指向接口的指针,该 IVsMultiItemSelect 接口用于访问多个选定内容。

返回

Int32

如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。

注解

COM 签名

从 vsshell:

HRESULT IVsUIHierarchyWindow::GetCurrentSelection(  
   [out] IVsHierarchy ** ppHier,  
   [out] VSITEMID * pitemid,  
   [out] IVsMultiItemSelect ** ppMIS  
);  

如果没有备用 UI 层次结构 itemID ,则更常见的方法是使用 GetCurrentSelection 来获取全局当前处于活动状态的层次结构 itemID

IVsUIHierarchyWindow::GetCurrentSelection 当本地 UI 窗口中的选定内容 itemID 与全局层次结构具有不同的层次结构时,将使用 itemIDitemID如果 grfUIHWF 在中指定了,则 UI 窗口会将不同的层次结构推送到全局级别 UIHWF_PropagateAltHierarchyItem Init

宏资源管理器服务器资源管理器 是使用本地 UI 窗口层次结构的工具窗口的示例 itemID 。 在 宏资源管理器服务器资源管理器 中, IVsTrackSelectionEx 实现指定 HIERARCHY_DONTPROPAGATE (在 vsshell 中定义的值) 因此本地选定的 UI 层次结构 itemID 不会传播到全局级别。 如果 HIERARCHY_DONTPROPAGATE 未选择此选项,则可以将本地层次结构 itemID 推送到全局级别。

适用于