IE9 RC падает при вызове IDispatch :: Invoke - PullRequest
2 голосов
/ 14 февраля 2011

У меня есть рабочий код, который работает на IE6,7,8 & 9 Beta , но вылетает на IE9 RC.Я вижу, что веб-страница успешно использует интерфейс ActiveX, но когда я пытаюсь вызвать IDispatch :: Invoke из ActiveX, происходит сбой ActiveX.

Мое приложение создано из CHtmlView (контейнера IE) вебстраница (GUI) и ActiveX (само приложение), я вижу, что веб-страница успешно использует интерфейс ActiveX, но при попытке отправить данные обратно на веб-страницу происходит сбой.

После отладки кода (vs2005 c ++)Я обнаружил, что все функции IDispatch вызывают сбой, но это поведение воспроизводится только с версией RC, наш продукт работает без проблем уже около 3 лет, и теперь каждый клиент, который обновляется до RC, больше не может использовать наш продукт.

Были ли какие-либо изменения, которые могут вызвать такое поведение?по документам он-лайн я ничего не смог найти.Спасибо.

Ответы [ 2 ]

1 голос
/ 06 октября 2013

После утомительной борьбы я нашел ответ (2 года назад).Тогда я закрыл вопросы на форуме IE9, но забыл закрыть эту ветку.

Спасибо @Paul Sweatte за напоминание.

Наш фреймворк работал следующим образом:

  1. Activex и сеть имели ряд известных строк, таких как:«onStart», «onPause» и т. д. *
  2. Сеть регистрирует функцию в движке.
  3. Activex будет вызывать обратный вызов при необходимости

Вторая часть была проблемой, по-видимому, в старых версиях IE, функция javascript eval создавала объекты IDispatch, и вы могли передавать объекты в activex.

В IE9 наряду со многими другими изменениями это тоже изменилось, иeval вернет что-то еще.

Сбой произойдет, когда ActiveX попытается выполнить обратный вызов.Это было ... ОЧЕНЬ сложно отладить.

1 голос
/ 05 октября 2013

IE9RC представлен фильтр ActiveX:

Internet Explorer 9 RC позволяет блокировать элементы управления ActiveX для всех сайты, а затем включите их только для тех сайтов, которым вы доверяете новая опция фильтрации ActiveX.

...