IVsUIHierarchyWindow.Init 方法

初始化为 UI 层次结构 " 窗口中的自定义使用。

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

语法

声明
Function Init ( _
    pUIH As IVsUIHierarchy, _
    grfUIHWF As UInteger, _
    <OutAttribute> ByRef ppunkOut As Object _
) As Integer
int Init(
    IVsUIHierarchy pUIH,
    uint grfUIHWF,
    out Object ppunkOut
)

参数

  • ppunkOut
    类型:System.Object%
    [out] 一个指向包含 UI 层次结构 " 窗口的 IVsWindowFrame 对象的 IUnknown 接口的指针。

返回值

类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。

备注

COM 签名

从 vsshell.idl:

HRESULT IVsUIHierarchyWindow::Init(
   [in] IVsUIHierarchy *pUIH,
   [in] UIHWINFLAGS grfUIHWF,
   [out] IUnknown** ppunkOut
);

该环境的项目窗口是一个 reuseable UI 元素。 Vspackage 可以使用 UI 层次结构 " 窗口的实例具有该工具的 windows 功能类似于内置 项目窗口。 对 UI 层次结构 " 窗口的示例使用是 服务器资源管理器

UI 层次结构 " 窗口通过 CLSID_VsUIHierarchyWindow 创建在调用方法 CreateToolWindowIVsUIHierarchyWindow 接口中访问使用工具窗口的 VSFPROPID_DocView 对象的接口 QueryInterface 此调用返回的。

如果必须获取对任何服务访问到 UI 层次结构 " 窗口 (例如, SID_SVsTrackSelectionEx 服务或 SID_SUndoManager 服务),则可以从 UI 层次结构 " 窗口的窗架检索 VSFPROPID_SPFrame 属性。 这将返回窗架的 IServiceProvider 接口。

UI 具有多个顶级节点需要方式处理选择包含多个层次结构的层次结构 " 窗口。 这是因为,公用父级层次结构处理命令,因此,如果选定内容为在层次结构中。 为了处理这种选择,执行以下操作之一:

  • 通过设置 grfUIHWF 的值不允许多重选择,为 UIHWF_ForceSingleSelect。

  • 将已针对 SolutionObject 使用了处理跨层次结构选择,通过设置 grfUIHWF 的值设置为 UIHWF_UseSolutionAsHiddenRootHierarchy

  • 指定自定义 IVsHierarchy 对象作为隐藏的根层次结构节点,通过设置 grfUIHWF 的值设置为 UIHWF_InitWithHiddenRootHierarchy。 此根层次结构不能有任何子节点和仅用于在多个顶级层次结构中处理选择。 若要指定为顶级节点父的隐藏根层次结构,请设置 grfUIHWF 的值设置为 UIHWF_InitWithHiddenParentRoot

.NET Framework 安全性

请参见

参考

IVsUIHierarchyWindow 接口

Microsoft.VisualStudio.Shell.Interop 命名空间