Дональд Бокс Сущность технологии СОМ. Библиотека программиста Предисловие Чарли Киндела Предисловие Грэйди Буча От автора Благодарности От издательства Глава 1. СОМ как улучшенный C++ Распространение программного обеспечения и язык С++ Динамическая компоновка и С++ C++ и мобильность Инкапсуляция и С++ Отделение интерфейса от реализации Абстрактные базы как двоичные интерфейсы Полиморфизм на этапе выполнения Расширяемость объекта Управление ресурсами Где мы находимся? Глава 2. Интерфейсы Снова об интерфейсах и реализациях IDL Методы и их результаты Интерфейсы и IDL Интерфейс IUnknown Управление ресурсами и IUnknown Приведение типов и IUnknown Реализация IUnknown Использование указателей интерфейса СОМ Оптимизация QueryInterface Типы данных Атрибуты и свойства Исключения Где мы находимся? Глава 3. Классы Снова об интерфейсе и реализации Объекты классов Активация Использование SCM Классы и серверы Обобщения Оптимизации Снова интерфейс и реализация Моникеры и композиция Моникеры и сохраняемость Время жизни сервера Классы и IDL Эмуляция классов Категории компонентов Где мы находимся? Глава 4. Объекты Снова IUnknown QueryInterface симметрична QueryInterface транзитивна QueryInterface рефлективна Объекты имеют статический тип Единственность и идентификация QueryInterface и IUnknown Множественные интерфейсы и имена методов Динамическая композиция Двоичная композиция Включение Где мы находимся? Глава 5. Апартаменты Снова интерфейс и реализация Объекты, интерфейсы и апартаменты Межапартаментный доступ Вспомогательные средства для внутрипроцессного маршалинга Архитектура стандартного маршалинга Реализация интерфейсных маршалеров Стандартный маршалинг, потоки и протоколы Управление жизненным циклом и маршалинг Специальный маршалинг Маршалер свободной поточной обработки (FreeThreaded Marshaler) Где мы находимся? Глава 6. Приложения Подводные камни внутрипроцессной активации Активация и SCM Снова о времени жизни сервера Снова о времени жизни сервера Идентификаторы приложений COM и защита Программируемая защита Контроль доступа Управление маркерами Где мы находимся? Разное Основы указателей Указатели и память Массивы Управление потоками данных Динамический вызов в сравнении со статическим Двунаправленные интерфейсные контракты Совмещение имен в IDL Асинхронные методы Где мы находимся? Проиложение А. Эволюция объектов Приложение Б. Избранный код
Дональд Бокс Сущность технологии СОМ. Библиотека программиста Посвящается Юдит С., которая помогла мне одолеть одну вещь, более устрашающую, чем СОМ, и сделала возможной написание этой книги, и Барбаре, которая оставалась со мной достаточно долго для того, чтобы увидеть, чем все это кончилось.