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


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

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

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

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

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

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

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

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

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

Многие коммерческие приложения, такие как Microsoft Excel и Microsoft Visual C++, позволяют автоматизировать большую часть своих функций. Например, в Visual C++можно написать макросы 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