IVsUIHierarchyWindow.Init(IVsUIHierarchy, UInt32, Object) Метод

Определение

Инициализирует специальное использование окна иерархии элементов пользовательского интерфейса.

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

[in] Характеристики окна иерархии ИП. Список значений см. в перечислении __UIHWINFLAGS.

ppunkOut
Object

[out] Указатель на интерфейс IUnknown объекта IVsWindowFrame, содержащего окно иерархии пользовательского интерфейса.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Комментарии

Подпись COM

Из всшелл. IDL:

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

Окно проекта среды — это повторно создаваемый элемент пользовательского интерфейса. Пакеты VSPackage могут использовать экземпляр окна иерархии пользовательского интерфейса для создания окна инструментов, которое работает аналогично встроенному окну проекта. Пример использования окна иерархии пользовательского интерфейса — это Обозреватель сервера.

Окно иерархии пользовательского интерфейса создается путем передачи CLSID_VsUIHierarchyWindow вызова методу CreateToolWindow . IVsUIHierarchyWindowДоступ к интерфейсу можно получить с помощью интерфейса QueryInterface VSFPROPID_DocView объекта окна инструментов, возвращаемого этим вызовом.

Если необходимо получить доступ к любой службе, доступной для окна иерархии пользовательского интерфейса (например, SID_SVsTrackSelectionEx службы или службы SID_SUndoManager), можно извлечь VSFPROPID_SPFrame свойство из рамки окна окна иерархии пользовательского интерфейса. Он возвращает IServiceProvider интерфейс рамки окна.

В окнах иерархии пользовательского интерфейса, имеющих несколько узлов верхнего уровня, требуется способ для управления выбором, включающим несколько иерархий. Это обусловлено тем, что общая родительская иерархия обрабатывает команды, если выделенный фрагмент находится между иерархиями. Для решения таких выборов выполните одно из следующих действий.

  • Запретить выбор нескольких элементов, задав для параметра значение grfUIHWF UIHWF_ForceSingleSelect.

  • Иметь встроенную версию, SolutionObject используемую для управления выбором межиерархических элементов, присвоив параметру значение grfUIHWF UIHWF_UseSolutionAsHiddenRootHierarchy .

  • Укажите пользовательский IVsHierarchy объект в качестве узла скрытой корневой иерархии, задав для параметра значение grfUIHWF UIHWF_InitWithHiddenRootHierarchy . Эта корневая иерархия не может иметь дочерних элементов и использоваться только для управления выделением в нескольких иерархиях верхнего уровня. Чтобы указать скрытую корневую иерархию, которая является родителем узлов верхнего уровня, задайте для параметра значение grfUIHWF UIHWF_InitWithHiddenParentRoot .

Применяется к