Режим расширенной защиты IE 10 и класс создания COM-компонента не зарегистрированы
У меня есть ActiveX (AddOn), который работает под IE10. Он создан с использованием руководящих принципов из Интернета и различных ссылок. Я попытался сделать его совместимым с EPM, используя:
https://msdn.microsoft.com/en-us/library/dn519894(v=vs.85).aspx
- Созданы 32- и 64-битные версии DLL
- Зарегистрированный в папке Program Files
Однако, когда я пытаюсь создать COM-компонент из этого AddOn, я получаю незарегистрированный класс. Мой COM-компонент является ActiveX DLL и создается как INPROC_SERVER
Мой вызов CLSIDFromProgID выполнен успешно, поэтому в этом случае нет проблем с доступом к реестру. Это CoCreateInstance, который вызывает проблему.
hr = CLSIDFromProgID(L"myapp.mycontrol", &cls);
if(SUCCEEDED(hr))
{
hr = CoCreateInstance(cls, NULL, CLSCTX_INPROC_SERVER,
__uuidof(IMyControl), (void**) &m_pMyCtrl);
if(SUCCEEDED(hr))
{
...
}
else {
Log(hr);
}
}
Есть ли способ заставить это работать? Любые указатели на то, что искать?
Обновление 1: после дальнейшего анализа я вижу, что IE ищет InprocHandler32 в мониторе процесса.
Зачем нам нужен обработчик InProcess для ActiveX, который загружается в процессе, я думал, что это только для объектов вне процесса.
Все еще получаю ту же проблему, хотя.
Я пытаюсь создать ActiveX, который загружается IE по ссылке определенного типа MIME, похожей на документы ActiveX, например, MIME Player
Есть ли способ узнать, почему он блокирует? Я получаю эту ошибку, даже если я не смогу создать COM-объект.