Файл windows.h
Исходные тексты любого приложения Windows включают файл windows.h:
#include <windows.h>
Этот файл содержит множество определений типов данных, макросов, прототипов функций, констант и т. д.
Наряду с этим файлом вы можете включить в приложения и другие, знакомые вам по MS-DOS, include-файлы, такие, как stdlib.h и string.h.
Если в проекте Borland C++ for Windows версии 3.1 указывается, что создается приложение Windows, компилятор определяет символ _WINDOWS. Этот символ влияет на включаемые файлы стандартной библиотеки Си. В частности, из include-файлов могут быть исключены прототипы функций, не совместимых с Windows.
Перед включением файла windows.h для выполнения более строгой проверки типов рекомендуется определить символ STRICT:
#define STRICT
После включения этой строки многие типы данных определяются по-другому. В частности, все многочисленные идентификаторы ресурсов Windows, такие, как идентификатор контекста, идентификатор окна и т. п., определяются как различные типы данных. При этом вы не сможете по ошибке выполнить, например, присваивание идентификатора окна переменной, предназначенной для хранения идентификатора контекста отображения или идентификатора меню.
Есть целый набор символов, при определении которых из файла windows.h будут исключены определения функций или типов данных, связанных с отдельными подсистемами Windows. Вы можете определить эти символы для ускорения обработки файла windows.h при трансляции (разумеется, если соответствующие подсистемы не используются вашим приложением). Приведем список некоторых из таких символов.
Символ | Что исключает |
NOATOM | Прототипы функций для работы с атомами |
NOCLIPBOARD | Прототипы функций, идентификаторы сообщений и константы для работы с универсальным буфером обмена Clipboard |
NOCOMM | Прототипы функций, структуры и константы для работы с портом последовательной передачи данных |
NOCTLMGR | Прототипы функций для работы с диалоговыми панелями, структуры и константы для работы с диалоговыми панелями, сообщения WM_CTLCOLOR, WM_GETFONT, WM_SETFONT, стили органов управления |
NOCOLOR | Прототипы функций GetSysColor, SetSysColor и константы с префиксом COLOR |
NODRAWTEXT | Прототип функции DrawText и связанные с этой функцией константы |
NOGDI | Все определения функций и констант для графического интерфейса GDI |
NOHELP | Функцию WinHelp, структуры и константы для нее |
NOICONS | Идентификаторы встроенных пиктограмм |
NOKERNEL | Прототип функции WinMain, определения всех функций ядра Windows, структур данных и константы |
NOMB | Прототип функций MessageBox, MessageBeep и константы для них |
NOMENUS | Прототипы функций и константы для работы с меню |
NOMETAFILE | Прототипы функций и константы для работы с метафайлами |
NOSYSCOMMANDS | Константы системных команд с префиксом SC |
NOUSER | Прототипы и определения констант для пользовательских функций (эти функции относятся к программному интерфейсу Windows и вызываются приложениями) |
NOVIRTUALKEYCODES | Коды виртуальных клавиш |
NOWINMESSAGES | Определения кодов сообщений Windows |
NOWINSTYLES | Константы для определения стилей окон |