Процедура главного окна
Процедура главного окна
.
Вот прототип функции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