IVsHierarchy.GetNestedHierarchy 方法

可以为特定层次结构中的节点是快捷到另一个层次结构中间。

命名空间:  Microsoft.VisualStudio.Shell.Interop
程序集:  Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)

语法

声明
Function GetNestedHierarchy ( _
    itemid As UInteger, _
    ByRef iidHierarchyNested As Guid, _
    <OutAttribute> ByRef ppHierarchyNested As IntPtr, _
    <OutAttribute> ByRef pitemidNested As UInteger _
) As Integer
int GetNestedHierarchy(
    uint itemid,
    ref Guid iidHierarchyNested,
    out IntPtr ppHierarchyNested,
    out uint pitemidNested
)

参数

  • itemid
    类型:System.UInt32
    [in] 嵌套层次结构信息节点的项 ID 请求。有关 itemid 值列表,请参见 VSITEMID。
  • iidHierarchyNested
    类型:System.Guid%
    [in] 在 ppHierarchyNested将返回的接口的标识符。若要实现,第一获取表示该嵌套层次结构的对象和运行的 QueryInterface 获取接口 ID (IID)。然后,通过 IID 与 iidHierarchyNested。QueryInterface 调用的结果输入 ppHierarchyNested。
  • ppHierarchyNested
    类型:System.IntPtr%
    [out, iid_is(iidHierarchyNested)] 对标识符。 iidHierarchyNested通过接口的指针。
  • pitemidNested
    类型:System.UInt32%
    [out] 对嵌套层次结构的根节点的项 ID 的指针。有关 pitemidnested 值列表,请参见 VSITEMID。虽然接口设置为支持抄近路到另一个层次结构中的所有节点,环境将仅当前支持抄近路为嵌套层次结构的根节点,,必须将设置 pitemidNested 到 VSITEMID_ROOT情况下。

返回值

类型:System.Int32
如果 itemid 不是一个嵌套层次结构,此方法返回 E_FAIL。如果请求的接口层次结构中的对象,不支持 E_NOINTERFACE 返回。调用方随后应将此节点,就象没有子元素,因此,如果请求的接口是关键的 (如通常情况下,当请求的接口是 IID_IVsUIHierarchy 时)。

备注

层次结构可以在其他层次结构中嵌套。 例如,可以创建一个名为 Hierarchy 的父层次结构 1。 如果层次结构 1 包含两个项目、项目和项 B,该项目 B 是一个嵌套层次结构 (授予 Hierarchy 2) 该嵌套层次结构有两个标识符:

在层次 framework 1 的项目 B

根层次结构 2

使用 IVsHierarchy::GetNestedHierarchy 方法确定特定层次结构是否是一个嵌套层次结构。 在上面的示例中,您将指定 itemid 与项目 B 对应于层次结构 1,因此,该方法将返回根层次结构 2。 此方法使您可以实现原因的两个不同的层次结构,即使向用户该嵌套层次结构类似于父层次结构的子级。

如果返回值为 E_NOINTERFACE ,并将请求的接口是重要的,如通常情况下,当请求的接口是 IID_IVsUIHierarchy,调用方将此节点,就象没有子节点并不是一个嵌套层次结构。

嵌套层次结构,父层次结构可以重写的行为其任何嵌套层次结构。 因此,因此,如果命令在该嵌套层次结构的某个项时执行,父层次结构提供了响应的第一个机会该命令。

COM 签名

从 vsshell.idl:

HRESULT IVsHierarchy::GetNestedHierarchy(
   [in] VSITEMID itemid,
   [in] REFIID iidHierarchyNested,
   [out, iid_is(iidHierarchyNested)] void **ppHierarchyNested,
   [out] VSITEMID *pitemidNested
);

.NET Framework 安全性

请参见

参考

IVsHierarchy 接口

Microsoft.VisualStudio.Shell.Interop 命名空间