Puis-je utiliser c ++ pour traverser DOM de C # BHO?
-
27-09-2019 - |
Question
J'écris un Browser Helper Object (BHO) pour Internet Explorer en C #!
Je veux rechercher des nœuds de texte dans les DOM, ce qui me oblige à traverser l'ensemble arbre DOM si je veux faire la différence entre les nœuds de texte et d'autres types de nœuds. C'est censé être beaucoup de temps en C #, mais devrait être presque instantanious en C ++ (?).
Y at-il un moyen de faire la traversée en c ++ au lieu? Une dll que je peux appeler à partir de C # peut-être, en utilisant DllImport? Est-il facile de passer le HTMLDocument à mon exposé à l'extérieur c ++ - méthode
D'autres idées?
Vive!
La solution
Où avez-vous obtenu le « soi-disant » de? La plupart du temps sera consacré dans le code qui implémente les DOM. Ce qui a été écrit en C ++ par Microsoft.
Marshal.GetIUnknownForObject () vous obtient un pointeur d'interface brute que vous pouvez passer en code natif. Il doit pointer pour que QI IHTMLDocument2 et à partir de là.
Autres conseils
Ceci est censé être beaucoup de temps en C #,
Ceci est tout simplement faux.
La plupart sera passé à attendre le code HTML pour arriver le temps de l'utilisateur au niveau du navigateur, et pour le navigateur pour dessiner sur l'écran. Par rapport à cela, la marche du DOM (dans toutes les langues) est un jeu d'enfant.