Серверы автоматизации

Автоматизация позволяет приложению управлять объектами, реализованными в другом приложении, или предоставлять объекты, чтобы их можно было управлять. Сервер автоматизации — это приложение, которое предоставляет программируемые объекты (называемые объектами автоматизации) другим приложениям (называемым клиентами службы автоматизации). Серверы автоматизации иногда называются компонентами службы автоматизации.

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

Эти объекты автоматизации имеют свойства и методы в качестве внешнего интерфейса. Свойства — это именованные атрибуты объекта Automation. Свойства похожи на элементы данных класса C++ . Методы — это функции, работающие над объектами автоматизации. Методы похожи на общедоступные функции-члены класса C++.

Примечание.

Хотя свойства похожи на элементы данных C++, они недоступны напрямую. Чтобы обеспечить прозрачный доступ, настройте внутреннюю переменную в объекте автоматизации с парой функций-членов get/set для доступа к ним.

Предоставляя функциональные возможности приложений через общий, хорошо определенный интерфейс, автоматизация позволяет создавать приложения на одном общем языке программирования, например Microsoft Visual Basic, а не в различных языках макросов, относящихся к приложениям.

Поддержка серверов автоматизации

Visual C++ и платформа MFC обеспечивают обширную поддержку серверов автоматизации. Они обрабатывают большую часть накладных расходов, связанных с выполнением сервера автоматизации, поэтому вы можете сосредоточить усилия на функциональных возможностях вашего приложения.

Основной механизм платформы для поддержки автоматизации — это карта отправки, набор макросов, который расширяется в объявлениях и вызовах, необходимых для предоставления методов и свойств ДЛЯ OLE. Типичная карта отправки выглядит следующим образом:

BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()

Мастер классов и представление классов помогают поддерживать карты отправки. При добавлении нового метода или свойства в класс Visual Studio добавляет соответствующий DISP_FUNCTION или DISP_PROPERTY макрос с параметрами, указывающими имя класса, внешние и внутренние имена метода или свойства, а также типы данных.

Диалоговое окно "Добавление класса " также упрощает объявление классов автоматизации и управление их свойствами и операциями. При использовании диалогового окна "Добавление класса" для добавления класса в проект необходимо указать базовый класс. Если базовый класс разрешает автоматизацию, в диалоговом окне "Добавление класса" отображаются элементы управления, используемые для указания того, должен ли новый класс поддерживать автоматизацию, является ли он "OLE creatable" (то есть, можно ли создавать объекты класса по запросу от COM-клиента), а также внешнее имя для использования COM-клиента.

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

Мастер приложений MFC упрощает действия, связанные с получением серверного приложения службы автоматизации. Если выбрать поле "Автоматизация проверка" на странице "Дополнительные функции", мастер приложений MFC добавляет в функцию приложения InitInstance вызовы, необходимые для регистрации объектов службы автоматизации и запуска приложения в качестве сервера службы автоматизации.

Что вы хотите сделать

См. также

Служба автоматизации
Мастер приложений MFC