Типы и библиотеки типов

Типы и библиотеки типов. Библиотеки типов предоставляют сведения об объектах, их методах, интерфейсах, типах данных и исполняемых модулях. Вся эта информация располагается в файле, содержащем данные в особом формате.

OLE обеспечивает стандартные методы для создания библиотек типов и поиска информации в них. Так как информация о типе имеет стандартный, четко определенный формат, ее могут просматривать и отображать программы, называемые просмотрщиками объектов. А поскольку данные хранятся в файле, они могут быть получены даже тогда, когда в системе нет объектов такого типа. Между прочим, файл библиотеки типов TLB-файл является структурированным файлом.

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

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

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

Те клиенты, которых интересуют изменения данных, могут при этом предпринять соответствующие действия. Объекты, взаимодействующие при помощи UDT, могут находиться в одном или разных адресных пространствах. UDT заменяет устаревшую к настоящему времени технологию DDE Динамический обмен данными. Имеются два значительных преимущества в применении OLE-технологии UDT по сравнению с традиционной технологией DDE и буфером обмена clipboard UDT обеспечивает более подробное описание совместно используемых данных. В этой технологии для описания данных и среды, на которой эти данные располагаются, используются две структуры, FORMATETС и STGMEDIUM. Структура FORMATETC определяет обобщенный формат буфера обмена усовершенствованный таким образом, чтобы описывать целевое устройство монитор, принтер, плоттер и т.д способ интерпретации данных например, как уменьшенное или полноэкранное изображение и среду их хранения например, оперативная память или диск. UDT дает возможность пользоваться другими средствами обмена, помимо физической памяти. К примеру, большое растровое изображение, может быть сохранено на диске в виде структурированного файла, и совместно использоваться посредством отображения файла в памяти.

Имея дело с UDT можно гибко выбирать оптимальную среду хранения для тех данных, которые необходимо использовать совместно.

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

В стандартной модели OLE клиент совершает вызовы для доступа к функциям объекта. Объект, однако, может дополнительно передать одному или нескольким своим клиентам информацию, которая не была затребована в запросе. Объекты, которые поддерживают пересылку клиентам дополнительной информации, называются соединяемыми. Соединяемые объекты называют также источниками советов, а клиентов приемниками советов. Технология Drag-and-Drop. OLE-технология Drag-and- Drop перетащить и отпустить определяет визуальный, ориентированный на использование мыши способ обмена информацией с помощью буфера обмена.

Посредством мыши пользователь может переносить информацию из одного объекта, который называется источником перетаскивания, в другой, называемый приемником перетаскивания. Объекты источника и приемника могут находиться в разных адресных пространствах. Технология Drag-and-Drop определяет строгий протокол взаимодействия, которого придерживаются источники и приемники.

Автоматизация. Автоматизация считается одной из самых мощных OLE-технологий. Это механизм, при помощи которого объект предоставляет другим объектам и приложениям доступ к своим методам функциям и свойствам характеристикам. Объект, предоставляющий доступ к своим функциям, называется сервером автоматизации. Объект или приложение, которые используют функции или управляют действиями сервера автоматизации, называются контроллерами автоматизации. Серверы автоматизации существуют для того, чтобы обслуживать запросы и указания контроллеров автоматизации.

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

Интерфейс IDispatch - это стандартный СОМ-интерфейс, который определяет функции автоматизации. Его должны реализовывать все серверы автоматизации. Составные документы. Составные документы, иногда называемые составными файлами, интегрируют данные и объекты, созданные в различных приложениях, поддерживающих OLE. Такие документы могут содержать множество объектов других документов. Например, текстовый редактор Word, поддерживающий OLE, может получать таблицы и графики от программы обработки электронных таблиц, также поддерживающей OLE, скажем, Excel. Помимо объединения статической информации типа таблиц и графиков, составные документы могут также содержать живые данные, например звук, видео и анимацию. Составные документы поддерживают следующие возможности Вложение объектов.

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

Объекты могут быть приведены к разным типам, чтобы разрешить использование одного и того же объекта различными приложениями. Например, объект одного типа электронных таблиц Lotus 1-2-3 может быть преобразован в другой тип Excel. Оптимизированное хранение объектов. Объекты остаются на диске до тех пор, пока не потребуются, поэтому они не загружаются в память всякий раз, когда выполняется программа-контейнер. Кроме того, используя собственную технологию структурированного хранения, OLE поддерживает подтверждения и откаты транзакций на уровне объектов. Это гарантирует целостность данных, поскольку объекты хранятся в файлах.

Связывание и встраивание объектов. Встраивание объектов это возможность вставить объект в составной документ без сохранения ссылки на источник данных объекта. Например, можно встроить электронную таблицу Excel в документ Word. После этого объект, который находится в составном документе, будет полностью независим от первоначального источника.

Тогда изменения основного объекта не отразятся на встроенном объекте. Посредством связывания объектов приложение поддерживает лишь связи с объектами, которые находятся в других приложениях. При активизации связанного объекта библиотеки OLE отслеживают связь и вызывают ассоциированный объект. Например, документ Microsoft Word может содержать связь с таблицей Excel. Таблица и все ее данные полностью находятся в Excel, но могут быть использованы и в документе Word. Если первоначальные данные таблицы изменятся, то эти изменения автоматически отобразятся в документе Word. Связывание зависит от расположения объектов.

Другими словами, если таблицу Excel переместить в новую папку, связь будет разорвана. Имена, псевдонимы и привязка. У объекта может быть имя. В таком случае OLE использует это имя для идентификации и обращения к объекту. Псевдонимами называются СОМ-объекты, в которых хранятся имена и местоположения других объектов. Получив соответствующие указания, псевдонимы определяют местоположение объектов, на которые ссылаются, и вызывают их. Этот процесс поиска и вызова объекта называется привязкой. OLE использует псевдонимы для поддержания связи с источниками данных объекта.

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

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

При этом Excel интегрирует свое меню, панель инструментов и строку состояния в пользовательский интерфейс Word. Этот процесс называется согласованием. Создается впечатление, что вы получаете доступ к функциям Excel, не выходя из Word. Каким образом таблица отображается в текстовом редакторе, когда он запускается первый раз Составной документ документ Word, содержащий таблицу Excel хранит представление объекта таблицы в виде метафайла.

При вставке таблицы в составной документ или связывании с ним Excel передает Word представление таблицы в виде метафайла. То, что вы видите при загрузке Документа Word, содержащего таблицу Excel это картинка. Если таблица ни разу не активизируется, то программа Excel не будет загружена в память. Следует отметить, что если после внедрения объекта приложение-источник будет удалено, непосредственная активизация работать не сможет.

Часть 4.