Поделиться через


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

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

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

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

Серверы службы автоматизации и клиенты используют com-интерфейсы, которые всегда являются производными от IDispatch и принимают и возвращают определенный набор типов данных, называемых типами автоматизации. Вы можете автоматизировать любой объект, предоставляющий интерфейс автоматизации, предоставляющий методы и свойства, к которым можно получить доступ из других приложений. Автоматизация доступна для объектов OLE и COM. Автоматический объект может быть локальным или удаленным (на другом компьютере, доступном в сети); Поэтому существует две категории автоматизации:

  • Автоматизация (локальная).

  • Удаленная автоматизация (через сеть, с помощью распределенного COM или DCOM).

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

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

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

Многие коммерческие приложения, такие как Microsoft Excel и Visual Studio, позволяют автоматизировать большую часть своих функций. Например, в Visual Studio можно написать макросы VBScript для автоматизации сборок, аспектов редактирования кода или задач отладки.

Передача параметров в автоматизации

Одна из трудностей при создании методов автоматизации заключается в содействии обеспечению единого "безопасного" механизма передачи данных между серверами автоматизации и клиентами. Автоматизация использует тип VARIANT для передачи данных. Тип VARIANT — это объединение с тегами. Он имеет член данных для значения (это анонимное объединение C++) и член данных, указывающий тип информации, хранящейся в объединении. Тип VARIANT поддерживает ряд стандартных типов данных: 2- и 4-байтовые целые числа, 4- и 8-байтовые числа с плавающей запятой, строки и логические значения. Кроме того, она поддерживает типы HRESULT (коды ошибок OLE), CURRENCY (числовый тип фиксированной точки) и DATE (абсолютные даты и время), а также указатели на IUnknown интерфейсы и IDispatch интерфейсы.

Тип VARIANT инкапсулируется в классе COleVariant . Вспомогательные классы CURRENCY и DATE инкапсулируются в классах COleCurrency и COleDateTime .

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

  • AUTOCLIK Используйте этот пример для изучения методов автоматизации и в качестве основы для обучения удаленной автоматизации.

  • ACDUAL Добавляет два интерфейса в серверное приложение службы автоматизации.

  • CALCDRIV Клиентское приложение автоматизации, управляющее MFCCALC.

  • INPROC Демонстрирует серверное приложение службы автоматизации In-Process.

  • IPDRIVE Клиентское приложение автоматизации, управляющее INPROC.

  • MFCCALC Демонстрирует клиентское приложение службы автоматизации.

Что вы хотите узнать больше о

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

См. также

MFC COM