Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Понятие внедрения и связывания объектов




Связывание и внедрение (OLI) - один из эффективных способов обмена данными между приложениями Microsoft Office. Основные различия между связыванием и встраиванием заключаются в месте хранения данных и способе обновления данных после помещения их в документ.

Связанный объект – это данные (объект), созданные в одном файле и вставленные в другой файл с поддержкой связи между файлами. Связанный объект может обновляться одновременно с обновлением исходного файла. Связанный объект не является частью файла, в который он вставлен.

Внедренный объект – это данные (объект), вставленные в файл. Внедренный объект становится частью файла. При двойном щелчке внедренный объект открывается с помощью программы, в которой был создан.

Копирование, связывание и внедрение можно осуществлять при помощи буфера обмена. Для этого необходимо данные скопировать в документе - источнике, а затем в документе - получателе выполнить команду Правка - Специальная вставка и выбрать параметр Связать или Вставить.

Составной (интегрированный) документ – документ, в котором объединены данные разного типа, созданные в разных приложениях.
В большинстве случаев в составном документе можно выделить главную часть, которая создавалась в одном приложении и куда вставлялись объекты из других приложений.
Составной документ вызывается из приложения, где создавалась его главная часть.
Следует заметить, что возможно создание составного документа, у которого нет главной части и который весь состоит из объектов, созданных в других приложениях.

Когда в некотором приложении используется команда «Вставить» (Paste), то создается внедренный компонент (embedded component) или некоторая совокупность внедренных данных (embedded item). Эти внедренные данные сохраняются как часть документа, который их содержит. В этом случае, к примеру, файл текстового процессора вроде Microsoft Word может содержать не только текст, но и изображения, графики, формулы или какие-либо иные типы данных.

Технология OLE предоставляет иной способ включения данных, созданных другими приложениями: создание связанного компонента (linked component), который называют также связанными данными (linked item) или просто связью (link). Алгоритм связывания данных подобен алгоритму их внедрения за тем исключением, что используется команда вставить связь (Paste Link) вместо вставить. В отличие от внедренного компонента, связанный компонент хранит путь путь к оригинальным данным, которые, как правило, сохраняются в отдельном файле.

Например, когда в документе Microsoft Word создается связь к некоторым ячейкам таблицы Microsoft Excel, то табличные данные сохраняются в документе (файле) Excel. Таким образом, документ Word содержит только ссылку на оригинальный документ Excel. Теперь при двойном щелчке по ячейкам вставленной в текст таблицы запускается приложение Excel и загружается файл, содержащий эти табличные данные.

Любые данные, внедрены ли они или связаны. имеют тип, ассоциированный с породившим их приложением. Это приложение, тем не менее, может создавать более чем один тип данных. К примеру, то же приложение Excel может создавать листы, диаграммы и макролисты (macrosheet). Каждый из этих видов данных однозначно идентифицируется CLSID (идентификатором класса).

Серверы и контейнеры.

Технология OLE предполагает, в первую очередь, наличие двух приложений: приложение-сервер и приложение-контейнер. Приложение сервер всегда обрабатывает внедренный (embedding) или связанный (embedding) OLE-документ.

Приложением-контейнером называют такое приложение, которое может включать внедренный или связанные данные в свои собственные документы. Документы, обрабатываемые приложением-контейнером, должны сохранять и отображать OLE-документы точно так же, как и свои собственные данные, т.е. данные, созданные приложением-контейнером. Кроме того приложение-контейнер должно позволять пользователям вставлять новые данные или редактировать существующие путем активизации приложения-сервера.

Приложением-сервером или приложением-компонентом называют такое приложение, которое может создавать OLE-документы для их последующего использования приложением-контейнером. Приложения-серверы обычно поддерживают технологию перетаскивания (drag and drop) или копируют свои данные в буфео обмена (clipboard), благодаря чему приложение-контейнер может вставить эти данные (в свой документ) как внедренные (embedding) или связанные (embedding). Любое приложение может быть и сервером и контейнером.

Приложения-серверы могут быть полными серверами или мини-серверами. Большинство приложений-серверов являются самостоятельными (stand-alone) приложениями или полными серверами (full-server). Такие серверы могут выполняться как самостоятельные приложения или могут быть запущены на выполнение приложениями-контейнерами. Мини-серверы могут быть запущены на выполнение только приложениями-контейнерами. т.е. не могут выполняться как самостоятельные приложения. Примерами мини-серверов служат Microsoft Draw и Microsoft Graph.

Контейнеры и серверы не взаимодействуют непосредственно, напрямую, а делают это посредством использования динамически подключаемых OLE-библиотек. Эти библиотеки предоставляют функции, которые вызывают контейнеры и серверы. В свою очередь контейнеры и серверы предоставляют функции обратного вызова (callback functions), которые вызваются OLE-библиотеками. Таким образом, OLE-библиотеки выполняют роль промежуточного слоя, разделяющего объединяющего контейнеры и серверы.

Благодаря такой технологии взаимодействия контейнер не должен знать деталей реализации сервера, что позволяет контейнеру получать данные, созданные любым сервером, и при этом не возникает необходимости в определении типа сервера, с которым взаимодействует контейнер. Вследствие этого пользователь приложения-контейнера может воспользоваться преимуществами будущих приложений и форматов данных. До тех пор пока эти новые приложения будут оставаться OLE-компонентами, составной документ (compound document) будет в состоянии включать данные, созданные такими приложениями.

Приложение-контейнер – это приложение, которое имеет специальный компонент, который, собственно, и называется контейнером. Компонент контейнер используется для того, чтобы хранить данные внедренного или связанного объекта (OLE-документа) и выполнять некоторые операции над объектом.

Для внедрения в приложение объекта необходимо использовать так называемый OLE-контейнер, правила создания и использования которого регламентированы СОМ. Также в соответствии со спецификацией СОМ должна быть обеспечена активизация объекта по месту (in-place activation), т.е. возможность редактирования объекта, находящегося в контейнере, с помощью соответствующего СОМ-сервера

 

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 1833; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.