Как узнать, получу ли я HWND при встраивании элемента управления ActiveX в HTML?

У меня есть простой ATL ActiveX Control, реализованный на C ++.

Если я вставлю элемент управления в веб-страницу с чем-то вроде:

   <object id="api"classid="CLSID:<guid here>"height=400
width=800></object>

Я знаю, что могу получить HWND от контроля в m_hWnd если я поставлю m_bWindowOnly = true; в моем конструкторе Coclass. Это работает хорошо.

Если бы я попытался создать экземпляр этого элемента управления ActiveX из Javascript, процесс выглядит так:

var object = new ActiveXObject("registeredControlString");

Но я не получаю HWND, и я не уверен, как я мог бы вставить это в DOM.

Мой вопрос:

В каких ситуациях я получу HWND, на который я могу сослаться с пульта управления?

1

Решение

Вы не получите hwnd, создавая из нового ActiveXObject, так как ваш CComControl :: CreateControlWindow () вызывается только во время активации на месте, а у javascript просто нет системы типов для поддержки интерфейсов COM, необходимых для активации на месте.

Если ваш элемент управления будет использоваться в качестве COM-сервера без пользовательского интерфейса (как здесь в вашем скрипте), разработайте ActiveX для работы без дескриптора окна.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]