Поделиться через


Интерфейсы API для поддержки размещения в собственном браузере WPF

Размещение приложений WPF в веб-браузерах упрощается сервером активных документов (также известным как DocObject), зарегистрированным на узле WPF. Internet Explorer может напрямую активировать и интегрировать активный документ. Для размещения XBAP и свободных документов XAML в браузерах Mozilla WPF предоставляет подключаемый модуль NPAPI, который в свою очередь предоставляет аналогичную среду размещения для сервера активных документов WPF, как и Internet Explorer. Однако самый простой практический способ размещения XBAP узлов и документов XAML в других браузерах и автономных приложениях — через элемент управления "Веб-браузер Internet Explorer". Элемент управления "Веб-браузер" предоставляет сложную среду размещения сервера Active Document, но позволяет собственному узлу настраивать и расширять среду и взаимодействовать напрямую с текущим объектом «Активный документ».

Предупреждение

Для работы XBAPs требуются устаревшие браузеры, такие как интернет-Обозреватель и Firefox. Эти старые версии браузера обычно не поддерживаются в Windows 10 и Windows 11. Современные браузеры больше не поддерживают технологию, необходимую для приложений XBAP из-за рисков безопасности. Подключаемые модули, поддерживающие XBAP, больше не поддерживаются.

Сервер активных документов WPF реализует несколько общих интерфейсов размещения, включая IOleObject, IOleDocument, IOleInPlaceActiveObject, IPersistMoniker, IOleCommandTarget. При размещении в элементе управления "Веб-браузер" эти интерфейсы могут быть запросами из объекта, возвращаемого свойством IWebBrowser2::Document.

IOleCommandTarget

Реализация сервера активных документов WPF iOleCommandTarget поддерживает многочисленные команды, связанные с навигацией и браузером стандартной группы команд OLE (с GUID группы команд NULL). Кроме того, она распознает пользовательскую группу команд с именем CGID_PresentationHost. В настоящее время в этой группе определена только одна команда.

DEFINE_GUID(CGID_PresentationHost, 0xd0288c55, 0xd6, 0x4f5e, 0xa8, 0x51, 0x79, 0xde, 0xc5, 0x1b, 0x10, 0xec);  
enum PresentationHostCommands {
   PHCMDID_TABINTO = 1
};  

PHCMDID_TABINTO указывает PresentationHost, чтобы переключить фокус на первый или последний фокусируемый элемент в его содержимом в зависимости от состояния клавиши SHIFT.

В этом разделе

IEnumRAWINPUTDEVICE
IWpfHostSupport