Запускайте 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. Появится диалоговое окно. Заполните его как на рисунке внизу.
И нажмите 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.