
; example of simplified Win32 programming using complex macro features

include '%fasminc%/win32axp.inc'
include 'proc.inc'

.data

_title	db 'Hi ...',0
_text1	db '... from MBox 1',0
_text2	db '... from MBox 2',0
_text3	db '... from MBox 3',0


.code


esp_proc MBox1, hWnd,lpText,lpTitle,dwStyle

	enter
	invoke	MessageBox, [hWnd],[lpText],[lpTitle],[dwStyle]
	return

endp


esp_proc MBox2, hWnd,lpText,lpTitle,dwStyle

stackdata .var1

	enter
	invoke	MessageBox, [hWnd],[lpText],[lpTitle],[dwStyle]
	return

endp


esp_proc MBox3, hWnd,lpText,lpTitle,dwStyle

stackdata .var1
stackdata .var2

	enter
	mov	eax, [lpText]
	mov	[.var1], eax
	mov	eax, [lpTitle]
	mov	[.var2], eax
	invoke	MessageBox, [hWnd],[.var1],[.var2],[dwStyle]
	return

endp


start:
	invoke	MBox1, 0,_text1,_title,0
	invoke	MBox2, 0,_text2,_title,0
	invoke	MBox3, 0,_text3,_title,0
	invoke	ExitProcess,0

.end start
