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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top