Операционные системы. Учебное пособие. Марапулец Ю.В. - 212 стр.

UptoLike

Составители: 

Для некоторых типов данных, таких как AVI- или WAV-файлы, представление
данных на экране имеет смысл только в виде пакета. По умолчанию значок пакета пере-
дается из программы, в которой были созданы соответствующие данные.
Когда объект попадает в документ, клиент обеспечивает способы его активизации.
Обычно активизация осуществляется двойным щелчком на объекте или его значке.
Так, например, при редактирования изображения в документе Microsoft Word.
OLE-библиотеки обеспечивают непосредственное (т.е. непосредственно в составном до-
кументе) редактирование изображения с помощью программы Paint. Для этого в меню
Edit появляется подменю Bitmap Image Object с тремя командами: Edit, Open и Con-
vert, которые передаются программой Paint. Для редактирования изображения с помо-
щью программы Paint вызывается команда Edit, являющаяся основной командой. При
этом в окне Word появляются меню, палитра и панели инструментов программы Paint,
что позволяет редактировать изображение, не покидая документа. При выборе команды
Open происходит открытие программы Paint, в которую загружается внедренный доку-
мент. Внесенные изменения отобразятся в документе Word при выходе из программы
Paint, что послужит сигналом для обновления составного документа.
Составные документы можно передавать от одного пользователя к другому и чи-
тать на разных компьютерах с помощью одной и той же программы. Если в новой сис-
теме отсутствуют некоторые серверы, объекты все равно отображаются правильно, по-
скольку OLE-библиотеки самостоятельно обрабатывают стандартные форматы буфера
обмена, например растровые изображения или метафайлы. Однако активизировать объ-
екты без вызова сервера невозможно. Например, вы ничего не сможете сделать с WAV-
пакетами без программы-проигрывателя.
Может показаться, что два разных механизма встраивания накладывают противо-
речивые требования на объекты данных. Чтобы объект отображался в любом приложе-
нии, независимо от присутствия в системе исходной программы-сервера, объект должен
содержать данные в некоем общем, легко распознаваемом формате, например в формате
метафайла или растрового изображения.
С другой стороны, механизм OLE позволяет пользователю продолжить редактиро-
вание объекта даже после того, как объект вставлен в новый документ. Чтобы сервер
мог редактировать объекты, они должны содержать данные в том формате, который ис-
пользуется для внутреннего представления объектов на сервере. Например, Excel не
сможет продолжить редактирование ячеек электронной таблицы, которые были преоб-
разованы в формат метафайла, но мало какая из программ-клиентов будет понимать
внутренний формат данных Excel так хорошо, что отобразит электронную таблицу в
системе, где Excel не установлен.
Решение этой проблемы заключается в предоставлении двух экземпляров данных
для каждого OLE-объекта. Чуть позже вы увидите, как эта задача реализуется средства-
ми сервера, но вкратце можно сказать, что почти каждый OLE-объект содержит данные
в собственном (платформно-зависимом) формате, в том виде, в котором эти данные бы-
ли созданы сервером, а также в одном из нескольких стандартных форматов представ-
ления - обычно в виде метафайла, - которые могут отображаться любыми программами-
клиентами.
Технология OLE организована с помощью функций высокого уровня, реализую-
щих низкоуровневые процессы совместного использования данных. OLE-функции раз-
мещены в трех DLL-модулях. Библиотека OleCli32.DLL содержит все функции, которые
используются OLE-клиентами, а библиотека OleSvr32.DLL содержит все функции, ко-
торые используются OLE-серверами. В технологии OLE 1.0 эти библиотеки обменива-
ются данными и командами с помощью DDE-сообщений. Третья библиотека,
Shell32.DLL, поддерживает базу данных серверов и типов данных и обеспечивает пра-
вильную обработку OLE-запросов.
214
      Для некоторых типов данных, таких как AVI- или WAV-файлы, представление
данных на экране имеет смысл только в виде пакета. По умолчанию значок пакета пере-
дается из программы, в которой были созданы соответствующие данные.
      Когда объект попадает в документ, клиент обеспечивает способы его активизации.
Обычно активизация осуществляется двойным щелчком на объекте или его значке.
      Так, например, при редактирования изображения в документе Microsoft Word.
OLE-библиотеки обеспечивают непосредственное (т.е. непосредственно в составном до-
кументе) редактирование изображения с помощью программы Paint. Для этого в меню
Edit появляется подменю Bitmap Image Object с тремя командами: Edit, Open и Con-
vert, которые передаются программой Paint. Для редактирования изображения с помо-
щью программы Paint вызывается команда Edit, являющаяся основной командой. При
этом в окне Word появляются меню, палитра и панели инструментов программы Paint,
что позволяет редактировать изображение, не покидая документа. При выборе команды
Open происходит открытие программы Paint, в которую загружается внедренный доку-
мент. Внесенные изменения отобразятся в документе Word при выходе из программы
Paint, что послужит сигналом для обновления составного документа.
      Составные документы можно передавать от одного пользователя к другому и чи-
тать на разных компьютерах с помощью одной и той же программы. Если в новой сис-
теме отсутствуют некоторые серверы, объекты все равно отображаются правильно, по-
скольку OLE-библиотеки самостоятельно обрабатывают стандартные форматы буфера
обмена, например растровые изображения или метафайлы. Однако активизировать объ-
екты без вызова сервера невозможно. Например, вы ничего не сможете сделать с WAV-
пакетами без программы-проигрывателя.
      Может показаться, что два разных механизма встраивания накладывают противо-
речивые требования на объекты данных. Чтобы объект отображался в любом приложе-
нии, независимо от присутствия в системе исходной программы-сервера, объект должен
содержать данные в некоем общем, легко распознаваемом формате, например в формате
метафайла или растрового изображения.
      С другой стороны, механизм OLE позволяет пользователю продолжить редактиро-
вание объекта даже после того, как объект вставлен в новый документ. Чтобы сервер
мог редактировать объекты, они должны содержать данные в том формате, который ис-
пользуется для внутреннего представления объектов на сервере. Например, Excel не
сможет продолжить редактирование ячеек электронной таблицы, которые были преоб-
разованы в формат метафайла, но мало какая из программ-клиентов будет понимать
внутренний формат данных Excel так хорошо, что отобразит электронную таблицу в
системе, где Excel не установлен.
      Решение этой проблемы заключается в предоставлении двух экземпляров данных
для каждого OLE-объекта. Чуть позже вы увидите, как эта задача реализуется средства-
ми сервера, но вкратце можно сказать, что почти каждый OLE-объект содержит данные
в собственном (платформно-зависимом) формате, в том виде, в котором эти данные бы-
ли созданы сервером, а также в одном из нескольких стандартных форматов представ-
ления - обычно в виде метафайла, - которые могут отображаться любыми программами-
клиентами.
      Технология OLE организована с помощью функций высокого уровня, реализую-
щих низкоуровневые процессы совместного использования данных. OLE-функции раз-
мещены в трех DLL-модулях. Библиотека OleCli32.DLL содержит все функции, которые
используются OLE-клиентами, а библиотека OleSvr32.DLL содержит все функции, ко-
торые используются OLE-серверами. В технологии OLE 1.0 эти библиотеки обменива-
ются данными и командами с помощью DDE-сообщений. Третья библиотека,
Shell32.DLL, поддерживает базу данных серверов и типов данных и обеспечивает пра-
вильную обработку OLE-запросов.

                                        214