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, содержащего окно иерархии пользовательского интерфейса.
Возвращаемое значение
Если метод завершается успешно, возвращает значение 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 интерфейс рамки окна.
В окнах иерархии пользовательского интерфейса, имеющих несколько узлов верхнего уровня, требуется способ для управления выбором, включающим несколько иерархий. Это обусловлено тем, что общая родительская иерархия обрабатывает команды, если выделенный фрагмент находится между иерархиями. Для решения таких выборов выполните одно из следующих действий.
Запретить выбор нескольких элементов, задав для параметра значение
grfUIHWFUIHWF_ForceSingleSelect.Иметь встроенную версию,
SolutionObjectиспользуемую для управления выбором межиерархических элементов, присвоив параметру значениеgrfUIHWFUIHWF_UseSolutionAsHiddenRootHierarchy .Укажите пользовательский IVsHierarchy объект в качестве узла скрытой корневой иерархии, задав для параметра значение
grfUIHWFUIHWF_InitWithHiddenRootHierarchy . Эта корневая иерархия не может иметь дочерних элементов и использоваться только для управления выделением в нескольких иерархиях верхнего уровня. Чтобы указать скрытую корневую иерархию, которая является родителем узлов верхнего уровня, задайте для параметра значениеgrfUIHWFUIHWF_InitWithHiddenParentRoot .