Приложения
Приложение 1. Справочник API-функций и сообщений Windows.
В силу ограниченного объема книги мы не можем дать полный список API-функций — их насчитывается более двух тысяч. Мы даем список API-функций, которые содержатся в данной книге с кратким комментарием и указанием глав, где они были использованы или хотя бы упомянуты. Вторая таблица посвящена сообщениям Windows.
Таблица 1. Функции API.
В третьей колонке таблицы указываются не вообще все места, где упоминается данная функция, а места, где разъясняется смысл этой функции либо просто упоминается (если нет другой информации), либо упоминается в первый раз.
Назначение функции | Где существенным образом упоминается | |
---|---|---|
AllocConsole | Создать консоль | Глава 2.2. Консольные приложения. |
Arc | Рисовать дугу | Упоминание в Главе 2.1. |
BeginPaint | Получить контекст при получении сообщения WM_PAINT | Глава 2.1. См. программу на Рис. 2.1.1. |
BitBlt | Скопировать виртуальную прямоугольную область в окно | Глава 2.1 и программа на Рис. 2.1.6. |
CallNextHookEx | Продолжить выполнение других фильтров. | Глава 3.7, раздел "Фильтры". |
CallWindowProc | Вызвать процедуру окна. | Глава 3.5. Использование подклассов. |
CharToOem | Функция перекодировки строки. | Глава 2.2. Программа на Рис. 2.2.3. |
CloseHandle | Закрыть объект: файл, консоль, коммуникационный канал, созданный функцией CreateFile, CreatePipe и т.п. | Глава 2.5. |
CreateCompatibleBitmap | Создать карту бит, совместимую с заданным контекстом. | Глава 2.1, программа на Рис. 2.1.6. |
CreateCompatibleDC | Создать контекст, совместимый с данным окном. | Глава 2.1, программа на Рис. 2.1.6. |
CreateDialogParam | Создать немодальное диалоговое окно. | Глава 2.3, программа на Рис. 2.3.5. |
CreateEvent | Создать событие. | Глава 3.2. События. |
CreateFile | Создать или открыть файл, консоль, коммуникационный канал и т.п. | Глава 2.5. |
CreateFileMapping | Создать отображаемый файл. | Глава 3.5, раздел II. |
CreateFont | Задать параметры шрифта. | Упоминается в главе 2.1. |
CreateFontIndirect | Задать параметры шрифта. | Глава 2.1. |
CreateMutex | Создать объект синхронизации "взаимоисключение" | Глава 3.2. Взаимоисключения. |
CreatePen | Создать перо. | Глава 2.1, раздел III. |
CreatePipe | Создать канал обмена информацией. | Глава 3.5, раздел IV. |
CreateProcess | Создать новый процесс. | Глава 3.2. программа 3.2.1. |
CreateSemaphore | Создать семафор. | Глава 3.2. Семафоры. |
CreateSolidBrush | Определить кисть. | Глава 2.1, программа на Рис. 2.1.1. |
CreateThread | Создать поток. | Глава 3.2, программа на Рис. 3.2.2. |
CreateWindow | Создать окно. | Глава 1.2. Начала программирования в Windows. |
CreateWindowEx | Расширенное создание окна. | Глава 1.2. |
DefWindowProc | Вызывается для сообщений, которые не обрабатываются функцией окна. | Глава 1.2, программа на Рис. 1.2.1. |
DeleteCriticalSection | Удалить объект "критическая секция". | Глава 3.2. Критические секции. |
DeleteDC | Удалить контекст, полученный посредством функций типа CreatePen или CreateDC. | Глава 2.1, программа на Рис. 2.1.6. |
DeleteObject | Удалить объект, выбранный функцией SelectObject. | Глава 2.1, программа на Рис. 2.1.3. |
DestroyMenu | Удалить меню из памяти. | Глава 2.4, программа на Рис. 2.4.1. |
DestroyWindow | Удалить окно из памяти. | Глава 2.3, программа на Рис. 2.3.5. |
DeviceIoControl | Вызов сервиса динамического виртуального драйвера. | Глава 4.7. См. раздел "Динамические драйверы". |
DialogBox | Создать модальное диалоговое окно. | Глава 2.3. |
DialogBoxParam | Создать немодальное диалоговое окно. | Глава 2.3, программа на Рис. 2.3.2. |
DispatchMessage | Вернуть управление Windows с передачей сообщения предназначенному окну. | Глава 1.2. |
Ellipse | Рисовать эллипс. | Глава 2.1. |
EndDialog | Удалить модальное диалоговое окно. | Глава 2.3. См. Рис. 2.3.2. |
EndPaint | Удалить контекст, полученный при помощи BeginPaint. | Глава 2.1, программа на Рис. 2.1.1. |
EnterCriticalSection | Войти в критическую секцию. | Глава 3.2. Критические секции. |
EnumWindows | Пересчитать окна. | Глава 3.5, раздел VIII. |
ExitProcess | Закончить данный процесс со всеми подзадачами (потоками). | Глава 1.2. |
ExitThread | Выход из потока с указанием кода выхода. | Глава 3.2. |
FindFirstFile | Первый поиск файлов в каталоге. | Глава 2.5. Поиск файлов. |
FindNextFile | Осуществить последующий поиск в каталоге. | Глава 2.5. Поиск файлов. |
FlushViewOfFile | Сохранить отображаемый файл или его часть на диск. | Глава 3.5. |
FreeConsole | Освободить консоль. | Глава 2.2. См. программу на Рис. 2.2.3. |
FreeLibrary | Выгрузить динамическую библиотеку. | Глава 3.3. См. программу на Рис. 3.3.3. |
GetCommandLine | Получить командную строку программы. | Глава 2.2. |
GetCursorPos | Получить положение курсора в экранных координатах. | Глава 3.1, программа на Рис. 3.1.3. |
GetDC | Получить контекст окна. | Глава 2.1. См. программу на Рис. 2.1.6. |
GetDiskFreeSpace | Определяет объем свободного пространства на диске. | Глава 3.4., раздел I. |
GetDlgItem | Получить дескриптор управляющего элемента в окне. | Глава 3.1. См. Рис. 3.1.3. |
GetDriveType | Получить тип устройства. | Глава 3.4. См. программу на Рис. 3.4.1. |
GetLocalTime | Получить местное время. | Глава 3.1. См. программу на Рис. 3.1.2. |
GetMenuItemInfo | Получить информацию о выбранном пункте меню. | Глава 2.4. См. программу на Рис. 2.4.1. |
GetMessage | Получить очередное сообщение из очереди сообщений данного приложения. | Глава 1.2. |
GetModuleHandle | Получить дескриптор приложения. | Глава 1.2, программа на Рис. 1.2.2. |
GetProcAddress | Получить адрес процедуры (в динамической библиотеке). | См. главу 3.3. |
GetStdHandle | Получить дескриптор консоли. | Глава 2.2. |
GetStockObject | Определить дескриптор стандартного объекта. | См. главу 1.4. |
GetSystemDirectory | Получить системный каталог. | Глава 3.2. |
GetSystemMetrics | Определить значение системных характеристик. | Глава 2.1, программа на Рис. 2.1.6. |
GetSystemTime | Получить время по Гринвичу. | Упоминается в главе 3.1. |
GetTextExtentPoint32 | Определить параметры текста в данном окне. | Глава 2.1, программа на Рис. 2.1.2. |
GetWindowRect | Определить размер окна. | Глава 2.1, программа на Рис. 2.1.2. |
GetWindowsDirectory | Получить каталог Windows. | Глава 3.2. |
GetWindowText | Получить заголовок окна. | Глава 3.5, программа на Рис. 3.5.4. |
GetWindowThreadProcessId | Получить идентификатор процесса. | Глава 3.5, программа на Рис. 3.5.4. |
GlobalAlloc | Выделить блок памяти. | Глава 3.7. См. раздел III. |
GlobalDiscard | Удалить удаляемый блок памяти. | Глава 3.7. См. раздел III. |
GlobalFree | Освободить блок памяти. | Глава 3.7. См. раздел III. |
GlobalLock | Фиксировать перемещаемый блок памяти. | Глава 3.7. См. раздел III. |
GlobalReAlloc | Изменить размер блока памяти. | Глава 3.7. См. раздел III. |
GlobalUnlock | Снять фиксацию блока памяти. | Глава 3.7. См. раздел III. |
InitializeCriticalSection | Создать объект критическая секция. | Глава 3.2. Программа на Рис. 3.2.3. |
InvalidateRect | Перерисовать окно. | Глава 2.1. См. программу на Рис. 2.1.6. |
KillTimer | Удалить таймер. | Глава 3.1. См. программу на 3.1.1. |
LeaveCriticalSection | Покинуть критическую секцию. | Глава 3.2. Программа на Рис. 3.2.3. |
LineTo | Провести линию от текущей точки к заданной. | Глава 2.1. Программа на Рис. 2.1.6. |
LoadAccelerators | Загрузить таблицу акселераторов. | |
LoadCursor | Загрузить системный курсор или курсор, определенный в файле ресурсов. | Глава 1.2.2. |
LoadIcon | Загрузить системную иконку или иконку, определенную в файле ресурсов. | Глава 1.2.2. |
LoadLibrary | Загрузить динамическую библиотеку. | Глава 3.3, программа на Рис. 3.3.3. |
LoadMenu | Загрузить меню, которое определено в файле ресурсов. | Глава 2.3. См. программу на Рис. 2.3.3. |
LoadString | Загрузить строку, определенную в файле ресурсов. | Глава 2.3, программа на Рис. 2.3.2. |
lstrcat | Производит конкатенацию двух строк. | Впервые упоминается в главе 2.5. |
lstrcpy | Скопировать одну строку в другую. | Впервые упоминается в главе 2.5. |
lstrlen | Получить длину строки. | Впервые упоминается в главе 2.5. |
MapViewOfFile | Скопировать файл или части файла в память. | Глава 3.5. См. раздел II. |
MessageBox | Выдать окно сообщения. | Глава 1.2. |
MoveToEx | Сменить текущую точку. | Глава 2.1, программа на Рис. 2.1.6. |
MoveWindow | Установить новое положение программа окна. | Глава 3.1, на Рис. 3.1.3. |
OpenEvent | Открыть событие. | Глава 3.2. См. раздел События. |
OpenSemaphore | Открыть семафор. | Глава 3.2. См. раздел "Семафоры". |
PatBlt | Заполнить заданную прямоугольную область. | Глава 2.1, программа на Рис. 2.1.6. |
Pie | Рисовать сектор эллипса. | Упоминается в главе 2.1. |
PostMessage | Аналогична SendMessage, но сразу возвращает управление. | Глава 3.3, программа на Рис. 3.3.6. |
PostQuitMessage | Послать текущему приложению сообщение WM_QUIT. | Глава 1.2. |
ReadConsole | Читать из консоли. | Глава 2.2. См. раздел II. |
ReadFile | Читать из файла или того, что было создано функцией CreateFile. | Глава 2.5 |
Rectangle | Рисовать прямоугольник. | Глава 2.1, раздел III. |
RegisterClass | Зарегистрировать класс окон. | Глава 1.2. |
RegisterHotKey | Зарегистрировать горячую клавишу. | Глава 2.4, программа на Рис. 2.4.2. |
ReleaseDC | Удалить контекст, полученный при помощи GetDC | Глава 2.1, программа на Рис. 2.1.6. |
ReleaseSemaphore | Освободить семафор | Глава 3.2. См. раздел "Семафоры". |
ResetEvent | Сбросить событие | Глава 3.2. См. раздел "События". |
ResumeThread | Запустить "спящий" процесс. | Глава 3.2, раздел II. |
RoundRect | Рисовать прямоугольник с округленными углами. | Глава 2.1. |
RtlMoveMemory | Копировать блок памяти в другой блок. В помощи по API-функциям она называется MoveMemory. | Глава 3.4, программа на Рис. 3.4.4. |
SelectObject | Выбрать объект (перо, кисть) в указанном контексте. | Глава 2.1, программа на Рис. 2.1.3. |
SendDlgItemMessage | Послать сообщение управляющему элементу окна. | Глава 2.4. |
SendMessage | Послать сообщение окну. | Глава 1.3, программа на Рис. 1.3.2. |
SetBkColor | Установить цвет фона для вывода текста. | Глава 2.1. Программа на Рис. 2.1.1. |
SetConsoleCursorPosition | Установить курсор в заданную позицию в консоли. | Глава 2.2, программа на Рис. 2.2.3. |
SetConsoleScreenBufferSize | Установить размер буфера консоли. | Глава 2.2, программа на Рис. 2.2.3. |
SetConsoleTextAttribute | Установить цвет текста в консоли. | Глава 2.2, программа на Рис. 2.2.3. |
SetConsoleTitle | Установить название окна консоли. | Глава 2.2, программа на Рис. 2.2.3. |
SetEvent | Подать сигнал о наступлении события. | Глава 3.2. См. раздел "События". |
SetFocus | Установить фокус на заданное окно. | Глава 1.3. |
SetLocalTime | Установить время и дату. | Упоминается в главе 3.1. |
SetMapMode | Установить соотношение между логическими единицами и пикселями. | Упоминается в главе 2.1. |
SetMenu | Назначить новое меню данному окну. | Глава 2.3, программа на Рис. 2.3.3. |
SetPixel | Установить заданный цвет пикселя. | Глава 2.1, программа на Рис. 2.1.6. |
SetSystemTime | Установить время, используя гринвичские координаты. | Упоминается в главе 3.1. |
SetTextColor | Установить цвет текста. | Глава 2.1, программа на Рис. 2.1.1. |
SetTimer | Установить таймер. | Глава 3.1. |
SetViewportExtEx | Установить область вывода. | Глава 2.1. |
SetViewportOrgEx | Установить начало области вывода. | Глава 2.1. |
SetWindowLong | Изменить атрибут уже созданного окна. | Глава 3.5. См. раздел III. |
SetWindowsHookEx | Установить процедуру-фильтр. | Глава 3.7, программа на Рис. 3.7.5. |
Shell_NotifyIcon | Посредством данной функции можно поместить иконку приложения на системную панель. | Глава 3.5. См. программу на Рис. 3.5.1. |
SHFileOperation | Осуществляет групповую операцию над файлами и каталогами. | Глава 3.5. См. раздел VI. |
SHGetDesktopFolder | Выводит диалоговое окно для выбора каталогов и файлов. | Глава 3.5. См. раздел VI. |
ShowWindow | Показать окно, установить статус показа. | Глава 1.2. |
Sleep | Вызывает задержку. | Глава 3.2. см. рис. 3.2.2. |
TerminateProcess | Уничтожить процесс. | Глава 3.2. См. программу на Рис. 3.2.1. |
TerminateThread | Удалить поток. | Глава 3.2. См. программу 3.2.1. |
TextOut | Вывести текст в окно. | Глава 2.1. |
timeKillEvent | Удалить таймер. | Глава 2.2. См. раздел III. |
timeSetEvent | Установить таймер. | Глава 2.2. См. раздел III. |
TranslateAccelerator | Транслирует акселераторные клавиши в команду выбора пункта меню. | Глава 2.3. См. раздел III. |
TranslateMessage | Транслировать клавиатурные сообщения в ASCII-коды. | Глава 1.2. |
UnhookWindowsHookEx | Снять процедуру-фильтр. | Глава 3.6. Программа на Рис. 3.6.5. |
UnmapViewOfFile | Сделать указатель на отображаемый файл недействительным. | Глава 3.5. См. раздел II. |
UnregisterHotKey | Снять регистрацию горячей клавиши. | Глава 2.4, программа на Рис. 2.4.2. |
UpdateWindow | Обновить рабочую область окна. | Глава 1.2. |
VirtualAlloc | Зарезервировать блок виртуальной памяти или отобразить на него физическую память. | Глава 3.6. См. раздел III. |
VirtualFree | Снять резервирование с блока виртуальной памяти или сделать блок виртуальной памяти неотображенным. | Глава 3.6. См. раздел III. |
WaitForSingleObject | Ожидает одно из двух событий: определенный объект сигнализирует о своем состоянии, вышло время ожидания (TimeOut). Работает с такими объектами, как семафор, событие, взаимоисключение, процесс, консольный ввод и др. | Глава 3.2. См. раздел "Семафоры". |
WNetAddConnection2 | Осуществляет соединение с сетевым ресурсом локальной сети. | Глава 3.4. |
WNetCancelConnection2 | Отсоединить от ресурса локальной сети. | Глава 3.4. |
WNetCloseEnum | Найти все ресурсы локальной сети данного уровня. | Глава 3.4. |
WNetGetConnection | Получить информацию о данном соединении. | Глава 3.4. |
WNetOpenEnum | Открыть поиск ресурсов в локальной сети. | Глава 3.4. |
WriteConsole | Вывод в консоль. | Глава 2.2, программа на Рис. 2.2.1. |
wsprintf | Преобразовать последовательность параметров в строку. | Глава 2.2. См. программу на Рис. 2.2.4. |
Таблица 2. Сообщение операционной системы Windows.
В третьей колонке таблицы указываются не вообще все места, где упоминается данное сообщение, а места, где разъясняется смысл этого сообщения, либо просто упоминается, если нет другой информации.
Сообщение системы | Назначение | Где существенным образом упоминается |
---|---|---|
WM_ACTIVATE | Посылается функции окна перед активизацией и деактивизацией этого окна. | Глава 2.4. |
WM_ACTIVATEAPP | Посылается функции окна перед активизацией окна другого приложения. | Глава 2.4. |
WM_CHAR | Сообщение, возникающее при трансляции сообщения WM_KEYDOWN функцией TranslateMessage. | Главы 1.2, 2.4. |
WM_CLOSE | Сообщение, приходящее на процедуру окна при его закрытии. Приходит до WM_DESTROY. Дальнейшее выполнение DefWindowProc, EndDialog или WindowsDestroy и вызывает появление сообщения WM_DESTROY. | Глава 2.3. |
WM_COMMAND | Сообщение, приходящее на функцию окна, при наступлении события с управляющим элементом, пунктом меню, а также от акселератора. | Главы 1.3, 2.3. |
WM_CREATE | Первое сообщение, приходящее на функцию окна при его создании. Приходит один раз. | См. подробнее Гл. 1.2. |
WM_DEADCHAR | Сообщение, возникающее при трансляции сообщения WM_KEYUP функцией TranslateMessage. | Глава 1.2. |
WM_DESTROY | Сообщение, приходящее на функцию окна при его уничтожении. | Подробнее см. Гл. 1.2. |
WM_GETTEXT | Посылается окну для получения текстовой строки, ассоциированной с данным окном (строка редактирования, заголовок окна и т.д.). | Глава 1.3, см. программу на Рис. 1.3.2. |
WM_HOTKEY | Генерируется при нажатии горячей клавиши. | Глава 2.4 и программа на Рис. 2.4.2. |
WM_INITDIALOG | Сообщение, приходящее на функцию диалогового окна вместо сообщения WM_CREATE. | Глава 2.3. |
WM_KEYDOWN | Сообщение, генерируемое при нажатии клавиши клавиатуры и посылаемое окну, имеющему фокус ввода. | Главы 1.2, 2.3. |
WM_KEYUP | Сообщение, генерируемое при отпускании клавиши клавиатуры и посылаемое окну, имеющему фокус ввода. | Главы 1.2, 2.3. |
WM_LBUTTONDOWN | Сообщение генерируется при нажатии левой кнопки мыши. | Глава 1.2. |
WM_MENUSELECT | Посылается окну, содержащему меню, при выборе пункта меню. | Глава 2.4. |
WM_PAINT | Сообщение посылается окну перед его перерисовкой. | Главы 1.2, 1.3. |
WM_QUIT | Сообщение, приходящее приложению (не окну) при выполнении функции PostQuitMessage. При получении этого сообщения происходит выход из цикла ожидания и, как следствие, выход из программы. | Глава 1.2. См. комментарий к программе на Рис. 1.2.2. |
WM_RBUTTONDOWN | Сообщение генерируется при нажатии правой кнопки мыши. | Глава 1.2, программа на рис. 1.2.2. |
WM_SETFOCUS | Сообщение, посылаемое окну, после того, как оно получило фокус. | Глава 1.3, программа на Рис.1.3.2 |
WM_SETICON | Приложение посылает окну данное сообщение, чтобы ассоциировать с ним новую иконку (значок). | Глава 2.3. |
WM_SETTEXT | Сообщение, используемое приложением для посылки текстовой строки окну и интерпретируемое в зависимости от типа окна (обычное окно - заголовок, кнопка — надпись на кнопке, окно редактирования - содержимое этого окна и т.д.). | Глава 1.3, см. программу на Рис. 1.3.2. |
WM_SIZE | Посылается функции окна после изменения его размера. | Глава 3.5, см. программу на Рис. 3.5.1. |
WM_SYSCHAR | Сообщение, возникающее при трансляции сообщения WM_SYSKEYDOWN функцией TranslateMessage. | Глава 1.2. |
WM_SYSCOMMAND | Генерируется при выборе пунктов системного меню или меню окна. | Глава 2.3. См. также Рис. 2.3.4. |
WM_SYSDEADCHAR | Сообщение, возникающее при трансляции сообщения WM_SYSKEYUP функцией TranslateMessage. | Глава 1.2. |
WM_SYSKEYDOWN | Сообщение аналогично WM_KEYDOWN, но генерируется, когда нажата и удерживается еще и клавиша Alt. | Главы 1.2, 2.3. |
WM_SYSKEYUP | Сообщение аналогично WM_SYSKEYDOWN, но генерируется при отпускании клавиши. | Главы 1.2, 2.3. |
WM_TIMER | Сообщение, приходящее на функцию окна или специально определенную таймерную процедуру после определения интервала таймера при помощи функции SetTimer. | Глава 3.1 полностью посвящена данному сообщению. |
WM_VKEYTOITEM | Сообщение окну приложения, когда нажимается какая-либо клавиша при наличии фокуса на данном списке. Список должен иметь свойство LBS_WANTKEYBOARDINPUT. | Глава 2.4. |