IVsUIHierarchy.GetNestedHierarchy(UInt32, Guid, IntPtr, UInt32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
允许给定层次结构的节点作为另一个层次结构中间的快捷方式。
public:
int GetNestedHierarchy(System::UInt32 itemid, Guid % iidHierarchyNested, [Runtime::InteropServices::Out] IntPtr % ppHierarchyNested, [Runtime::InteropServices::Out] System::UInt32 % pitemidNested);
public int GetNestedHierarchy (uint itemid, ref Guid iidHierarchyNested, out IntPtr ppHierarchyNested, out uint pitemidNested);
abstract member GetNestedHierarchy : uint32 * Guid * nativeint * uint32 -> int
Public Function GetNestedHierarchy (itemid As UInteger, ByRef iidHierarchyNested As Guid, ByRef ppHierarchyNested As IntPtr, ByRef pitemidNested As UInteger) As Integer
参数
- itemid
- UInt32
中请求其嵌套层次结构信息的节点的项标识符。 有关值的列表 itemid ,请参阅 VSITEMID 。
- iidHierarchyNested
- Guid
中要在中返回的接口的标识符 ppHierarchyNested 。 若要实现,请首先获取表示嵌套层次结构的对象并 IUnknown::QueryInterface 在其上运行以获取 (IID) 的接口 ID。 然后,在中传递 IID iidHierarchyNested 。 调用的结果将 QueryInterface 进入 ppHierarchyNested 。
- ppHierarchyNested
-
IntPtr
nativeint
[out,iid_is (iidHierarchyNested) ]指向其标识符传入的接口的指针 iidHierarchyNested 。
- pitemidNested
- UInt32
弄指向嵌套层次结构的根节点的项标识符的指针。 有关值的列表 pitemidnested ,请参阅 VSITEMID 。 虽然接口设置为支持将快捷方式嵌入到另一个层次结构中的任何节点,但目前环境只支持将嵌套层次结构的根节点嵌套到嵌套层次结构的根节点,在这种情况下, pitemidNested 必须将设置为 VSITEMID_ROOT 。
返回
如果不是 itemid 嵌套层次结构,则此方法返回 E_FAIL 。 如果层次结构对象不支持请求的接口, E_NOINTERFACE 则返回。 然后,调用方将此节点视为没有子级,如果所请求的接口非常重要, (通常情况下,当请求的接口 IID_IVsUIHierarchy) 时。
实现
注解
COM 签名
从 vsshell:
HRESULT IVsUIHierarchy::GetNestedHierarchy(
[in] VSITEMID itemid,
[in] REFIID iidHierarchyNested,
[out, iid_is(iidHierarchyNested)] void **ppHierarchyNested,
[out] VSITEMID *pitemidNested
);
层次结构可以嵌套在其他层次结构中。 例如,可以创建一个名为 "层次结构 1" 的父层次结构。 如果层次结构1包含两个项,则项 A 和项 B,项 B 成为嵌套层次结构 (命名层次结构 2) 嵌套层次结构具有两个标识符:
层次结构中的第 B 项
层次结构的根2
使用 IVsHierarchy.GetNestedHierarchy 方法来确定给定的层次结构是否为嵌套层次结构。 在上面的示例中,您将在 itemid 层次结构1中指定对应于项 B 的,并且方法将返回层次结构2的根。 此方法允许您具有两个不同的层次结构用于实现原因,即使向用户显示嵌套层次结构,也是父层次结构的子层次结构。
如果返回值为 E_NOINTERFACE ,并且请求的接口是必需的,则通常情况下,当 IID_IVsUIHierarchy 请求的接口时,调用方将此节点视为没有子节点,并且不是嵌套层次结构。
对于嵌套层次结构,父层次结构可以重写其任何嵌套层次结构的行为。 因此,如果对嵌套层次结构中的项执行命令,则允许父层次结构第一次响应该命令。