;struc.inc - описываем
используемые структуры
;Описание этих структур можно найти
в справочной системе
интегрированной среды разработки
;приложений для Windows C++,если она
установлена на вашем компьютере
;winuser.h
;структура,описывающая класс
основного окна
WNDCLASSEX struc
cbSize dd ? ;размер в байтах этой
структуры
style dd ? ;стиль окна
lpfnWndProc dd ? ;обработчик событий окна(оконная
процедура)
cbClsExtra dd ? ;число дополнительных байт
после структуры(0)
cbWndExtra dd ? число дополнительных байт
после окна(0)
hInstance dd ? ;идентификатор нашего
процесса
hIcon dd ? ;идентификатор иконки
hCursor dd ? ;идентификатор курсора
hbrBackground dd ? ;цвет фона
lpszMenuName dd ? ;ресурс в основном меню
lpszClassName dd ? ;имя класса основного
окна
hIconSm dd ? ;идентификатор маленькой
иконки
WNDCLASSEX ends
;эта структура заполняеться каждый
раз,когда окно получает какое-то
сообщение
MSG struc
hwnd dd ? идентификатор окна,которое
получило сообщение
message dd ? ;номер сообщения
wParam dd ? ;определяет дополнительную
информацию о сообщении
lParam dd ? ;определяет дополнительную
информацию о сообщении
time dd ? ;определяет время в котором
сообщение было объявлено
pt dd ? ;позиция курсора,в экранных
координатах(пикселях),когда
сообщение было объявлено
MSG ends
;эта cтруктура содержит информацию
для приложения. Эта информация
может использоваться,
;чтобы окраcить область клиента
окна принадлежащую этому
приложению.
PAINTSTRUCT struc
hdc dd ? ;Идентифицирует дисплейный
контекст для перерисовки
fErase dd ? ;определяет должен ли фон
быть стерт
RECT dd 4 dup(?) ;определяет RECT структуру(см.ниже)
fRestore dd ? ;зарезервированно
fIncUpdate dd ? ;зарезервированно
rgbReserved dd 16 dup(?) ;зарезервированно
PAINTSTRUCT ends
;Структура определяет координаты
верхних-левых и нижних-правых углов
прямоугольника
RECT struc
rcLeft dd ? ;определяет x-координату
верхнего-левого угла
прямоугольника
rcTop dd ? ;определяет y-координату
верхнего-левого угла
прямоугольника
rcRight dd ? ;определяет x-координату
более низкого-правого угла
прямоугольника
rcBottom dd ? ;определяет y-координату
более низкого-правого угла
прямоугольника
RECT ends
;Const.inc - здесь
находяться необходимые нам
константы:
;стили окон,сообщения,флаги и др.
;все их можно найти в файле winuser.h или
др.включаемых файлах(они
находяться в папке
;INCLUDE интегрированной среды
разработки,а их описание в
справочной системе)
CS_HREDRAW equ 2h ;перерисовать окно при
изменении ширины окна
CS_VREDRAW equ 1h ;перерисовать окно при
изменении высоты окна
COLOR_WINDOW equ 5 ;цвет фона окна
IDC_ARROW equ 32512
CW_USEDEFAULT equ 80000000h ;размер окна по
умолчанию
SW_SHOWNORMAL equ 1
WM_PAINT equ 000Fh ;перерисовать часть окна
WM_DESTROY equ 2 ;была вызвана функция
уничтожения окна
WM_CREATE equ 0001h ;была вызвана функция
создания окна
WM_LBUTTONDOWN = 0201h ;была нажата левая
кнопка мыши
WM_CLOSE = 0010h ;окно было закрыто
WM_INITDIALOG = 110h ;была вызвана функция
создания диалового окна
WM_COMMAND = 0111h ;сообщение от меню
MB_OK = 0 ;кнопка MB_OK
;mac.inc -
макроопределения макрокоманд
;string_out - вывод строки символов в
рабочую область окна(неформатированный
текст)
;параметры:
;par1 - длина выводимой строки
;par2 - адрес строки
;par3 - y-координата
;par4 - x-координата
string_out macro par1,par2,par3,par4
push par1
push offset par2
push par3
push par4
push hdc ; дескриптор контекста
устройства
call TextOut
endm
;Файл Win32API.inc - здесь
мы описываем импортируемые функции
;из библиотек динамической
компоновки(файлы с расширением DLL) и
тот способ их подключения,
который использует комптлятор
фирмы Microsoft.
;Описание этих функций можно найти
в справочной системе
интегрированной среды разработки
;приложений для Windows C++,если она
установлена на вашем компьютере
includelib kernel32.lib
extrn __imp__GetModuleHandleA@4:dword
extrn __imp__ExitProcess@4:dword
ExitProcess equ __imp__ExitProcess@4
GetModuleHandle equ __imp__GetModuleHandleA@4
includelib user32.lib
extrn __imp__MessageBoxA@16:dword
extrn __imp__CreateWindowExA@48:dword
extrn __imp__LoadIconA@8:dword
extrn __imp__LoadCursorA@8:dword
extrn __imp__RegisterClassExA@4:dword
extrn __imp__UpdateWindow@4:dword
extrn __imp__ShowWindow@8:dword
extrn __imp__GetMessageA@16:dword
extrn __imp__TranslateMessage@4:dword
extrn __imp__DispatchMessageA@4:dword
extrn __imp__PostQuitMessage@4:dword
extrn __imp__DefWindowProcA@16:dword
extrn __imp__BeginPaint@8:dword
extrn __imp__EndPaint@8:dword
extrn __imp__InvalidateRect@12:dword
extrn __imp__GetClientRect@8:dword
extrn __imp__DrawTextA@20:dword
extrn __imp__DialogBoxParamA@20:dword
extrn __imp__GetDlgItem@8:dword
extrn __imp__GetDlgItemTextA@16:dword
extrn __imp__SetFocus@4:dword
extrn __imp__SetDlgItemTextA@12:dword
extrn __imp__EndDialog@8:dword
MessageBox equ __imp__MessageBoxA@16
LoadIcon equ __imp__LoadIconA@8
LoadCursor equ __imp__LoadCursorA@8
RegisterClassEx equ __imp__RegisterClassExA@4
CreateWindowEx equ __imp__CreateWindowExA@48
UpdateWindow equ __imp__UpdateWindow@4
ShowWindow equ __imp__ShowWindow@8
GetMessage equ __imp__GetMessageA@16
DispatchMessage equ __imp__DispatchMessageA@4
TranslateMessage equ __imp__TranslateMessage@4
DefWindowProc equ __imp__DefWindowProcA@16
PostQuitMessage equ __imp__PostQuitMessage@4
BeginPaint equ __imp__BeginPaint@8
EndPaint equ __imp__EndPaint@8
InvalidateRect equ __imp__InvalidateRect@12
GetClientRect equ __imp__GetClientRect@8
DrawText equ __imp__DrawTextA@20
DialogBoxParam equ __imp__DialogBoxParamA@20
GetDlgItem equ __imp__GetDlgItem@8
GetDlgItemText equ __imp__GetDlgItemTextA@16
SetFocus equ __imp__SetFocus@4
SetDlgItemText equ __imp__SetDlgItemTextA@12
EndDialog equ __imp__EndDialog@8
includelib gdi32.lib
extrn __imp__TextOutA@20:dword
TextOut equ __imp__TextOutA@20
includelib shell32.lib
extrn __imp__ShellExecuteA@24:dword
ShellExecute equ __imp__ShellExecuteA@24