- •Межобъектная Связь
- •Ташкент
- •Содержание
- •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
- •Список Литературы
- •Приложение а. Глоссарий
2. Дуальный интерфейс
• Двойные интерфейсы
• Методы в dispinterface проще для клиентов Visual Basic для вызова, чем клиентов С++ предпочитающих vtables
• Двойной интерфейс обеспечивает выгоды, от обоих интерфейсов dispinterfaces и vtable
• Двойной интерфейс - по существу IDISPATCH vtable, который расширен, чтобы включить прямые указатели на методы dispinterface
Рис. 4.4. Двойной интерфейс открывает свои методы и через vtable, и через IDispatch.
Interface ISpellChecker : IDispatch {
import "unknown.idl" ;
import "oaidl.idi";
[propget] HRESULT BritishSpellings([out, retval] boolean *sp) ;
[propput] HRESULT BritishSpellings([in] boolean sp) ;
HRESULT LookUpWordt[in] BSTR word, [out] boolean *found) ;
HRESULT AddToDictionary([in] BSTR word)
}
[uuid(B623E460-1837-HCF-9946-444553 540000) ,
version(1.0)]
library SpellCheckerLib {
importlib("stdole32.tlb") ;
[uuid(B623E460-1837-llCF-9946-444553540000)],
coclass CoSpellChecker {
interface ISpellChecker
}
}
Рис. 4.5. Иллюстрация удаленной автоматизации
• Все двойные интерфейсы наследуются от IDispatch
• DISPID могут быть назначены автоматически
• Обычно определяются новые интерфейсы как двойные
• Удаленная автоматизация
• Удаленная автоматизация позволяет методам в dispinterface и двойные интерфейсы, которые могут быть вызваны через сеть
• Удаленная автоматизация это не тоже самое что DCOM
• Удаленная автоматизация использует RPC между proxy и stub
• Все вызовы методов проходят через proxy и stub на серверной машине, вызывающей
менеджера автоматизации
• Автоматизация сегодня
• Автоматизация сейчас означает программируемость, не просто использование IDispatch и dispinterfaces
Новые понятия и термины:
Создание программируемых приложения позволяет другому программному обеспечению, также как и людям, использовать его сервисы. Обеспечение этой программируемости, использующей COM называется Автоматизацией
Контрольные вопросы:
1.Что понимается под автоматизацией
2. Взгляды на автоматизацию: пользовательский, разработчика ПО
3.Дуальный интерфейс
Литература:
1.David Chappell “Understanding Active X and OLE”.Microsoft Press, 1996
Тема 5. Постоянство
План:
1. Понимание постоянства
2. Структурная память для файлов
3. Контроль и постоянство объекта
1. Понимание постоянства
• Постоянные данные объекта - информация о состоянии объекта, которая сохранена между созданиями экземпляра объекта
• Постоянный сервис позволяет объекту сохранять и загружать свои постоянные данные
•Клиент объекта обычно контролирует, когда постоянные данные объекта загружаются и сохраняются
• Структурная память это постоянный сервис, основанный на COM
•Интерфейсы IPersist* позволяют клиентам контролировать постоянство объекта
2. Структурная память для файлов
• Структурная память
• Объект COM может сохранить свои постоянные данные многими способами
•Структурная память позволяет множественные объекты COM, чтобы сохранить данные в одном файле.
• Приложениям, создающим сложные документы, также необходимо разделять файл
• Структурная память – это важный постоянный сервис в мире COM
Память и потоки
• В структурной памяти, один дисковый файл становится сложным файлом, состоящим из памяти и потоков
• Структурная Память по существу создает иерархическую файловую систему внутри каждого сложного файла
• Каждой компоненте, использующей составной файл, назначен ее собственной памяти и/или потоку
•Потоки и только потоки байтов с не системно определенной внутренней структурой
• Каждая память и поток доступны через интерфейсы IStorage и IStream
• Владелец памяти может свободно назначать названия потокам и памяти, которые он содержит содержит
• Имя корня памяти – это тоже самое что название файла
• Названия, начинающиеся с определенных символов зарезервированы для использования другим программным обеспечением
• Сложные файлы обычно содержат потоки с итоговой информацией
Рис. 5.1. Дисковый файл , содержащий память и потоки
Рис 5.2. COM объект, использующий память и два потока