IVsUIHierarchyWindow2.Init(IVsUIHierarchy, UInt32, Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 UI 层次结构窗口的自定义使用。
public:
int Init(Microsoft::VisualStudio::Shell::Interop::IVsUIHierarchy ^ pUIH, System::UInt32 grfUIHWF, [Runtime::InteropServices::Out] System::Object ^ % ppunkOut);
int Init(Microsoft::VisualStudio::Shell::Interop::IVsUIHierarchy const & pUIH, unsigned int grfUIHWF, [Runtime::InteropServices::Out] winrt::Windows::Foundation::IInspectable const & & ppunkOut);
public int Init (Microsoft.VisualStudio.Shell.Interop.IVsUIHierarchy pUIH, uint grfUIHWF, out object ppunkOut);
abstract member Init : Microsoft.VisualStudio.Shell.Interop.IVsUIHierarchy * uint32 * obj -> int
Public Function Init (pUIH As IVsUIHierarchy, grfUIHWF As UInteger, ByRef ppunkOut As Object) As Integer
参数
- pUIH
- IVsUIHierarchy
[in] IVsUIHierarchy 初始化。
- grfUIHWF
- UInt32
中"UI 层次结构" 窗口的特征。 有关值的列表,请参见 __UIHWINFLAGS 枚举。
- ppunkOut
- Object
弄指向对象的 IUnknown 接口的指针,该 IVsWindowFrame2 对象包含 "UI 层次结构" 窗口。
返回
如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。
实现
注解
环境的 "项目" 窗口是一个可重用的 UI 元素。 Vspackage 可以使用 "UI 层次结构" 窗口的实例,使工具窗口与内置 项目窗口 的功能类似。 "UI 层次结构" 窗口的示例用法是服务器资源管理器。
用户界面层次结构窗口是通过在对方法的调用中传递 CLSID_VSUIHIERARCHYWINDOW 来创建的 CreateToolWindow 。 IVsUIHierarchyWindow可以使用 IUnknown::QueryInterface 此调用返回的工具窗口的 VSFPROPID_DocView 对象的接口来访问接口。
如果您必须访问 "UI 层次结构" 窗口可访问的任何服务 (例如,SID_SVsTrackSelectionEx 服务或 SID_SUndoManager 服务) ,则可以 VSFPROPID_SPFrame 从 "UI 层次结构" 窗口的窗口框架中检索属性。 这会返回 IServiceProvider 窗口框架的接口。
具有多个顶级节点的 UI 层次结构窗口需要一种方法来处理包含多个层次结构的选定内容。 这是因为,如果在层次结构中进行选择,则公共父层次结构处理命令。 若要处理此类选择,请执行下列操作之一:
通过将的值设置为,禁止多个选择
grfUIHWFUIHWF_ForceSingleSelect 。SolutionObject通过将的值设置为,使内置的句柄跨层次结构选择grfUIHWFUIHWF_UseSolutionAsHiddenRootHierarchy 。IVsHierarchy通过将的值设置为,将自定义对象指定为隐藏的根层次结构节点
grfUIHWFUIHWF_InitWithHiddenRootHierarchy 。 此根层次结构不能具有任何子级,并且仅用于处理跨多个顶级层次结构所做的选择。 若要指定作为顶级节点的父节点的隐藏根层次结构,请将的值设置grfUIHWF为 UIHWF_InitWithHiddenParentRoot 。