Assembler для Windows

Смотреть откровенные фото



Приложения

Приложение 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.