10 апр. 2012 г.

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

Библиотеки типов предоставляют сведения об объектах, их методах, интерфейсах, типах данных и исполняемых модулях. Вся эта информация располагается в файле, содержащем данные в особом формате. 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 не будет загружена в память. Следует отметить, что если после внедрения объекта приложение-источник будет удалено, непосредственная активизация работать не сможет.
Share:

Related Posts:

0 коммент.:

Отправить комментарий

Общее·количество·просмотров·страницы

flag

free counters

top

Технологии Blogger.