Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом_Mage / Диплом / Старое / Технологический раздел.doc
Скачиваний:
18
Добавлен:
16.04.2013
Размер:
273.41 Кб
Скачать

2.3.2. Сом и Автоматизация ole

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

Большинство объектов СОМ поддерживают более одного интерфейса. Сам объект всегда реализуется внутри некоторого сервеpа. Сервер может быть либо динамически подключаемой библиотекой (DLL), подгружаемой во время работы приложения, либо отдельным самостоятельным процессом.

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

Одна из важнейших технологий OLE – Автоматизация (OLE Automation) разработана с использованием COM.

Автоматизация OLE

Электронные таблицы, текстовые процессоры и другие программы предоставляют все виды полезных возможностей. Почему бы не обеспечить доступ к ним и другому программному обеспечению? Чтобы это стало возможным, приложения должны предоставлять свои сервисы не только человеку, но и программам – они должны быть программируемыми. Обеспечение программируемости и является целью Автоматизации (Automation, первоначально называвшейся OLE-автоматизацией).

Приложение можно сделать программируемым, обеспечив доступ к его сервисам через обычный СОМ-интерфейс. Однако так поступают редко. Вместо этого доступ к сервисам приложений осуществляется через диспинтерфейсы (dispinterface). Они очень похожи на интерфейсы (у них есть методы, клиенты осуществляют доступ через указатель интерфейса и т. д.), но имеют и существенные отличия. В частности, методы диспинтерфейса гораздо проще вызывать клиентам, написанным на простых языках типа Visual Basic. Это очень важно: ведь большинство людей, желающих писать программы, осуществляющие доступ к внутренним сервисам приложений, чаще всего выбирают Visual Basic и аналогичные среды.

Чтобы получить представление о возможных выгодах Автоматизации, возьмем, например, Microsoft Excel – программу с широким выбором функций, используемых теми, кто непосредственно работает с Excel. Безусловно, на встроенном в нее макроязыке можно написать целые приложения, использующие функции Excel.

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

Программируемый доступ к внутренним сервисам посредством Автоматизации поддерживается и рядом других приложений. Именно эта возможность легкого доступа к мощным средствам существующих приложений делает Автоматизацию одной из наиболее широко используемых технологий на основе СОМ.

Соседние файлы в папке Старое