Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интересности по COM.doc
Скачиваний:
36
Добавлен:
28.06.2014
Размер:
7.48 Mб
Скачать

Тема 8. Однородная передача данных и соединяемые объекты

План

1. Однородная передача данных

2. Соединение объектов

1. Однородная передача данных

• Традиционно, имелось много различных способов перемещения данных между приложениями

• Однородная передача данных обеспечивает единственную схему для перемещения данных между приложениями

• Технология соединяемых объектов позволяет объектам отправлять события своим клиентам

Однородная передача данных

• Однородная передача данных зависит от IDataObject

-Объекты данных

• Объект выполняющий IDataObject известный как объект данных

• IDataObject позволяет доступ к данным из любого источника

• Структура FORMATETC описывает пересылаемые данные

• Структура STGMEDIUM описывает где данные хранятся

• Используя методы IDataObject, объект может читать данные, записывать данные и выполнять другие задачи, связанные с пересылкой данных

• “Перетащить и бросить” позволяет пользователям легко перемещать данные между приложениями

Рис. 8.1. Через IDataObject клиент имеет доступ к данным из многих источников

• “Перетащить и бросить” передает указатель IDataObject

  • Уведомление

• Объект может информировать своего клиента относительно изменений к данным через уведомление

• Объект данных может отправить уведомление своему клиенту через методы в IAdviseSink

• Вызов метода OnDataChange информирует клиента о изменениях в данных

• Потребитель вызывает IDataObject: :Dadvise, чтобы установить связь с источником

• Потребитель вызывает IDataObject: :Dunadvise, чтобы прервать связь с источником

•IAdviseSink полезен только в специфических настройках

2. Соединение объектов

Соединяемые объекты

• Объектам иногда необходимо вызывать методы их клиентов

• Соединяемые объекты обеспечивают генетический способ, чтобы установить двустороннюю связь между объектом и клиентом

Рис.8.2. Использование IAdviseSink с IDataObject.

-Соединяемые точки и приемники

• Объект, который поддерживает выходящий интерфейс, знает как действовать как клиент для этого интерфейса

• Соединяемый объект должен поддерживать IConnectionPointContainer

• Соединяемый объект может вызывать методы в несколькие различные приемники

-Интерфейс для соединяемых объектов

• Клиент должен послать указатели соединяемого объекта приемнику клиента для исходящего интерфейса

• IConnectionPointContainer – простой интерфейс, содержащий только два метода

• IConnectionPointContainer позволяет клиенту узнать клиенту о точках соединения объекта

• Методы в IConnectionPoint используются, чтобы установить и удалить соединения

• Точки соединения могут быть представлены как обобщенная версия как

IDataObject и IAdviseSink обеспечивают уведомление

- Будущее соединяемых объектов

Рис.8.3. Соединяемый объект, его точки соединения и приемники клиента

Рис. 8.4. Установка и использование соединения.

Новые понятия и термины:

  • Технология соединяемых объектов позволяет объектам отправлять события их клиентам

  • Однородная передача данных обеспечивает единую схему для перемещения данных между приложениями

Контрольные вопросы:

1. Что понимается под однородной передачей данных?

2. Соединение объектов

Литература:

1.David Chappell “Understanding Active X and OLE”.Microsoft Press, 1996