Invoke ExitProcess,eax

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,

CmdShow:DWORD

LOCAL wc:WNDCLASSEX ; резервування стека під структуру

LOCAL msg:MSG ; резервування стека під структуру MSG

LOCAL hwnd:HWND ; резервування стека під хендл програми

@<mov wc.cbSize,SIZEOF WNDCLASSEX>,<mov wc.cbClsExtra,0>

@<mov wc.style,CS_HREDRAW or CS_VREDRAW >,<mov wc.cbWndExtra,0>

@<mov wc.lpfnWndProc,OFFSET WndProc>,<push hInst>,<pop wc.hInstance >

@<mov wc.hbrBackground,COLOR_WINDOW+1>,<mov wc.lpszMenuName,OFFSET MenuName>

mov wc.lpszClassName,OFFSET ClassName ; ім’я класу

invoke LoadIcon,hInstance, IDI_ICON ; ресурс піктограми

@< mov wc.hIcon,eax >,< mov wc.hIconSm,eax >

invoke LoadCursor,NULL,IDC_ARROW ; ресурс курсору

mov wc.hCursor,eax

invoke RegisterClassEx, addr wc ; регістрація класу вікна

invoke CreateWindowEx, ; функція створення вікна за зразком

0,ADDR ClassName, ADDR AppName, ; стиль та адреса імен класу та вікна

WS_OVERLAPPEDWINDOW, ; базовий стиль

CW_USEDEFAULT,CW_USEDEFAULT,; гориз. та верт. координати вікна

550,400, ; ширина та висота вікна

0,0, hInst,0 ; дескриптори батьківського вікна, меню, програми

mov hwnd,eax

INVOKE ShowWindow, hwnd,SW_SHOWNORMAL

INVOKE UpdateWindow, hwnd

.WHILE TRUE

INVOKE GetMessage, ADDR msg,NULL,0,0 ; читання повідомлення

.BREAK .IF (!eax)

INVOKE DispatchMessage, ADDR msg ; відправка на обслуговування

.ENDW

mov eax,msg.wParam

ret ; повернення з процедури WinMain

WinMain endp ; закінчення процедури з ім’ям WinMain

 

WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,IParam:LPARAM

LOCAL hdc:HDC ; резервування стеку під хендл вікна