Математика

Физика

Химия

Биология

Техника и    технологии

OLE: создание элементов управления - Джон Пьюполо 1997. - 432 с.
OLE: создание элементов управления - Джон Пьюполо 1997. - 432 с.

Джон Пьюполо
OLE: создание элементов управления: пер. с англ. — К.: Издательская группа BHV,
1997. - 432 с.
ISBN 5-7315-0011-8
Практическое руководство для программистов, которые хотят создавать профессиональные элементы управления OLE. Детально рассматриваются основы объектно-ориентированной технологии, модель компонентного объекта (СОМ), СОМ-интерфейсы и технология OLE. Объясняются механизмы интеграции элементов пользовательского интерфейса, таких как меню, панели инструментов, строки состояния и страницы свойств. В книге множество примеров реально работающих программ. Отдельная глава посвящена вопросам наследования стандартных элементов управления Windows. В конце приведен обзор технологий OCX 96 и ActiveX.
Содержание
Предисловие
1. Объектно-ориентированная технология 9
Зачем нужна объектно-ориентированная технология?................... 9
Что такое объектно-ориентированная технология?.................... 10
Алгоритмическая и объектно-ориентированная декомпозиция........ 10
Пристальный взгляд на объекты............................... 11
Элементы объектно-ориентированного программирования.............. 13
Абстрагирование........................................... 13
Инкапсуляция............................................ 14
Интерфейс............................................... 14
Сообщения............................................... 14
Классы.................................................. 15
Наследование............................................. 16
Полиморфизм и динамическое связывание...................... 18
Объектно-ориентированный анализ и проектирование................. 19
ООП ...................................................... 20
Что такое объектная модель?.................................... 22
2. Модель компонентного объекта (СОМ) 23
Что такое СОМ?.............................................. 23
СОМ - это не OLE........................................... 24
СОМ-объекты................................................ 24
Модель "клиент-сервер"........................................ 26
СОМ-интерфейсы............................................. 26
И это все, что может СОМ?..................................... 27
Локальные и внутризадачные серверы............................. 27
Локальные серверы............................................ 29
Транспортировка данных.................................... 29
Заместители и посредники................................... 29
Типы данных...............'.............................. 30
Стандартная и специальная транспортировка..................... 31
Внутризадачные серверы........................................ 32
GUID...................................................... 32
Использование GUIDGEN................................... 34
Идентификаторы классов....................................... 35
423 Содержание
Когда СОМ-объект становится сервером?........................... 35
SCM ...................................................... 36
Фабрики классов.......................................... 37
Кто за что отвечает?........................................... 38
Клиенты................................................. 38
Библиотеки OLE........................................... 38
Серверы................................................. 39
Фабрики классов.......................................... 39
3. СОМ-интерфейсы 41
Что такое интерфейсы?......................................... 41
Отличительные черты интерфейсов............................... 41
Основы реализации СОМ-интерфейсов............................ 42
Имена интерфейсов........................................ 43
Имена методов............................................ 43
Указатели на интерфейс..................................... 43
Интерфейсы — это всего лишь спецификации.................... 43
Технические подробности.................................... 43
Стандартные интерфейсы....................................... 48
[Unknown................................................... 48
lUnknown в чистом виде..................................... 49
lUnknown на практике...................................... 50
Реализация (Unknown....................................... 50
Пример СОМ-сервера.......................................... 51
AddRefQ................................................. 53
ReleaseQ................................................. 54
Querylnterface()............................................ 55
Возвращаемые коды........................................... 57
1ID ...................................................... 59
IClassFactory................................................. 60
Включение, посредничество, агрегация............................. 62
Входные и выходные интерфейсы................................. 65
Пользовательские интерфейсы................................... 66
4. Что такое OLE? 69
Архитектура OLE............................................. 69
Компоненты.................................................. 70
Управление памятью........................................ 72
Структурированное хранение................................. 74
Информация о типах и библиотеки типов....................... 76
Постоянные объекты....................................... 76
Унифицированная передача данных..................t......... 77
Соединяемые объекты...................................... 78
Технология Drag-and-Drop................................... 78
Автоматизация............................................ 78
Составные документы....................................... 79
Имена, псевдонимы и привязка............................... 80
Непосредственная активизация................................ 81
Свойства, страницы свойств и сообщения об изменении свойств...... 82
424 OLE: создание элементов управления
Методы.................................................. 82
События................................................. 82
OCX против VBX............................................. 83
5. Элементы управления OLE и системный реестр 85
HKEY_CLASSES_ROOT\CLS1D.................................. 86
Записи реестра для типичных элементов управления OLE.............. 86
Доступ к реестру.............................................. 90
6. Архитектура элементов управления OLE 91
Откуда произошли элементы управления OLE?...................... 91
Что общего у элементов управления OLE?.......................... 93
Реализация в виде внутризадачного DLL-сервера.................. 93
Размещение в контейнере.................................... 93
Программирование извне.................................... 95
Поддержка визуального редактирования......................... 95
Поддержка немедленной активизации.......................... 95
Реализация стандартного набора интерфейсов.................... 95
Каковы атрибуты элементов управления OLE?....................... 96
Что можно делать с элементами управления OLE?.................... 97
IDispatch и OLE-автоматизация............................... 97
DISPID.................................................. 99
Тип VARIANT............................................ 99
Страницы свойств..........................................101
Библиотеки типов..........................................101
Что еще необходимо знать об элементах управления OLE?..............104
Глаголы.................................................104
Флаги MiscStatus...........................................105
Взаимодействие с клавиатурой................................109
Состояния активности......................................111
7. COleControl 113
8. Создание элемента управления Dates Control 117
Предварительный обзор........................................117
Программы, программы и еще раз программы.......................119
Генерация элемента управления...............................119
Исходные тексты.............................................121
DATES.H................................................122
DATES.CPP..............................................123
AFX_MANAGE STATE()....................................126
DATESCTL.H.............................................128
DECLARE OLECREATE EX(CDatesCtrl)........................134
DECLARE_OLETYPELIB(CDatesCtrl)...........................137
DECLARE PROPPAGEIDS(CDatesCtrl) •.........................137
DECLARE OLECTLTYPE(CDatesCtrl)..........................137
DECLARElDISPATCH MAP()................................138
DECLARE_EVENT_MAP()...................................139
DATESCTL.CPP...........................................139
Содержание 425
ON_OLEVERB()...........................................149
BEGIN DISPATCH MAP(theClass, baseClass).....................149
DISP FUNCTION I~D().....................................150
END DISPATCH_MAP()....................................150
BEGIN EVENT MAP(theClass, baseClass)........................150
END EVENT_MAP().......................................151
IMPLEMENT OLECREATE_EX().............................151
IMPLEMENT OLETYPELIBO................................151
IMPLEMENT~OLECTLTYPE()................................152
ODL .........~.............................................152
DATES.ODL..............................................152
Просмотр исходных текртов MFC.................................154
Проверка элемента управления...................................155
9. Усовершенствование элемента управления Dates Control 157
Архитектура элемента управления Dates Control......................157
DATESCTL.H.............................................159
DATESCTL.CPP...........................................162
COMMON.H.............................................170
DAYS.H.................................................170
DAYS.CPP...............................................173
Согласование меню...........................................180
DATES.RC...............................................181
InvalidateControl()..........................................186
Плоды трудов................................................187
10. Добавление свойств к Dates Control 189
Что такое свойства?...........................................189
Базовые свойства..........................................191
Внешние свойства.........................................193
Расширенные свойства......................................198
Пользовательские свойства...................................200
Переменные-члены, методы оповещения и методы чтения/записи.....200
Добавление свойств...........................................201
DATESCTL.H.............................................202
DATESCTL.CPP...........................................205
DATES.ODL..............................................213
Свойства по умолчанию........................................215
Новые свойства..............................................215
Функции GetNotSupported() и SetNotSupportedQ.....................216
Функция ThrowError().........................................216
Ограничение доступа к свойству..................................217
Свойства перечислимого типа....................................217
11. Добавление страниц свойств к Dates Control 223
Что такое страницы свойств?....................................223
Класс COle Property Page........................................224
Страницы базовых свойств......................................225
Пользовательские страницы свойств...............................226
426 OLE: создание элементов управления
DATESPPG.H.............................................227
DATESPPG.CPP...........................................229
DATESCTL.H.............................................231
DATESCTL.CPP...........................................234
CUSTOMPR.H............................................243
CUSTOMPR.CPP..........................................244
Некоторые наблюдения........................................247
DDP ......................................................247
Многократное использование страниц свойств.......................249
Тестирование страниц свойств...................................249
Интерфейсы IPropertyPage и I PropertyPage2.........................249
Упражнение.................................................249
12. Добавление функций поддержки постоянства к Dates Control 251
Я постоянен, следовательно, я существую...........................251
Пример из жизни..........................................253
Дилемма сериализации данных................................254
DATES.CPP..............................................256
DATESCTL.H.............................................257
DATESCTL.CPP...........................................260
Из DATES.RC............................................274
Метод DoPropExchangeQ и РХ-функции.........................275
Итоги......................................................275
Проверка функций постоянства..................................277
13. Добавление методов автоматизации к Dates Control 279
Что такое методы?............................................279
У методов есть внешние имена................................279
У методов есть внутренние имена..............................279
У методов есть идентификаторы диспетчеризации (DISPID).........280
Методы могут иметь произвольное число параметров и
возвращать значения......................................280
Базовые методы...........................................281
Пользовательские методы....................................281
Реализация методов...........................................282
DATESCTL.H.............................................283
DATESCTL.CPP...........................................286
DATES.ODL..............................................297
Итоги......................................................299
14. Добавление событий к Dates Control 301
Что такое события?............................................301
Виды событий...............................................302
Базовые события....................,.....................303
Поддержка базовых событий в классе COleControl.................303
События-запросы..........................................304
События-предупреждения....................................305
События-следствия.........................................305
События-директивы........................................305
Содержание 427
События и повторные вызовы....................................306
События, соединяемые объекты и точки соединения..................307
Источники и приемники событий................................308
Реализация событий...........................................309
DATESCTL.H.............................................309
DATESCTL.CPP...........................................313
DATES.ODL..............................................325
Итоги......................................................327
Поддержка дополнительных событий..............................328
Тестирование событий.........................................330
15. Поддержка версий 331
Структура VERS1ONINFO......................................333
16. Лицензирование 335
Интерфейс IClassFactory2.......................................335
Когда необходимо лицензирование?...............................336
Лицензирование на этапе проектирования.......................336
Лицензирование на этапе выполнения..........................338
Библиотека MFC и лицензирование............................339
Какой способ лучше?..........................................339
17. Создание элемента управления PicView Control 341
Нарисуй это!.........................

Цена: 300руб.

Назад

Заказ

На главную страницу

Hosted by uCoz