Ассемблер для Windows

       

Процедура главного окна



Процедура главного окна

.

Вот прототип функции19 окна на языке С:

LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

Оставив в стороне тип возвращаемого функцией значения20, обратите внимание на передаваемые параметры. Вот смысл этих параметров: hwnd — идентификатор окна, message — идентификатор сообщения, wParam и lParam — параметры, уточняющие смысл сообщения (для каждого сообщения могут играть разные роли или не играть никаких). Все четыре параметра, как вы, наверное, уже догадались, имеют тип DWORD.

А теперь рассмотрим "скелет" этой функции на языке ассемблера.

WNDPROC PROC PUSH EBP MOV EBP, ESP ; теперь EBP указывает на вершину стека PUSH EBX PUSH ESI PUSH EDI PUSH DWORD PTR [EBP+14H]; LPARAM (lParam) PUSH DWORD PTR [EBP+10H]; WPARAM (wParam) PUSH DWORD PTR [EBP+0CH]; MES (message) PUSH DWORD PTR [EBP+08H]; HWND (hwnd) CALL DefWindowProcA@16 POP EDI POP ESI POP EBX POP EBP RET 16 WNDPROC ENDP



Содержание раздела