Автоматизация обеспечивает простой доступ к объектам COM из сценарных языков. Автоматизация - это надстройка над COM. Сервер автоматизации - объект COM с реализованным интерфейсом IDispatch. Контроллер автоматизации - клиент COM, взаимодействующий с сервером через этот интерфейс.
Сервер автоматизации принимает от контроллера имя функции, осуществляет проверку типов и выполняет эту функцию. Отличие этого подхода в том, что системе, создавшей объект, не требуется знать конкретный COM-интерфейс объекта, а можно общаться с объектом через стандартный интерфейс IDispath.
Далее описаны некоторые типы данных, предусмотренные этой технологией.
| Тип данных | Описание |
|---|---|
| LONG | Целое 32-битное число со знаком |
| ULONG | Целое 32-битное число без знака |
| BYTE | Целое 8-битное число без знака |
| CHAR | Целое 8-битное число со знаком |
| SHORT | Целое 16-битное число со знаком |
| USHORT | Целое 16-битное число без знака |
| INT | Целое число со знаком (предполагается что число бит зависит от архитектуры компьютера) |
| UINT | Целое число без знака |
| LONGLONG | Целое 64-битное число со знаком (некоторые скриптовые языки не поддерживают этот тип как и ULONGLONG, поэтому в целях совместимости он не используется в WSO) |
| ULONGLONG | Целое 64-битное число без знака |
| FLOAT | Вещественное число с плавающей точкой занимающее 4 байта |
| DOUBLE | Вещественное число с плавающей точкой занимающее 8 байт |
| VARIANT_BOOL | Логический тип |
| CY | Вещественное число с фиксированной точкой (8 байт) |
| DATE | Дата\Время, представляет собой вещественное число с плавающей точкой типа DOUBLE, целая часть – число дней с начала точки отсчета - 30.12.1989, дробная – время дня, непример: 1 января 1900 года имеет значение 2.0, 1 января 1900 года 12 часов имеет значение 2.5 |
| BSTR | Строка (используется кодировка Unicode) |
| IDispatch* | Указатель на интерфейс COM объекта, поддерживающего технологию "автоматизация" |
| IUnknown* | Указатель на интерфейс произвольного COM объекта |
| SAFEARRAY(VARIANT) | Массив данных типа VARIANT, если этот тип имеет параметр метода объекта WSO то значит, этот метод поддерживает как массив, так и переменный список параметров |
| VARIANT | Тип данных неопределен |