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 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。