Шаг 10 - Создаем ActiveX с ATL

Запускайте VC и выбирайте тип проекта ATL COM AppWizard. Имя проекту давайте дадим ATLTest. Нажимайте OK и сразу Finish. Появится окно с информацией о том, что чего-то там сформировано. Ну и ладно. Посмотрите и опять OK. Посмотрите ClassView. Там то как раз и класса нет. Его нужно создать.

Выбирите меню Insert и New ATL Object. В разделе Category выбирите Objects. А разделе Objects нужно выбрать Simple Object. Все теперь нужно нажать Next. Появится новое окно свойств ATL. Здесь мы пока заполним только одно свойство - Short Name. Впишите туда ATLClass. Вы увидите, что другие окна заполняются автоматически. Вобщем-то другие имена можно поменять. Только зачем? Нажимайте OK. И вот теперь в ClassView вы увидите появившийся класс CATLClass. А так же файл IDL c информацией на языке ODL. Я писал недавно про этот файл.

Давайте теперь создадим метод, то есть функцию объекта. Для этого выделите в ClassView пункт IATLClass нажмите правую кнопку мыши и выбирите Add Metod. Появится диалоговое окно. Заполните его как на рисунке внизу.

10_1.gif (3188 b)

И нажмите OK. Вы должны заметить изменения в ClassView. Во-первых, появилось описание метода в IDL файле.

......
interface IATLClass : IDispatch
{
	[id(1), helpstring("method ATLMessage")] HRESULT ATLMessage();
};
......

А также в описании класса CATLClass:

.......
// IATLClass
public:
	STDMETHOD(ATLMessage)();
};
#endif //__ATLCLASS_H_
........

Давайте создадим код для нашей функции

STDMETHODIMP CATLClass::ATLMessage()
{
	MessageBox(0,"My Atl object","Probe",0);

	return S_OK;
}

Теперь проект нужно собрать. Меню Build, далее пункт меню Build ATLTest.dll. При сборке проекта производится регистрация элемента. В окне Build Вы увидите такие записи.

Performing registration
RegSvr32: DllRegisterServer in .\Debug\ATLTest.dll succeeded.

Кроме того в каталоге с проектом создан файл ATLTest.tlb. Он нужен для подключения элемента к программам на VC и VB в дальнейших шагах мы его протестируем и на VC и на VB.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 07.01.2000