- •Межобъектная Связь
- •Ташкент
- •Содержание
- •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
- •Список Литературы
- •Приложение а. Глоссарий
Тема 4. Автоматизация
План:
1.Что понимается под автоматизацией
2. Дуальный интерфейс
1.Что понимается под автоматизацией
• Создание программируемых приложения позволяет другому программному обеспечению, также как и людям, использовать его сервисы.
• Макро язык приложения делает это, но только ограниченным способом
• Что требуется - это стандартный способ сделать любое приложение программируемым
• Обеспечение этой программируемости, использующей COM называется Автоматизацией
• Точка зрения пользователя на Автоматизацию
• Автоматизация широко поддерживается сегодня
•С Автоматизацией, Вы можете записывать программы, которые автоматизируют повторные задачи
• Автоматизация может также использоваться, чтобы обратиться к определенным функциям, обеспечиваемыми приложением
• Программы, которые управляют другими приложения иногда называются скриптами
• Обеспечение программируемости
•Методы в vtable сложны, чтобы вызвать их из Visual Basic
Рис. 4.1. Автоматизация создания ежемесячного сообщения.
• IDispatch and Dispinterfaces
• IDispatch был первоначально определен, чтобы позволить приложениям быть программируемым из Visual Basic
• Через одиночный метод IDispatch::Invoke, клиент может вызывать любое число методов
• Dispinterface это группа методов которая может быть вызвана с использованием IDispatch: :Invoke
• Используя IDispatch, программа Visual Basic может легко вызывать методы в Dispinterface
• Программы на других языках типа C++ могут также вызывать методы, использующие IDispatch
• Большинство приложений сегодня программируемые, с
использованием IDispatch и одной или более dispinterfaces
- Клиенты и Серверы
•ActiveX компоненты, действующие как серверы, были первоначально известны как серверы автоматизации
Рис. 4.2. Вызов метода в dispinterface с использованием IDispatch: :Invoke
• ActiveX компоненты, действующие как клиенты были первоначально известен как контролеры автоматизации
• Приложения могут использовать COM объекты, чтобы раскрыть их функции другому программному обеспечению
- Описывая Dispinterface
• Типы параметра, позволенные в методах dispinterface более простые, чем когда они позволены в методах интерфейса vtable
• Методы Dispinterface могут быть определены чтобы явно получить и установить свойства
• Как интерфейсы vtable, интерфейсы dispinterface могут быть определены в IDL
- Dispinterface и Marshaling
• Интерфейс Vtable может полагаться на proxy и stub для marshaling (выстраивание в определенном порядке)
• dispinterface не требует свой собственный proxy и stub
• Параметры для метода dispinterface запакованы в вариант
• Dispinterface позволяет позднее связывание, даже если никакая библиотека типов не доступна
- Пример Visual Basic
• вызов методов dispinterface из Visual Basic легкий
Рис 4.3. Приложения обычно обеспечивают программируемость путем выполнения объектов, которые поддерживают IDispatch
Sub SpellCheckO
Dim Obj As Object
Set Obj = CreateObject("Excel.Application")
Word = InputBox("Enter Word")
If Object.CheckSpelling(Word) Then
MsgBox ("Valid Word")
Else
MsgBox ("Word not found")
End If End Sub
• Visual Basic скрывает все детали
• ProgID это читаемый для людей синоним CLSID
• Документация приложения говорит программистам., какие методы приложение открывает
• Автоматизированные клиенты обычно полагаются на библиотеку типов, чтобы изучить детали о методах объекта
- Интерфейс IDispatch
• Методы : Invoke, GetIDsOfNames, GetTypeInfo, GetTypeInfoCount
- Поддержка множественных интерфейсов Dispinterface как одного объекта
• Как и другие интерфейсы vtable, IDispatch имеет идентификатор интерфейса (IID)
• Объект может позволить доступ к более, чем к одному dispinterface через Idispatch
• Клиент может вызвать методы в dispinterface по умолчанию или явно запрашивает указатель на другой интерфейс