API de prise en charge de l'hébergement de navigateur WPF natif
L'hébergement d'applications WPF dans les navigateurs Web est facilité par un serveur de document actif (également appelé DocObject) enregistré hors de l'hôte WPF. Internet Explorer peut s'activer directement et s'intégrer à un document actif. Pour l'hébergement d'applications XBAP et de documents en XAML libre dans les navigateurs Mozilla, WPF propose un plug-in NPAPI qui fournit un environnement d'hébergement semblable au serveur de document actif WPF d'Internet Explorer. Toutefois, la méthode la plus pratique pour héberger des applications XBAP et des documents XAML dans d'autres navigateurs et applications autonomes consiste à utiliser le contrôle Web Browser d'Internet Explorer. Le contrôle Web Browser fournit l'environnement d'hébergement de serveur de document actif complexe. Cependant, il active son propre hôte pour personnaliser et étendre cet environnement et communiquer directement avec l'objet document actif actuel.
Le serveur de document actif de WPF implémente plusieurs interfaces d'hébergement courantes, notamment IOleObject, IOleDocument, IOleInPlaceActiveObject, IPersistMoniker et IOleCommandTarget. Lorsqu'elles sont hébergées dans le contrôle Web Browser, ces interfaces peuvent être des requêtes de l'objet retourné par la propriété IWebBrowser2::Document.
IOleCommandTarget
L'implémentation d'IOleCommandTarget par le serveur de document actif WPF prend en charge les nombreuses commandes de navigation et spécifiques au navigateur du groupe de commandes OLE standard (avec un GUID de groupe de commandes null). De plus, il reconnaît un groupe de commandes personnalisé appelé CGID_PresentationHost. Actuellement, une seule commande est définie dans ce groupe.
DEFINE_GUID(CGID_PresentationHost, 0xd0288c55, 0xd6, 0x4f5e, 0xa8, 0x51, 0x79, 0xde, 0xc5, 0x1b, 0x10, 0xec);
enum PresentationHostCommands {
PHCMDID_TABINTO = 1
};
PHCMDID_TABINTO indique à PresentationHost de basculer le focus sur le premier ou le dernier élément de son contenu pouvant accepter le focus, selon l'état de la touche Maj.