Взаимодействие приложения с внешними программами______________403

нию запускаемое приложение работает в фоновом режиме. Следующий оператор
вызывает процедуру FileNew, которая создает новый документ. Затем следуют
операторы, формирующие текст документа с учетом установок шрифта. Эти опера-
торы, содержащиеся во вспомогательной функции Ins, обращаются к процедурам
Font, Bold, Italic, формирующим атрибуты шрифта, и к процедуре Insert, включа-
ющей текст в документ Word.

После формирования текста следуют операторы, запрашивающие пользовате-
ля о завершении операции (это дает ему возможность отказаться от печати или со-
хранения файла, если он заметит в письме какие-то ошибки). Заключительные
операторы завершают заданную операцию процедурами FileSaveAs или FilePrint
и закрывают документ Word процедурой FileClose с параметром 2, означающим,
что файл закрывается без запроса о необходимости его сохранения.

Запустите приложение, и вы увидите, что научились управлять таким мощ-
ным инструментом, как Microsoft Word. Подробное описание других процедур вы
сможете найти в справке Word в разделе WordBasic. Одно замечание — если Word
открыт до запуска вашего приложения, то позаботьтесь о том, чтобы он не был раз-
вернут на весь экран. Иначе окно Word закроет ваше приложение и его сообщения.

Мы рассмотрели, конечно, только основы OLE. Этой теме можно было бы по-
святить целую книгу. Но и то, что вы увидели, позволит вам создать немало при-
ложений, использующих эту технику.

6.5 Динамический обмен данными — DDE

6.5.1 Общие сведения

Динамический обмен данными (Dinamical Data Exchange — DDE) — это техно-
логия, появившаяся в Windows ранее описанного выше OLE, но сохраняющая свое
значение и до сих пор, поскольку предоставляет удобный способ обмена данными
между программами. В этом диалоге программ одна, инициирующая диалог, на-
зывается клиентом, а другая, отвечающая на сообщения клиента — сервером.
Диалог ведется на заданную тему (topic). Данные, передаваемые от одной про-
граммы к другой, называются элементами данных (items). В диалоге могут также
передаваться серверу некоторые команды — макросы (macros). Этих основных по-
нятий: клиент, сервер, тема, элемент данных и макрос достаточно, чтобы строить
приложения, основанные на DDE. Всю сложную задачу обработки в процессе диа-
лога множества сообщений Windows берет на себя C++Builder, инкапсулируя все
необходимые процедуры в четырех компонентах, расположенных в библиотеке на
странице System: DdeClientConv, DdeClientItem, DdeServerConv и DdeServerItem.
Первые два из них организуют работу клиента, а два вторые — работу сервера.

Основным компонентом, организующим взаимодействие, является компонент
клиента DdeClientConv. Соответствующий ему компонент сервера DdeServerConv
играет пассивную роль, сообщая только тему, которую может поддерживать сер-
вер. Компоненты DdeClientItem и DdeServerItem нужны только для обмена ин-
формацией о конкретных элементах данных.

Взаимодействие DDE может выполнять следующие операции:

• Передача клиенту данных от сервера по инициативе клиента

• Передача клиенту данных от сервера при их обновлении

• Передача данных от клиента к серверу

• Передача команд (макросов) от клиента к серверу

• Установка клиентом данных на сервере

В последующих разделах будут рассмотрены способы решения каждой из этих
задач.