Общие принципы создания контроллеров автоматизации
В общем случае контроллер автоматизации должен выполнять следующие действия:
Соответствующий код для Delphi представлен в листинге 1.
Здесь мы воспользовались функциями GetActiveOleObject и CreateOleObject для подключения к уже запущенной копии приложения-сервера или запуска новой, если сервер не запущен, что приводит к тому, что в вариантную переменную помещается ссылка на объект Application соответствующего сервера.
Приведенная часть кода контроллера в других средствах разработки может выглядеть по-другому- она не имеет прямого отношения к методам объектов Office, так как обусловлена правилами вызова стандартных функций OLE в Delphi (за исключением вызовов методов Visible и Quit объекта Application). А вот все то, что должно быть вставлено вместо комментария <Здесь выполняются другие действия с объектами приложения Office>, в разных средствах разработки должно выглядеть более или менее однотипно - используя созданную вариантную переменную, мы манипулируем методами и свойствами объекта Application.
В заключение сделаем одно маленькое замечание касательно числа параметров методов объектов автоматизации. В случае применения позднего связывания число указанных в коде параметров метода не обязано совпадать с их истинным числом (которое можно найти в описании объектной модели соответствующего приложения). В этом случае вполне допустимым является следующий код:
App.Quit;
несмотря на то что метод Quit объекта Application в случае некоторых приложений Microsoft Office (например, Microsoft Word) имеет параметры.
При использовании же раннего связывания, например при создании контроллеров с помощью Delphi, следует более строго подходить к определению параметров - их число и тип должны соответствовать описанию методов в библиотеке типов. Например, в случае раннего связывания корректный код на Delphi для закрытия документа Word со значениями всех параметров по умолчанию будет иметь вид:
App.Quit(EmptyParam, EmptyParam, EmptyParam);
Исключением из этого правила является Visual Basic - это средство разработки позволяет не задумываться о числе параметров методов при написании кода.
Обсудив общие принципы создания контроллеров автоматизации и узнав, как это делается средствами Borland Delphi, мы можем перейти к рассмотрению автоматизации конкретных приложений Microsoft Office. Начнем с одного из самого популярных компонентов этого пакета - с Microsoft Word.