Freigeben über


Systemeigene WPF-APIs mit Unterstützung für das Hosten in Browsern

Das Hosten von WPF-Anwendungen in einem Webbrowser wird von einem Active Document-Server ermöglicht (auch als DocObject bezeichnet), der über den WPF-Host registriert ist. Internet Explorer kann direkt mit einem aktiven Dokument aktiviert und integriert werden. Zum Hosting von XBAPs und Loose XAML-Dokumenten in Mozilla-Browsern stellt WPF ein NPAPI-Plug-In bereit, das eine ähnliche Hostumgebung für den WPF Active Document-Server bereitstellt wie Internet Explorer. Am einfachsten ist das Hosten von XBAPs und XAML-Dokumenten in anderen Browsern und eigenständigen Anwendungen jedoch über das Internet Explorer-Webbrowsersteuerelement. Das Webbrowsersteuerelement stellt die komplexe Active Document-Serverhostumgebung bereit und aktiviert außerdem einen eigenen Host, um diese Umgebung anzupassen und zu erweitern und um direkt mit dem aktuellen Active Document-Objekt zu kommunizieren.

Der WPF Active Document-Server implementiert verschiedene allgemeine Hostingschnittstellen, einschließlich IOleObject, IOleDocument, IOleInPlaceActiveObject, IPersistMoniker, IOleCommandTarget. Beim Hosten im Webbrowsersteuerelement können diese Schnittstellen Abfragen des Objekts sein, das von der IWebBrowser2::Document-Eigenschaft zurückgegeben wird.

IOleCommandTarget

Die IOleCommandTarget-Implementierung des WPF-Active Document-Servers unterstützt zahlreiche navigationsbezogene und browserspezifische Befehle der Standard-OLE-Befehlsgruppe (mit einer NULL-Befehlsgruppen-GUID). Außerdem erkennt sie die benutzerdefinierte Befehlsgruppe CGID_PresentationHost. Zurzeit ist in dieser Gruppe nur ein Befehl definiert.

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

PHCMDID_TABINTO weist den PresentationHost an, den Fokus auf das erste oder letzte fokussierbare Element im Inhalt zu verschieben, abhängig vom Zustand der UMSCHALTTASTE.

In diesem Abschnitt