IVsUIHierarchyWindow.GetCurrentSelection 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当使用替代的 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 接口用于访问多个选定内容。
返回
如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。
注解
COM 签名
从 vsshell:
HRESULT IVsUIHierarchyWindow::GetCurrentSelection(
[out] IVsHierarchy ** ppHier,
[out] VSITEMID * pitemid,
[out] IVsMultiItemSelect ** ppMIS
);
如果没有备用 UI 层次结构 itemID ,则更常见的方法是使用 GetCurrentSelection 来获取全局当前处于活动状态的层次结构 itemID 。
IVsUIHierarchyWindow::GetCurrentSelection 当本地 UI 窗口中的选定内容 itemID 与全局层次结构具有不同的层次结构时,将使用 itemID 。 itemID如果 grfUIHWF 在中指定了,则 UI 窗口会将不同的层次结构推送到全局级别 UIHWF_PropagateAltHierarchyItem Init 。
宏资源管理器 和 服务器资源管理器 是使用本地 UI 窗口层次结构的工具窗口的示例 itemID 。 在 宏资源管理器 和 服务器资源管理器 中, IVsTrackSelectionEx 实现指定 HIERARCHY_DONTPROPAGATE (在 vsshell 中定义的值) 因此本地选定的 UI 层次结构 itemID 不会传播到全局级别。 如果 HIERARCHY_DONTPROPAGATE 未选择此选项,则可以将本地层次结构 itemID 推送到全局级别。