Составители:
OLE-приложения взаимодействуют друг с другом с помощью функций OLE-
библиотек. Например, если клиент хочет отредактировать изображение, он передает за-
прос библиотеке OleCli32.DLL. Та направляет его библиотеке OleSvr32.DLL. Последняя
находит сервер и передает ему команду начать сеанс редактирования. Когда пользова-
тель активизирует объект, библиотека OleSvr32 должна определить, какое приложение-
сервер соответствует указанному формату данных. Для поиска соответствующего серве-
ра OleSvr32 консультируется с библиотекой Shell32. Функции библиотеки Shell32
управляют системным реестром, в котором для каждого приложения записаны соответ-
ствующие форматы данных. При инициализации серверы вносят в системный реестр
свое имя и другую информацию.
После выполнения операции библиотека OleSvr32 передает результаты назад
библиотеке OleCli32, а та возвращает их клиенту. Схема взаимодействия клиента и сер-
вера с помощью OLE-библиотек изображена на рис.8.5 [12].
Рис.8.5. Взаимодействие клиента и сервера с помощью трех OLE-библиотек
Подобно DDEML, OLE-библиотеки используют в своей работе протокол DDE.
OLE-команды посылают DDE-сообщения. Базовые DDE-процессы выполняются неза-
метно для OLE-приложения. Поскольку Microsoft разрабатывала технологии DDEML и
OLE параллельно, они не опираются друг на друга.
Как уже упоминалось выше, при инсталляции или при первом запуске OLE-сервер
регистрируется в системном реестре. Среди прочего регистрируются имя и местополо-
жение сервера, а также типы предоставляемых им услуг.
В свою очередь, OLE-клиент может найти в реестре необходимый ему сервер и ус-
лугу. Непосредственный доступ к реестру обеспечивается с помощью редактора реестра
(файл RegEdit.EXE или RegEdit32.EXE в папке \WINDOWS или \WINDOWS\SYSTEM).
В качестве примера на рис.8.6 показано окно редактора реестра после выполнения
функции Find из меню Edit для нахождения информации о приложении Excel. В реестре
имеется несколько записей для Excel, но одна их них представляет для нас особый инте-
рес. Это идентификатор класса. Он находится в разделе HKEY_CLASSES_ROOT\CLSID
и выглядит следующим образом: 00020810-0000-0000-С0000-000000000046. Как и для
большинства остальных записей, эту информацию можно также найти в разделе
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID и в некоторых других разделах.
Как видно на рис.8.6, в реестр помещена информация о формате данных, опциях преоб-
разования, стандартном расширении и значке, программном идентификаторе, а также об
OLE-командах, которые поддерживаются соответствующим OLE-сервером.
215
OLE-приложения взаимодействуют друг с другом с помощью функций OLE- библиотек. Например, если клиент хочет отредактировать изображение, он передает за- прос библиотеке OleCli32.DLL. Та направляет его библиотеке OleSvr32.DLL. Последняя находит сервер и передает ему команду начать сеанс редактирования. Когда пользова- тель активизирует объект, библиотека OleSvr32 должна определить, какое приложение- сервер соответствует указанному формату данных. Для поиска соответствующего серве- ра OleSvr32 консультируется с библиотекой Shell32. Функции библиотеки Shell32 управляют системным реестром, в котором для каждого приложения записаны соответ- ствующие форматы данных. При инициализации серверы вносят в системный реестр свое имя и другую информацию. После выполнения операции библиотека OleSvr32 передает результаты назад библиотеке OleCli32, а та возвращает их клиенту. Схема взаимодействия клиента и сер- вера с помощью OLE-библиотек изображена на рис.8.5 [12]. Рис.8.5. Взаимодействие клиента и сервера с помощью трех OLE-библиотек Подобно DDEML, OLE-библиотеки используют в своей работе протокол DDE. OLE-команды посылают DDE-сообщения. Базовые DDE-процессы выполняются неза- метно для OLE-приложения. Поскольку Microsoft разрабатывала технологии DDEML и OLE параллельно, они не опираются друг на друга. Как уже упоминалось выше, при инсталляции или при первом запуске OLE-сервер регистрируется в системном реестре. Среди прочего регистрируются имя и местополо- жение сервера, а также типы предоставляемых им услуг. В свою очередь, OLE-клиент может найти в реестре необходимый ему сервер и ус- лугу. Непосредственный доступ к реестру обеспечивается с помощью редактора реестра (файл RegEdit.EXE или RegEdit32.EXE в папке \WINDOWS или \WINDOWS\SYSTEM). В качестве примера на рис.8.6 показано окно редактора реестра после выполнения функции Find из меню Edit для нахождения информации о приложении Excel. В реестре имеется несколько записей для Excel, но одна их них представляет для нас особый инте- рес. Это идентификатор класса. Он находится в разделе HKEY_CLASSES_ROOT\CLSID и выглядит следующим образом: 00020810-0000-0000-С0000-000000000046. Как и для большинства остальных записей, эту информацию можно также найти в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID и в некоторых других разделах. Как видно на рис.8.6, в реестр помещена информация о формате данных, опциях преоб- разования, стандартном расширении и значке, программном идентификаторе, а также об OLE-командах, которые поддерживаются соответствующим OLE-сервером. 215
Страницы
- « первая
- ‹ предыдущая
- …
- 211
- 212
- 213
- 214
- 215
- …
- следующая ›
- последняя »