Обычно программа
"Hello World" пишется одной из первых, при освоении языка программирования. В
данном случае первым был разработан "движок"
для создания элементов ActiveX в виде
DLL (дополнительно поддерживающий интерфейс утилиты
regsvr32.exe). Специальные пакеты типа
ATL и MFC не
используются.Для демонстрации возможностей
"движка", был создан ActiveX
с ProgID "Hello.World".
Раскладка файлов по директориям:
HelloWorld (actvex.cpp, activex.dll, activex.bat)
|
+-- common (classes.h, spisok.h, functions.h)
|
+-- objects (classfactory.h, object.h, methods.h, connect.h)
|
+-- Test (test.js)
Как сделать новый ActvieX?
- Вы должны изменить GUID и ProgID в файле activex.cpp:
DEFINE_GUID( CLSID_obj, 0x9ACBF10A, 0xECE2, 0x4F01, 0x90,
0x5B, 0x13, 0x84, 0xEC, 0x0F, 0x82, 0x06);
const char *pDescription = "This is Hello World in ActiveX";
const char *PROGID = "Hello.World";
- Вы должны написать собственные функции, реализующие методы и свойства
объекта, в файле methods.h. Для примера:
// HelloWorld(S,I)
HRESULT HelloWorld(VARIANTARG* pArg,
VARIANT FAR* pRes, WORD wFlags, HRESULT hr)
{ if (FAILED(hr)) return hr;
UINT uType = (UINT)pArg[0].n1.n2.n3.lVal;
BSTRtoCHAR* pA = new BSTRtoCHAR(pArg[1].n1.n2.n3.bstrVal);
pRes->n1.n2.vt = VT_I4; // The return value
/* The MessageBox function creates, displays, and operates
a message box. The message box contains an
application-defined message and title, plus any
combination of predefined icons
and push buttons. */
pRes->n1.n2.n3.lVal = MessageBox(NULL, pA->sz,
"Hello World as ActiveX", uType);
delete pA;
return S_OK;}
- Установите соответствие между написанными Вами функциями и именами свойств и
методов нового ActiveX в файле connect.h.
pObj->AddItem("HelloWorld", "SI", HelloWorld);
// ... next
- "HelloWorld" - "Внешнее"
имя метода (свойства) объекта
- "SI" - маска типов для аргументов (S-строка, I-целое, B-булево) -
проверяется при вызове метода объекта (может быть пустой)
- HelloWorld - указатель на Вашу функцию (ее имя)
- Это все - можно компилировать Ваш ActiveX
Как зарегистрировать новый ActiveX на Вашем компьютере?
Перед использованием Вашего ActiveX, информация о нем
должна быть внесена в реестр. Вы можете воспользоваться автоматически
генерируемым интерфейсом для утилиты Regsvr32 (Regsvr32.exe).
- Командная строка для регистрации ActiveX:
- regsvr32.exe activex.dll
- Удалить информацию из реестра:
- regsvr32.exe /u activex.dll
Как проверить работу ActvieX?
Вы можете воспользоваьтся подсистемой Windows -
WSH. Утилита wscript.exe
в системном каталоге %System32% является интерпретатором
скриптов JScript:
wscript.exe test.js
// JScript (javascript) test.js
var activex = new ActiveXObject("Hello.World");
var answer = activex.HelloWorld("Hello World !!!!", 50);
WScript.Echo(answer);
Я использовал компилятор "Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland".
Вы будете использвать мой шаблон?
Да (Закачать)
|