Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Петзолд Ч. Программирование для Windows 95 [22].pdf
Скачиваний:
76
Добавлен:
02.05.2014
Размер:
3.02 Mб
Скачать

Ч. Петзолд

Программирование для Windows® 95

в двух томах

Том II

«BHV — Санкт-Петербург»

Дюссельдорф Киев Москва Санкт-Петербург

Содержание

 

ЧАСТЬ IV ЯДРО И ПРИНТЕР........................................................................................................................................

7

ГЛАВА 13

УПРАВЛЕНИЕ ПАМЯТЬЮ И ФАЙЛОВЫЙ ВВОД/ВЫВОД .....................................................................................

9

Управление памятью: хорошо, плохо и ужасно..........................................................................................................

9

Сегментированная память .........................................................................................................................................

9

Промежуточные решения ........................................................................................................................................

11

И, наконец, 32 бита...................................................................................................................................................

11

Выделение памяти........................................................................................................................................................

14

Библиотечные функции C........................................................................................................................................

14

Фундаментальное выделение памяти в Windows 95 .............................................................................................

14

Перемещаемая память..............................................................................................................................................

15

Удаляемая память.....................................................................................................................................................

16

Другие функции и флаги..........................................................................................................................................

16

Хорошо ли это?.........................................................................................................................................................

16

Функции управления виртуальной памятью..........................................................................................................

17

Функции работы с "кучей" ......................................................................................................................................

17

Файловый ввод/вывод...................................................................................................................................................

18

Старый путь ..............................................................................................................................................................

18

Отличия Windows 95 ................................................................................................................................................

18

Функции файлового ввода/вывода, поддерживаемые Windows 95 .....................................................................

18

Ввод/вывод с использованием файлов, проецируемых в память.........................................................................

19

ГЛАВА 14

МНОГОЗАДАЧНОСТЬ И МНОГОПОТОЧНОСТЬ .............................................................................................

21

Режимы многозадачности..........................................................................................................................................

21

Многозадачность в DOS ..........................................................................................................................................

21

Невытесняющая многозадачность ..........................................................................................................................

22

Presentation Manager и последовательная очередь сообщений............................................................................

23

Решения, использующие многопоточность ...........................................................................................................

23

Многопоточная архитектура ...................................................................................................................................

23

Коллизии, возникающие при использовании потоков..........................................................................................

24

Преимущества Windows ..........................................................................................................................................

24

Новая программа! Усовершенствованная программа! Многопоточная! ............................................................

25

Многопоточность в Windows 95.................................................................................................................................

25

И снова случайные прямоугольники ......................................................................................................................

25

Задание на конкурсе программистов......................................................................................................................

28

Решение с использованием многопоточности .......................................................................................................

34

Еще есть проблемы?.................................................................................................................................................

40

О пользе использования функции Sleep .................................................................................................................

41

Синхронизация потоков...............................................................................................................................................

41

Критический раздел .................................................................................................................................................

42

Объект Mutex ............................................................................................................................................................

43

Уведомления о событиях.............................................................................................................................................

43

Программа BIGJOB1................................................................................................................................................

43

Объект Event .............................................................................................................................................................

47

Локальная память потока ........................................................................................................................................

50

ГЛАВА 15

ИСПОЛЬЗОВАНИЕ ПРИНТЕРА .....................................................................................................................

53

Печать, буферизация и функции печати ...................................................................................................................

53

Контекст принтера.....................................................................................................................................................

56

Формирование параметров для функции CreateDC ..............................................................................................

57

Измененная программа DEVCAPS .........................................................................................................................

60

Вызов функции PrinterProperties ............................................................................................................................

67

Проверка возможности работы с битовыми блоками (BitBlt) ..............................................................................

68

Программа FORMFEED ..............................................................................................................................................

68

Печать графики и текста ..........................................................................................................................................

70

Каркас программы печати .......................................................................................................................................

72

Прерывание печати с помощью процедуры Abort ................................................................................................

74

Как Windows использует функцию AbortProc.......................................................................................................

75

Реализация процедуры прерывания........................................................................................................................

75

Добавление диалогового окна печати.....................................................................................................................

77

Добавление печати к программе POPPAD.............................................................................................................

81

Обработка кодов ошибок.........................................................................................................................................

86

4

Техника разбиения на полосы ......................................................................................................................................

87

Разбиение на полосы................................................................................................................................................

87

Реализация разбиения страницы на полосы...........................................................................................................

90

Принтер и шрифты.....................................................................................................................................................

92

ЧАСТЬ V СВЯЗИ И ОБМЕН ДАННЫМИ................................................................................................................

95

ГЛАВА 16

БУФЕР ОБМЕНА...........................................................................................................................................

97

Простое использование буфера обмена.....................................................................................................................

97

Стандартные форматы данных буфера обмена .....................................................................................................

97

Передача текста в буфер обмена.............................................................................................................................

98

Получение текста из буфера обмена.......................................................................................................................

99

