Да! Вы можете генерировать события в C ++ / ActiveX land, что заставляет код JavaScript запускать функцию обработчика событий. Мне даже удалось создать целый невидимый элемент управления ActiveX (такого же цвета, что и фон страницы) без кнопок или визуальной обратной связи, которые выполняли весь его графический интерфейс через JavaScript и CSS.
редактировать: совет Фрэнка прав. Вот ссылка на сценарии событий.
Моя стратегия состояла в том, чтобы вызывать функцию C ++ под названием MyUpdate (которая реализует IConnectionPoint), когда я хотел принудительно обновить обновления в браузере.
(Кроме того, я позаботился о том, чтобы перекачивать сообщения Windows в методе Fire_MyUpdate, потому что иногда код JavaScript возвращался в C ++, вызывая методы элемента управления ActiveX; это позволяет избежать зависания браузера и гарантирует, что графический интерфейс JavaScript остается отзывчивым, например, для кнопки отмены.)
На стороне браузера в коде JavaScript есть глобальная переменная, ссылающаяся на объект, затем "::", за которым следует имя метода:
function Uploader::MyUpdate()
{
// ... code to fetch the current state of various
// properties from the Uploader object and do something with it
// for example check Uploader.IsActive and show or hide an HTML div
}