Компонентное программирование

4 курс

лабораторная работа №3

Компонентная модель 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