Identification des éléments du projet de contrôle DHTML
La plupart du code de contrôle DHTML est exactement comme celui créé pour n’importe quel contrôle ATL. Pour une compréhension de base du code générique, parcourez le didacticiel ATL et lisez les sections Création d’un projet ATL et des principes de base des objets COM ATL.
Un contrôle DHTML est similaire à n’importe quel contrôle ATL, sauf :
Outre les interfaces régulières qu’un contrôle implémente, il implémente une interface supplémentaire utilisée pour communiquer entre le code C++ et l’interface utilisateur HTML. L’interface utilisateur HTML appelle du code C++ à l’aide de cette interface.
Il crée une ressource HTML pour l’interface utilisateur du contrôle.
Il permet d’accéder au modèle objet DHTML via la variable
m_spBrowser
membre, qui est un pointeur intelligent de type IWebBrowser2. Utilisez ce pointeur pour accéder à n’importe quelle partie du modèle objet DHTML.
Le graphique suivant illustre la relation entre votre DLL, le contrôle DHTML, le navigateur web et la ressource HTML.
Remarque
Les noms de ce graphique sont des espaces réservés. Les noms de votre ressource HTML et les interfaces exposées sur votre contrôle sont basés sur les noms que vous leur affectez dans l’Assistant Contrôle ATL.
Dans ce graphique, les éléments sont les suivants :
Ma DLL Créée à l’aide de l’Assistant Projet ATL.
Contrôle DHTML (
m_spBrowser
) Le contrôle DHTML, créé à l’aide de l’Assistant Objet ATL. Ce contrôle accède à l’objet de navigateur Web et à ses méthodes via l’interface de l’objet navigateur Web.IWebBrowser2
Le contrôle lui-même expose les deux interfaces suivantes, en plus des autres interfaces standard requises pour un contrôle.IDHCTL1
Interface exposée par le contrôle à utiliser uniquement par le conteneur.IDHCTLUI1
Interface de répartition pour la communication entre le code C++ et l’interface utilisateur HTML. Le navigateur Web utilise l’interface de répartition du contrôle pour afficher le contrôle. Vous pouvez appeler différentes méthodes de cette interface de répartition à partir de l’interface utilisateur du contrôle en appelantwindow.external
, suivie du nom de la méthode sur cette interface de répartition que vous souhaitez appeler. Vous pouvez accéder àwindow.external
partir d’une balise SCRIPT au sein du code HTML qui compose l’interface utilisateur de ce contrôle. Pour plus d’informations sur l’appel de méthodes externes dans le fichier de ressources, consultez Appel de code C++ à partir de DHTML.
IDR_CTL1 L’ID de ressource de la ressource HTML. Son nom de fichier, dans ce cas, est DHCTL1UI.htm. Le contrôle DHTML utilise une ressource HTML qui contient des balises HTML standard et des commandes de répartition de fenêtre externe que vous pouvez modifier à l’aide de l’éditeur de texte.
Navigateur web Le navigateur web affiche l’interface utilisateur du contrôle, en fonction du code HTML dans la ressource HTML. Un pointeur vers l’interface du
IWebBrowser2
navigateur web est disponible dans le contrôle DHTML pour autoriser l’accès au modèle objet DHTML.
L’Assistant Contrôle ATL génère un contrôle avec du code par défaut dans la ressource HTML et le fichier .cpp. Vous pouvez compiler et exécuter le contrôle comme généré par l’Assistant, puis afficher le contrôle dans le navigateur Web ou le conteneur de test activeX Control. L’image ci-dessous montre le contrôle DHTML ATL par défaut avec trois boutons affichés dans le conteneur de test :
Consultez Création d’un contrôle DHTML ATL pour commencer à créer un contrôle DHTML. Pour plus d’informations sur l’accès au conteneur de test, consultez Propriétés et événements de test avec Test Container.