
	include 'win32axp.inc'

	.code
proc start
local wc:WNDCLASSEX
local msg:MSG

	mov [wc.cbSize], sizeof.WNDCLASSEX
	mov [wc.style], CS_HREDRAW+CS_VREDRAW
	mov [wc.lpfnWndProc], wnd_proc
	mov [wc.cbClsExtra], 0
	mov [wc.cbWndExtra], 0
	invoke GetModuleHandle,0
	mov [wc.hInstance], eax
	invoke LoadIcon,0,IDI_APPLICATION
	mov [wc.hIcon], eax
	mov [wc.hIconSm], eax
	invoke LoadCursor,0,IDC_ARROW
	mov [wc.hCursor], eax
	invoke GetStockObject,BLACK_BRUSH
	mov [wc.hbrBackground], eax
	mov [wc.lpszMenuName],0
	mov [wc.lpszClassName], class
	invoke RegisterClassEx, addr wc
	invoke CreateWindowEx,0,class,0,WS_POPUP,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0,[wc.hInstance],0
	invoke ShowWindow,eax,SW_MAXIMIZE
	.while TRUE
		invoke GetMessage, addr msg, 0, 0, 0
		.if eax
			invoke TranslateMessage, addr msg
			invoke DispatchMessage, addr msg
		.else
			invoke ExitProcess,0
		.endif
	.endw
endp

proc wnd_proc hwnd,umsg,wpar,lpar
	.if [umsg] = WM_DESTROY
		invoke PostQuitMessage,0
	.else
		invoke DefWindowProc,[hwnd],[umsg],[wpar],[lpar]
		ret
	.endif
	xor eax, eax
	ret
endp

	.data
class db 'MyClass',0

.end start

