Серверы
Серверное приложение (или приложение компонента) создает элементы OLE (или компоненты) для использования контейнерными приложениями. Приложение сервера визуального редактирования также поддерживает визуальное редактирование или активацию на месте. Другой формой OLE-сервера является сервер автоматизации. Некоторые серверные приложения поддерживают только создание внедренных элементов; другие поддерживают создание внедренных и связанных элементов. Некоторые поддерживают связывание только, хотя это редко. Все серверные приложения должны поддерживать активацию контейнерными приложениями, когда пользователь хочет изменить элемент. Приложение может быть как контейнером, так и сервером. Другими словами, он может включать данные в свои документы и создавать данные, которые могут быть включены в качестве элементов в документы других приложений.
Мини-сервер — это особый тип серверного приложения, которое может запускаться только контейнером. Microsoft Draw и Microsoft Graph являются примерами мини-серверов. Мини-сервер не хранит документы в виде файлов на диске. Вместо этого он считывает свои документы из и записывает их в элементы в документах, принадлежащих контейнерам. В результате мини-сервер поддерживает внедрение только, а не связывание.
Полный сервер можно запустить как автономное приложение, так и запустить приложение контейнера. Полный сервер может хранить документы в виде файлов на диске. Он может поддерживать только внедрение, внедрение и связывание, либо только связывание. Пользователь приложения контейнера может создать внедренный элемент, выбрав команду "Вырезать" или "Копировать" на сервере и команду "Вставить" в контейнере. Связанный элемент создается путем выбора команды "Копировать" на сервере и команды "Вставить ссылку" в контейнере. Кроме того, пользователь может создать внедренный или связанный элемент с помощью диалогового окна "Вставка объекта".
В следующей таблице приведены характеристики различных типов серверов:
Характеристики сервера
Тип сервера | Поддерживает несколько экземпляров | Элементы на документ | Документы на экземпляр |
---|---|---|---|
Минисервер | Да | 1 | 1 |
Полный сервер SDI | Да | 1 (если связывание поддерживается, 1 или более) | 1 |
Полный сервер MDI | Нет (не требуется) | 1 (если связывание поддерживается, 1 или более) | 0 и более |
Серверное приложение должно одновременно поддерживать несколько контейнеров, если для изменения внедренного или связанного элемента будет использоваться несколько контейнеров. Если сервер является приложением SDI (или мини-сервером с интерфейсом диалогового окна), несколько экземпляров сервера должны работать одновременно. Это позволяет отдельному экземпляру приложения обрабатывать каждый запрос контейнера.
Если сервер является приложением MDI, он может создавать новое дочернее окно MDI каждый раз, когда контейнеру нужно изменить элемент. Таким образом, один экземпляр приложения может поддерживать несколько контейнеров.
Серверное приложение должно сообщить библиотекам DLL системы OLE, что делать, если один экземпляр сервера уже запущен, когда другой контейнер запрашивает свои службы: следует ли запускать новый экземпляр сервера или направлять все запросы всех контейнеров к одному экземпляру сервера.
Дополнительные сведения о серверах см. в следующем разделе:
См. также
OLE
Контейнеры
Контейнеры. Дополнительные возможности
Меню и ресурсы (OLE)
Регистрация
Серверы автоматизации