Справочник по Автоматизации Пер, с англ. — М.: Издательский отдел «Русская Редакция» ТОО «Channel Trading Ltd.», 1998. — 440 с.: ил.
Справочник по Автоматизации Пер, с англ. — М.: Издательский отдел «Русская Редакция» ТОО «Channel Trading Ltd.», 1998. — 440 с.: ил.

М 59 Справочник по Автоматизации/Пер, с англ. — М.: Издательский отдел «Русская Редакция» ТОО «Channel Trading Ltd.», 1998. — 440 с.: ил.
ISBN 5-7502-0053-1
Справочник представляет собой полное официальное руководство по Автоматизации (Automation), ранее известной как OLE Автоматизация и позволяющей управлять извне объектами, заключенными внутри приложений. Он включает как общие сведения об Автоматизации, так и подробное описание интерфейсов и функций в удобной для использования, четко структурированной форме. В книге изложены базовые понятия Автоматизации; описаны стандартные объекты ActiveX; показано, как создавать программируемые объекты, которые будут использоваться клиентами ActiveX, и как писать приложения и инструментальные средства программирования, работающие с объектами, которые предоставляют им другие приложения.
Хотя Автоматизация доступна и на других платформах, в этой книге рассматриваются в основном приложения для 32-разрядных ОС Microsoft Windows. Предполагается, что читатель знаком с языками программирования С+ + и Microsoft Visual Basic, средами программирования Microsoft Windows 95 и Windows NT, протоколами OLE, которые реализованы с помощью динамически связываемых библиотек и используются в сочетании с другими программами Microsoft Windows, и моделью многокомпонентных объектов СОМ.
Книга содержит иллюстрации, состоит из введения, 11 глав, приложения и предметного указателя.
Оглавление
Введение..................................................................................................XV
Об этой книге...................................................................................................................XV
Другие источники информации....................................................................................XVI
Типографские соглашения...........................................................................................XVII
ЧАСТЬ 1. АВТОМАТИЗАЦИЯ .......................................................................1
Глава 1. Общие сведения об Автоматизации...........................................3
Зачем нужен доступ к объектам извне..........................:................................................4
Что такое объект ActiveX...................................................................................................5
Что такое клиент ActiveX...................................................................................................8
Как взаимодействуют клиенты и объекты.....................................................................8
Доступ к объекту с помощью интерфейса IDispatch...................................................10
Доступ к объектам через VTBL.......................................................................................11
Объекты серверов «в процессе» и «вне процесса».....................................................11
Что такое библиотека типа.............................................................................................12
Глава 2. Предоставление объектов ActiveX...........................................13
Предоставление объектов.............................................................................................13
Инициализация предоставляемых объектов....................................................14
Реализация предоставляемых объектов..........................................................14
Реализация фабрики класса...............................................................................14
Предоставление объекта Application.................................................................15
Создание регистрационного файла...................................................................16
Освобождение OLE и объектов...........................................................................19
Получение объектов.............................................................................................19
Возвращение объектов.......................................................................................20
Соображения о проектировании приложений............................................................20
Создание программируемого интерфейса.......................................................20
Создание интерфейса IDnknown........................................................................22
Создание интерфейса IDispatch.........................................................................22
Реализация дуальных интерфейсов...................................................................22
Регистрация интерфейсов...................................................................................23
Создание идентификаторов классов............................'.....................................24
Передача форматированных данных.................................................................24
Реализация интерфейса lEnumVARIANT............................................................24
Реализация свойства _NewEnum.......................................................................25
Библиотеки типа..............................................................................................................25
Создание библиотеки типа..................................................................................26
Генерация библиотеки типа................................................................................27
Регистрация библиотеки типа............................................................................27
Возврат информации об ошибках......................................................................29
Справочник по Автоматизации
Пример программы Hello...............................................................................................29
Пример Lines....................................................................................................................40
Поддержка национальных языков................................................................................59
Реализация IDispatch для многоязычных приложений...................................60
Реализация функций-членов IDispatch.............................................................60
Создание раздельных библиотек типа..............................................................62
Определение идентификаторов местности.......................................................63
Загрузка информации о типе..............................................................................63
Интерпретация аргументов и строк в зависимости
от идентификатора местности.............................................................................64
Идентификаторы местности, языка и диалекта................................................65
Таблицы идентификаторов языков....................................................................66
Глава 3. Работа с объектами ActiveX.....................................................69
Создание сценариев на Visual Basic.............................................................................69
Доступ к удаленным объектам............................................................................71
Работа с объектами.............................................................................................74
Создание приложений и инструментальных средств, работающих
с объектами......................................................................................................................75
Доступ к объекту через VTBL...............................................................................76
Доступ к объекту через IDispatch.......................................................................77
Создание программ просмотра информации отипе..................................................83
Глава 4. Стандартные объекты и соглашения об именах.....................85
Использование стандартных объектов........................................................................85
Свойства объектов...............................................................................................86
Свойства объектов-наборов...............................................................................86
Использование объекта Application в библиотеке типа..................................89
Свойства объекта Document...............................................................................91
Объект-набор Documents....................................................................................92
Объект Font............................................................................................................93
Соглашения об именах...................................................................................................94
Предоставление интерфейсов программирования....................................................95
Доступ к содержащему объект документу.........................................................95
Доступ к содержащему объект приложению....................................................96
ЧАСТЬ 2. СПРАВОЧНОЕ РУКОВОДСТВО..................................................97
Глава 5. Диспетчерские интерфейсы и функции API.............................99
Общие сведения об интерфейсе IDispatch...................................................................99
Реализация интерфейса IDispatch.....................................................................99
IDispatch::GetlDsOfNames.................................................................................101
IDispatch::GetTypelnfo........................................................................................103
IDispatch::GetTypelnfoCount..............................................................................104
IDispatch::lnvoke................................................................................................105
Обзор диспетчерских функций API.............................................................................115
Введение
Эта книга содержит процедурную и справочную информацию об Автоматизации (Automation), которую ранее называли OLE Автоматизацией. Хотя Автоматизация доступна и на других платформах, в этой книге будут рассматриваться в основном приложения для 32-разрядных ОС Microsoft® Windows®. Чтобы извлечь максимум из этой книги, Вам потребуется знакомство с:
• Языками программирования С+ + и Microsoft Visual Basic®.
• Средами программирования Microsoft Windows 95 и Windows NT®.
• Протоколами OLE, которые реализованы с помощью динамически связываемых библиотек (DLL) и используются в сочетании с другими программами Microsoft Windows.
• Моделью многокомпонентных объектов — СОМ.
Информация, представленная в данной книге, есть также в Win32 Software Development Kit (SDK), который содержится в MSDN (Microsoft Developer Network).
Об этой книге
Книга состоит из трех частей:
Часть 1. Автоматизация
Глава 1, «Общие сведения об Автоматизации», вводит базовые понятия Автоматизации и характеризует основные компоненты.
Глава 2, «Предоставление объектов ActiveX», показывает, как создавать программируемые объекты, которые будут использоваться клиентами ActiveX, и демонстрирует на примерах приемы программирования.
Глава 3, «Работа с объектами ActiveX», объясняет, как писать приложения и инструментальные средства программирования, которые работают с объектами, предоставленными другими приложениями.
Глава 4, «Стандартные объекты и соглашения об именах», перечисляет стандартные объекты ActiveX, рекомендованные для большинства приложений, и описывает соглашения об именах объектов.
Часть 2. Справочное руководство
Глава 5, «Диспетчерские интерфейсы и функции API», описывает интерфейсы и функции, поддерживающие доступ к объектам, которые предоставлены другими приложениями.
Глава 6, «Типы данных, структуры и перечисления», описывает функции Автоматизации, предназначенные для работы с массивами, строками и вариантными типами данных.
XV
Глава 7, «Функции преобразования и работы с данными», описывает функции API Автоматизации.
Глава 8, «Библиотеки типа и язык описания объектов», описывает компилятор MIDL (Microsoft Interface Definition Language), утилиту MkTypLib и язык их исходных файлов. MIDL и MkTypLib создают библиотеки типа по составленному Вами описанию.
Глава 9, «Интерфейсы описания типа», посвящена интерфейсам и функциям, которые позволяют программам выполнять чтение описаний объектов и компоновку с ними в библиотеке типа.
Глава 10, «Интерфейсы создания типов», рассказывает об интерфейсах и функциях, позволяющих создавать библиотеки типа.
Глава 11, «Интерфейсы обработки ошибок», поясняет, как интерфейсы обработки ошибок Автоматизации определяют и возвращают информацию об ошибках.
Часть 3. Приложения
Приложение А, «Функции поддержки национальных языков», описывает функции для 32- и 16-разрядных систем, поддерживающие работу с различными национальными языками.
Приложение В, «Требуемые файлы», перечисляет файлы, которые потребуются Вам и Вашим пользователям для выполнения приложений Автоматизации.
Приложение С, «Информация для программистов на Visual Basic», дает список API Автоматизации, вызываемых операторами Visual Basic.
Приложение D, «Сравнение строк», описывает установленные Автоматизацией правила сравнения строк.
Приложение Е, «Работа с GUID», предоставляет дополнительную информацию о глобально уникальных идентификаторах.
Словарь терминов содержит определения некоторых терминов, полезных для понимания Автоматизации.
ругие источники информации
Технологии Автоматизации и ActiveX реализованы с помощью OLE COM, которая предоставляет механизмы активизации «по месту», структурированного хранилища и многие другие возможности приложений. Эти составные части OLE подробно описаны в следующих источниках:
• OLE Programmer's Reference — этот справочник содержит описание СОМ, активизации «по месту», визуального редактирования, структурированного хранилища и регистрации приложений в терминах API и интерфейсов OLE.
• Microsoft Interface Definition Language Programmer's Guide and Reference (содержится в Win32 SDK на MSDN) — описывает компилятор MIDL.
• Книга Inside OLE (2 изд.) Крейга Брокшмидта (Kraig Brockschmidt), изданная Microsoft Press® — она содержит информацию для начинающих и описание приемов реализации OLE-объектов и контейнеров.
• Если Вы разрабатываете приложения на C++, то информацию о разработке приложений Автоматизации на этом языке Вы найдете в ActiveX Control Developer's Kit и в документации к Microsoft Visual C+ + ® версии 4.x.