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

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

01eContainerl->SaveAsDocument(FName) ;

Функции CreateObjectFromFile, CreateLinkToFile и SaveAsDocument позво-
ляют построить фактически универсальный редактор текстовых, графических,
музыкальных и других файлов.

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

Внедрение и связывание позволяют запустить приложение, обрабатывающее
соответствующий документ как единое целое. Автоматизация OLE позволяет
управлять этим приложением (сервером OLE), используя экспонированные им
функции и процедуры. Осуществляется связь с сервером функцией CreateOleOb-
ject. Приведем пример, в котором в качестве сервера используется Microsoft Word.

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

Создайте форму, включающую в себя окно редактирования Memo для ввода
текста, окно редактирования Edit для ввода имени адресата, группу радиокнопок,
определяющих пол адресата, группу радиокнопок, определяющих производимую
операцию: запись в файл или печать, диалог FontDialog для выбора шрифта, диа-
лог SaveDialog для задания имени сохраняемого файла и две кнопки — Шрифт
для выбора шрифта и Выполнить для выполнения заданной операции. Пример ра-
боты такого приложения приведен на рис. 6.7.

Рис. 6.7

Приложение, использующее автоматизацию
OLE

Текст приложения может иметь вид:

Variant W;

void _fastcall TFormI::Ins(AnsiString S)

(
W.Exec(Procedure("Font") « Memol->Font->Name « Memol->Font->Size) ,