Технология COM в продуктах Microsoft
Специальный курс
1. Обзор С++
Парадигмы программирования. Процедурное, модульное, объектно-ориентированное, обобщенное программирование.
2. Механизмы абстракции
Классы. Эффективные типы, определяемые пользователем. Объекты. Иерархии классов.
3. Компоненты
Преимущество использования компонентов. Требования к компонентам. COM.
4. Интерфейс.
Реализация интерфейса COM. Теория интерфейсов. Таблица виртуальных функций.
5. QueryInterface.
Запрос интерфейса. Правила и соглашения QueryInterface. Работа с новыми версиями компонентов.
6. Подсчет ссылок.
Управление временем жизни. Подсчет ссылок. Оптимизация подсчета ссылок.
7. Динамическая компоновка.
Создание компонента: экспорт функции из DLL, загрузка DLL.
8. HRESULT, GUID, Реестр
HRESULT: поиск и использование HRESULT, определение собственных кодов ошибки; GUID: объявление и определение, сравнение, использование GUID в качестве идентификаторов компонентов, передача GUID по ссылке; Реестр Windows: организация реестра, редактор реестра, саморегистрация, категории компонентов, OleView
9. Фабрика классов.
CoCreateInstance. Фабрики классов. Реализация фабрики классов. Несколько компонент в одной DLL. Выгрузка DLL.
10. Повторная применимость компонентов: включение и агрегирование.
Включение и агрегирование. Реализация включения. Реализация включения. Реализация агрегирования. Агрегирование и включение в реальном мире.
11. Серверы в EXE
Маршалинг. Введение в IDL/MIDL. Реализация локального сервера. Удаленный сервер.
12. Диспетчерские интерфейсы и автоматизация.
Использование IDispatch. Библиотеки типа. Реализация IDispatch.
13. Многопоточность.
Потоки модели COM. Реализация модели разделенных потоков. Реализация модели свободных потоков. Информация о потоковой модели в реестре.
14. Практическое использование COM объектов.
Применение COM объектов в языках программирования Visual C++, Visual Basic 6.0 на примере ADO. Автоматизация в продуктах Word, Excel c использованием VBA.
Литература
- Страуструп Б. Язык программирования С++. 3-е изд. М.: Нев. диалект: Бином, 1999.
- Керниган Б., Ритчи Д. Язык программирования Си. М.: Нев. диалект, 2000.
- Роджерсон Д. Основы COM. 2-е изд. М.: Изд.-торг. дом "Рус. ред." 2000.
- Бокс Д. Сущность технологии COM. М.: Питер, 2001.