Я разрабатываю BHO, в настоящее время в IE11, который заменяет определенные объекты ActiveX в документе путем поиска тега <object>
с определенным CLSID.
Я изучил обработку события OnDocumentComplete
, поиск всех тегов «объект», используя стандартные интерфейсы HTML, и успешно заменил их; Я проверил в DOM Explorer, и там есть новые CLSID.
Теперь у этого подхода есть важный недостаток, который делает его нефункциональным. Когда я получаю событие OnDocumentComplete, браузер уже создает экземпляры DLL, указанные CLSID в документе, что делает новые CLSID, которые я заменил, совершенно бесполезными.
Я думаю, это связано с тем, что загрузка ActiveX происходит сразу после загрузки документа (то есть ReadyState = 2), в то время как я получаю событие OnDocumentComplete с ReadyState = 4.
Кто-нибудь знает, достижима ли такая «замена объекта ActiveX» с использованием стандартных интерфейсов IE? Я использую С++.