Question

J'ai un code de travail qui travaille sur IE6,7,8 & 9 bêta mais acticule sur IE9 RC. Je peux voir que la page Web utilise l'interface d'ActiveX avec succès, mais lorsque j'essaie d'appeler IDISPATCH :: Invoquez à partir de l'ActiveX, l'ActiveX se bloque.

Mon application est construite à partir d'un CHTMLView (c.-à-d. Conteneur) une page Web (GUI) et d'ActiveX (l'application elle-même), je vois que la page Web utilise l'interface d'ActiveX avec succès, mais lorsque j'essaie d'envoyer des données à la page Web ICrash.

Après avoir débogué le code (VS2005 C ++), j'ai constaté que toutes les fonctions Idispatch provoquent un crash, mais ce comportement ne se reproduit que par la version RC, notre produit est déjà en cours d'exécution depuis 3 ans sans problème et maintenant chaque client qui mises à niveauau RC ne peut plus utiliser notre produit.

Y a-t-il des changements pouvant causer un tel comportement?Selon les documentations en ligne, je n'ai rien pu trouver. Merci.

Était-ce utile?

La solution 2

Après la lutte ennuyeuse, j'ai trouvé la réponse (il y a 2 ans). À l'époque, j'ai fermé les questions sur le forum IE9 mais j'ai oublié de fermer ce fil.

Merci @Paul Swewey pour me le rappeler.

Notre cadre travaillé comme suit:

  1. L'ActiveX et le Web avaient un ensemble de chaînes connues telles que: "Onstart", "Onpause" etc ...
  2. Le Web enregistre la fonction dans le moteur.
  3. L'ActiveX appellerait le rappel lorsque cela est nécessaire

    La deuxième partie était le problème, apparemment dans d'anciennes versions IE, la fonction JavaScript Eval créerait des objets IDISPatch et vous pouvez transmettre les objets sur ActiveX.

    Dans IE9, ainsi que de nombreux autres changements, cela a également changé, et EVAL retournerait quelque chose d'autre.

    Le béguin se produirait lorsque l'ActiveX a essayé d'exécuter le rappel. C'était ... très difficile de déboguer.

Autres conseils

ie9rc introduit le filtrage ActiveX:

Internet Explorer 9 RC vous permet de bloquer les contrôles ActiveX pour tous sites, puis les éteignez pour seuls les sites que vous avez confiance en la nouvelle option de filtrage ActiveX.

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