WPF のブラウザーのホスト処理をサポートするネイティブ API

Web ブラウザーでの WPF アプリケーションのホスティングは、WPF ホストの外部に登録されている Active Document サーバー (DocObject とも呼ばれます) によって容易に行うことができます。 Internet Explorer では、アクティブ ドキュメントを直接アクティブ化し、統合できます。 Mozilla ブラウザーで XBAP および Loose XAML ドキュメントをホストするために、WPF には NPAPI プラグインが用意されています。これにより、Internet Explorer と同様のホスト環境が WPF Active Document サーバーに提供されます。 ただし、他のブラウザーやスタンドアロン アプリケーションで XBAP および XAML ドキュメントをホストする最も簡単で実用的な方法は、Internet Explorer Web ブラウザー コントロールを使用することです。 Web ブラウザー コントロールでは、複雑な Active Document サーバー ホスティング環境が提供されますが、独自のホストによってその環境をカスタマイズおよび拡張し、現在アクティブなドキュメント オブジェクトと直接通信できるようになります。

警告

XBAP が動作するには、インターネット エクスプローラーや Firefox などの従来のブラウザーが必要です。 これらの古いブラウザー バージョンは、通常、Windows 10 や Windows 11 ではサポートされていません。 最新のブラウザーでは、セキュリティ リスクがあるため XBAP アプリに必要なテクノロジがサポートされなくなりました。 XBAP を有効にするプラグインはサポートされなくなりました。

WPF Active Document サーバーには、IOleObjectIOleDocumentIOleInPlaceActiveObjectIPersistMonikerIOleCommandTarget など、いくつかの一般的なホスティング インターフェイスが実装されています。 Web ブラウザー コントロール内にホストされている場合、これらのインターフェイスは、IWebBrowser2::Document プロパティによって返されるオブジェクトからのクエリにすることができます。

IOleCommandTarget

WPF Active Document サーバーの IOleCommandTarget の実装では、標準の OLE コマンド グループ (null コマンド グループ GUID を持つ) のナビゲーション関連およびブラウザー固有の多くのコマンドがサポートされています。 また、CGID_PresentationHost という名前のカスタム コマンド グループも認識されます。 現在、このグループ内に定義されているコマンドは 1 つだけです。

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

PHCMDID_TABINTO では、Shift キーの状態に応じて、コンテンツ内の最初または最後にフォーカスできる要素にフォーカスを切り替えるよう PresentationHost に指示されます。

このセクションの内容

IEnumRAWINPUTDEVICE
IWpfHostSupport