Открытие и закрытие буфера обмена .....................................................................................................................

99

Использование буфера обмена с битовыми образами ........................................................................................

100

Метафайл и картина метафайла ............................................................................................................................

101

Более сложное использование буфера обмена.........................................................................................................

104

Использование нескольких элементов данных....................................................................................................

104

Отложенное исполнение........................................................................................................................................

105

Нестандартные форматы данных..........................................................................................................................

106

Соответствующая программа просмотра буфера обмена ..................................................................................

108

Цепочка программ просмотра буфера обмена.....................................................................................................

108

Функции и сообщения программы просмотра буфера обмена ..........................................................................

108

Простая программа просмотра буфера обмена....................................................................................................

110

ГЛАВА 17

ДИНАМИЧЕСКИЙ ОБМЕН ДАННЫМИ.........................................................................................................

115

Основные концепции...................................................................................................................................................

116

Приложение, раздел и элемент..............................................................................................................................

116

Типы диалогов ........................................................................................................................................................

116

Символьные строки и атомы.................................................................................................................................

119

Программа сервер DDE .............................................................................................................................................

120

Программа DDEPOP1 ............................................................................................................................................

132

Сообщение WM_DDE_INITIATE.........................................................................................................................

132

Оконная процедура ServerProc .............................................................................................................................

133

Сообщение WM_DDE_REQUEST ........................................................................................................................

133

Функция PostDataMessage программы DDEPOP1..............................................................................................

134

Сообщение WM_DDE_ADVISE ...........................................................................................................................

135

Обновление элементов данных.............................................................................................................................

136

Сообщение WM_DDE_UNADVISE......................................................................................................................

136

Сообщение WM_DDE_TERMINATE ...................................................................................................................

137

Программа-клиент DDE............................................................................................................................................

137

Инициирование диалога DDE ...............................................................................................................................

144

Сообщение WM_DDE_DATA...............................................................................................................................

144

Сообщение WM_DDE_TERMINATE ...................................................................................................................

145

Управляющая библиотека DDE................................................................................................................................

145

Концептуальные различия.....................................................................................................................................

145

Реализация DDE с помощью DDEML ..................................................................................................................

146

ГЛАВА 18

МНОГООКОННЫЙ ИНТЕРФЕЙС.................................................................................................................

157

Элементы MDI ...........................................................................................................................................................

157

Windows 95 и MDI.......................................................................................................................................................

158

Пример программы ....................................................................................................................................................

159

Три меню.................................................................................................................................................................

169

Инициализация программы...................................................................................................................................

169

Создание дочерних окон.............................................................................................................................................

170

Дополнительная информация об обработке сообщений в главном окне...................................................................

170

Дочерние окна документов........................................................................................................................................

171

Освобождение захваченных ресурсов ......................................................................................................................

172

Сила оконной процедуры............................................................................................................................................

172

ГЛАВА 19

ДИНАМИЧЕСКИ ПОДКЛЮЧАЕМЫЕ БИБЛИОТЕКИ .....................................................................................

173

Основы библиотек......................................................................................................................................................

173

Библиотека: одно слово, множество значений ....................................................................................................

174

Пример простой DLL.................................................................................................................................................

174

Разделяемая память в DLL .......................................................................................................................................

177

Библиотека STRLIB ...............................................................................................................................................

178

Точка входа/выхода библиотеки...........................................................................................................................

181

Программа STRPROG............................................................................................................................................

181

Работа программы STRPROG ...............................................................................................................................

185

 

 

5

Разделение данных между экземплярами программы STRPROG .....................................................................

186

Некоторые ограничения библиотек.........................................................................................................................

186

Динамическое связывание без импорта ...................................................................................................................

187

Библиотеки, содержащие только ресурсы..............................................................................................................

187

ГЛАВА 20

ЧТО ТАКОЕ OLE?......................................................................................................................................

193

Основы OLE ................................................................................................................................................................

194

Связь с библиотеками OLE....................................................................................................................................

194

Расшифровка кода результата ...............................................................................................................................

195

Интерфейсы модели составного объекта (COM-интерфейсы)...........................................................................

197

Услуги интерфейса IUnknown ...............................................................................................................................

201

Является ли OLE спецификацией клиент/сервер?...............................................................................................

204

Сервер закрытого компонента.................................................................................................................................

204

IMALLOC.DLL .......................................................................................................................................................

208

Теперь о макросах ..................................................................................................................................................

209

Услуги, предоставляемые интерфейсом IUnknown .............................................................................................

211

Клиент закрытого компонента................................................................................................................................

213

Сервер открытого компонента ...............................................................................................................................

221

Назначение реестра ................................................................................................................................................

228

Способы генерации и использования идентификаторов CLSID........................................................................

230

Компонент фабрика классов..................................................................................................................................

231

Управление временем жизни сервера...................................................................................................................

233

Клиент открытого компонента ..............................................................................................................................

235

Заключение

..................................................................................................................................................................

242

Часть IV

Ядро и принтер