Как создать 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

Некоторые вещи, которые не рассматриваются в этом руководстве:

Последнее, вы уже знаете, как это сделать, но, для полноты. В 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.

Другие вопросы по тегам