Navigateur web (api)

Soyez le premier à donner votre avis sur cette source.

Vue 14 064 fois - Téléchargée 2 173 fois

Description

Suite à mon précédent code source (Conteneur Activex), voici un navigateur web utilisant le même Activex (WebBrowser), la même interface (IWebBrowser2) avec, en plus, la gestion des événements grâce à l'interface DWebBrowserEvents2. L'interception des événements est assurée par une petite classe (contenue dans evenem.h) exposant l'interface IDispatch et surtout la méthode Invoke. Cette dernière est appelée par notre instance de l'objet WebBrowser chaque fois qu'un événement survient, comme le début ou la fin de navigation , du téléchargement etc...Le constructeur de cette classe prend, comme seul paramètre, le HWND de notre fenêtre principale. Ainsi, tous les événements seront envoyés puis traités dans la procédure de notre fenêtre sous forme de messages.
Comme vous le voyez, la gestion des événements d'un objet Activex, COM ou OLE n'est pas trop compliquée.
Pour empêcher le lancement d'Internet Explorer, toutes les fenêtres popup, désirées ou non, seront bloquées. Le but de cette limitation est de ne pas compliquer inutilement ce code. A vous de le perfectionner comme vous voulez.
Code compilé sous Visual C/C++ 6 et testé sans problème sur Windows 98, 2000 et XP.

Source / Exemple :


Voir le zip.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Arnaud16022
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2 -
si je comprends bien, tu crées la fenetre et gere les events, et la lib fait le reste?
cs_Urgo
Messages postés
780
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 avril 2009
1 -
Y'a un gros plantage de ton prog sur certains sites.. je sais pas si tu l'as remarqué?
racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7 -
Oui, mais plutot la classe et non la lib. Après avoir obtenu un pointeur sur l'interface DWebBrowserEvents2, on crée une instance de notre classe puis on commence l'interception des événements en appelant la méthode Advise() de l'interface DWebBrowserEvents2. Cette méthode prend en paramètre le pointeur de notre instance de classe. Cette dernière capte alors tous les événements et les transmet à la procédure de notre fenêtre. C'est dans la méthode Invoke que tout se passe. Regarder dans "evenem.h".
racpp
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
7 -
Urgo > tu peux me donner les URLs de ces sites? J'avais fait des tests sur des sites trop chargés, sans rien remarquer.
cs_Urgo
Messages postés
780
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 avril 2009
1 -
Bizarre, cela ne me le fait plus aujourd'hui sur les mêmes sites...
Par contre il plante lorsqu'on clique sur certains liens (genre fenêtre popup) mais ça c'est normal... me trompe-je?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.