- •Межобъектная Связь
- •Ташкент
- •Содержание
- •2. Com модель
- •3. Сложные документы
- •4. РаспределенныйCom
- •Тема 2. Модель компонентных объектов (com)
- •1. Описание сом объектов
- •2. Интерфейсы вCom
- •3. Создание com объектов
- •Тема 3. Пакование и информация типов
- •1. Что такое пакование На что действительно указывает указатель интерфейса
- •2. Информация типов
- •Тема 4. Автоматизация
- •1.Что понимается под автоматизацией
- •2. Дуальный интерфейс
- •Тема 5. Постоянство
- •1. Понимание постоянства
- •2. Структурная память для файлов
- •3. Контроль постоянства объекта
- •Тема 6. Моникеры
- •1. Что такое моникеры?
- •2. Асинхронный моникер
- •Тема 7.ActiveXуправление
- •1. Эволюция ActiveX управления
- •2. Три взгляда наActiveXуправление
- •3. Методы и события вActiveXуправление
- •Тема 8. Однородная передача данных и соединяемые объекты
- •1. Однородная передача данных
- •2. Соединение объектов
- •Тема 9. Распределенный сом
- •1. Создание удаленного объекта
- •2. Использование моникера в распределенномCom
- •3. Средства безопасного доступа для удаленных объектов
- •Тема 10. ActiveX, Internet, и World Wide Web
- •1.ActiveXдокументы
- •2.ActiveXдокументы иWeb
- •Тема 11. Введение в corba
- •1. Знакомство с набором спецификаций omg
- •2. Поддержка Анализа & Проектирования
- •3. Основы объектов
- •Что такое объект?
- •4. Corba Основы взаимодействия
- •5. Что такое orb
- •Список Литературы
- •Приложение а. Глоссарий
3. Создание com объектов
• Создание COM Объектов
-Библиотека COM
• Библиотека COM обеспечивает основные сервисы, которые необходимы объектам и клиентам
• Библиотека COM использует системную регистрацию, чтобы установить необходимый сервер для индивидуального класса
• Объект, созданный с использованием только COM библиотеки, является неинициализированным экземпляром класса
• Если необходимо, клиент может явно инициализировать новый экземпляр объекта
-Создание Единственного объекта
• Клиент может вызвать CoCreateInstance, чтобы создать новый экземпляр объекта
• Клиент определяет CLSID, IID, и тип сервера, который он хочет, чтобы библиотека COM запустила
Рис. 2.5. Создание объекта с CoCreateInstance
• DCOM позволяет создание удаленных объектов
• Механизм COM контролирует, какие клиенты могут начать какие сервисы
-Создание множественных объектов одного класса : Производящий класс
• Производящий класс может создать множественные объекты для одного класса
• CoCreateInstance использует производящий класс, который скрыт от клиента
• Каждый производящий класс поддерживает интерфейс IClassFactory
• IClassFactory2 интерфейс добавляет методы, которые поддерживают лицензирование
• Клиент вызывает CoGetClassObject, чтобы получить указатель на производящий класс
• Клиент может использовать IClassPactory::CreateInstance чтобы создать новый экземпляр объекта
- Эмуляция
• Эмуляция позволяет одному классу играть роль другого
• Эмуляция также позволяет создание генетических компонент
Инициализация COM объектов
Рис. 2.6. Создание объекта с помощью производства класса
• Первый указатель интерфейса, который запрашивает клиент, это часто интерфейс, используемый, чтобы запросить инициализацию
• Повторное использование объектов
• Один COM объект не может использовать другой код через интерфейс
• COM обеспечивает повторное использование или содержанием или объединением
• В обоих механизмах «внешний» объект повторно использует «внутренний» объект
Содержание
• С содержанием внешний объект, проще, клиент внутреннего объекта
• Содержание – просто часто используемое
Объединение
• Хотя это просто, содержание не всегда является наиболее эффективным решением
• С объединением, внешний объект представляет интерфейсы внутреннего объекта как свои собственные
• Так как объединение требует специальную поддержку от внутреннего объекта, не все объекты могут быть объединены
Рис. 2.7. Повторное использование объектов через содержание
Рис. 2.8. Повторное использование объекта путем объединения
• Специальная поддержка необходима, чтобы гарантировать IUnknown методы работают так как ожидалось
• Внешний объект передает внутреннему объекту указатель на интерфейс IUnknown
• Важность COM
• Пока COM сама по себе проста, она позволяет создание мощного, эффективного программного обеспечения
Новые понятия и термины:
GUID (Globally Unique Identifier) глобальный уникальный идентификатор
IID (interface identifier) идентификатор интерфейса
Контрольные вопросы:
1. Модель компонентных объектов
2.Интерфейсы в COM: vtable IUnknown интерфейс
3. Создание COM. Клиент/серверная модель COM
Литература:
1.David Chappell “Understanding Active X and OLE”.Microsoft Press, 1996