OVH Cloud OVH Cloud

VC++ 6.0 / IE 5.5 / DHTML

1 réponse
Avatar
Fred S
Bonjour,

j'aimerais pouvoir appeler des fonctions C++ depuis des pages html,
j'ai donc regardé dans l'aide MSDN de Visual C++ 6.0 comment ca
se danse... J'ai trouvé dans l'index, à l'entrée DHTML la rubrique:
calling C++ code from (ATL)
Et puis j'ai suivi tout betement l'exemple proposé dans la section
create a DHTML control
Tout se passe comme il est écrit sauf une chose, lorsque je clique
sur les boutons de l'exemple ('red', 'green', ...) mon navigateur
m'envoie des erreurs de scripts Internet Explorer, l'erreur précise
est "cet objet ne gère pas cette propriété ou cette méthode"
je n'arrive donc pas à obtenir le changement de couleur de fond prévu
par l'aide
Je précise que j'utilise Internet Explorer 5.5 et que j'ai activé tout ce
qui est activable dans l'onglet Sécurité des Options Internet.

Si quelqu'un a la gentillesse de tester si ca marche chez lui, voire de
m'expliquer pourquoi ca ne marche pas chez moi...

Merci d'avance.

1 réponse

Avatar
Christian
Sous VC6 c'est assez lourd si vous n'avez pas l'habitude.

Tout cela suit la norme COM où les "interfaces" sont interrogés avant d'être
utilisés.

Concrètement il faut "implémenter" dans le programme hôte C++ une classe
représentant l'interface de nom "IDocHostUIHandler" qui répondra à la
méthode "GetExternal()".

Attention cet interface IDocHostUIHandler est **sur l'hôte** pour que "IE
appelle hôte" et non sur l'objet IE pour le "hôte appelle IE" classique
qu'implémente VC6 automatiquement pour un ActiveX.

Il y a un exemple d'utilisation de "IDocHostUIHandler" pour le "disable
click droit" dans la KB 236312 avec utilisation en MFC.

Dans les exemples sur MSDN sur le mot clé IDocHostUIHandler. Attention à ne
pas prendre ceux prévu pour VC7 (NET) qui ont été mieux pris en charge on
dirait car en VC6 c'est abscon.

Bon courage !