Как создать ActiveX, который можно использовать в движке Javascript
Знаете ли вы какое-нибудь руководство по созданию объектов MFC ActiveX, которое можно использовать в JScript или VBScript (хост на основе скриптов Windows)?
Я имею в виду OCX, который можно использовать как:
var x= new ActiveXObject("name");
и НЕ это:
<object id="xxx" classid="CLSID:xxxx">
до сих пор все, что я обнаружил, позволяет использовать activex с HTML-тегами, и они не могут инициализироваться с помощью обработчика сценариев.
3 ответа
Что касается начала работы, я настоятельно рекомендую вам изучить Учебное пособие для начинающих по написанию простой библиотеки COM/ATL и его использованию с.NET от ThatsAlok.
Я пробовал несколько различных методов создания объектов ActiveX и нашел ATL C++ одним из моих любимых. Ключевые основы учебного пособия:
- Использование мастера простых объектов Visual Studio ATL
- Наименование интерфейса в C++ (например,
ISimpleCom
) - Выбор progid (например,
SimpleATLcom.SimpleCom
) - Позволяя Visual Studio генерировать как можно больше кода для вас
- Регистрация вашей COM DLL
Некоторые вещи, которые не рассматриваются в этом руководстве:
- Чтобы избежать ошибки сборки проекта PRJ0050, зарегистрируйте COM-библиотеку COM с помощью перенаправления для каждого пользователя, которое поддерживается в Visual Studio 2008 (см. Статью Microsoft MSDN на страницах свойств компоновщика).
- Вызов в JScript / VBScript из Windows Script Host / HTML
Последнее, вы уже знаете, как это сделать, но, для полноты. В JScript это:
var obj = new ActiveXObject("SimpleATLcom.SimpleCom");
И в VBScript это:
Dim obj
Set obj = CreateObject("SimpleATLcom.SimpleCom")
Просто чтобы добавить некоторые дополнительные опции: 1. Старый vb6 был достаточно искусен в создании компонентов ActiveX/COM. 2. Другие языки, такие как Delphi и PowerBasic, также могут легко создавать компоненты. 3. VBScript может быть использован для создания ком-компонентов, которые упакованы в WSC (Windows Script Component). Он содержит ваш класс и код и может использоваться как объект COM. WSC использует внешнюю среду выполнения сценариев для выполнения сценария при вызове через COM. Фактический внутренний код может быть написан на других языках сценариев, таких как jscript или python или ряд других.
FireBreath плагины могут быть использованы таким образом. Он не использует MFC, но вы не указали, почему вам нужно использовать MFC.