Компонентное программирование
4 курс
Компонентная модель COM. Разработка внутрипроцессного COM-сервера с использованием библиотеки ATL
Цель работы:
1) изучение архитектуры библиотеки ATL [3];
2) получение практических навыков в создании COM сервера на основе ATL.
Ход работы:
1) с использованием AppWizard Visual Studio создать проект ATL, изучить структуру проекта (файлы с расширениями DEF, RC, CPP, IDL, реализацию методов Dllxxx);
2) добавить в контейнер DLL компонент ATL, который реализует произвольный интерфейс (реализация методов интерфейса содержит вызовы MessageBox с отображением названия метода и значений его параметров), при создании и уничтожении компонента выводятся соответствующие сообщения;
3) реализовать клиент разработанного сервера, вызвать все методы интерфейса, убедиться в получении MessageBox от СОМ-сервера;
Содержание отчета:
1) Диаграмма классов реализации компонента ATL;
Контрольные вопросы:
1) Интерфейс, кокласс, COM клиент, COM сервер
2) DLL, DllMain, DEF
3) внутрипроцессный COM-сервер, DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer, регистрация сервера
4) описание интерфейса IDL, компилятор MIDL, библиотека типов TLB
5) Представитель (proxy)-заглушка (stub)
6) Работа мастеров Visual Studio в создании СОМ-сервера
7) Базовые классы ATL
Литература:
1) Эндрю Трельсен. Модель COM и применение ATL 3.0, Мастер, BHV,:2005
2) Роджерсон. Основы COM
3) Таваре, ATL 8. Внутренняя структура и применение, М, Вильямс, 2007 http://books. google. /books? id=XpWQhzRl3HcC&pg=PT28&lpg=PT28&dq=ATL+COM&source=bl&ots=PYvJJtgGNg&sig=nL5jeemtKG-HlnPSRFaOHelZ5kM&hl=ru&ei=6DcMS4ivGZqsmwOf95yQBA&sa=X&oi=book_result&ct=result&resnum=10&ved=0CB4Q6AEwCTgU#v=onepage&q=&f=false


