
format PE GUI 4.0
entry start

include 'win32a.inc'

section '.text' code readable executable

  start:
	invoke	GetModuleHandle,0
	invoke	DialogBoxParam,eax,37,HWND_DESKTOP,dlgproc,0
  exit:
	invoke	ExitProcess,0

proc dlgproc hwnddlg,msg,wparam,lparam
	push ebx esi edi
	cmp	[msg],WM_INITDIALOG
	je	.wminitdialog
	cmp	[msg],WM_COMMAND
	je	.wmcommand
	cmp	[msg],WM_CLOSE
	je	.wmclose
	xor	eax,eax
	jmp	.finish
  .wminitdialog:
	jmp	.processed
  .wmcommand:
	cmp	[wparam],BN_CLICKED shl 16 + IDCANCEL
	je	.wmclose
	cmp	[wparam],BN_CLICKED shl 16 + IDTEST
	je testfunc
	jmp	.processed
  .wmclose:
	invoke	EndDialog,[hwnddlg],0
  .processed:
	mov	eax,1
  .finish:
	pop	edi esi ebx
	ret
endp

proc testfunc
	invoke MessageBox,HWND_DESKTOP,0,0,MB_OK
	ret
endp

section '.bss' readable writeable

  flags dd ?

section '.idata' import data readable writeable

  library kernel,'KERNEL32.DLL',\
	  user,'USER32.DLL'

  import kernel,\
	 GetModuleHandle,'GetModuleHandleA',\
	 ExitProcess,'ExitProcess'

  import user,\
	 DialogBoxParam,'DialogBoxParamA',\
	 CheckRadioButton,'CheckRadioButton',\
	 GetDlgItemText,'GetDlgItemTextA',\
	 IsDlgButtonChecked,'IsDlgButtonChecked',\
	 MessageBox,'MessageBoxA',\
	 EndDialog,'EndDialog'

section '.rsrc' resource data readable

  directory RT_DIALOG,dialogs

  resource dialogs,\
	   37,LANG_ENGLISH+SUBLANG_DEFAULT,conndlg

  dialog conndlg,'dlg test',70,70,190,70,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
    dialogitem 'BUTTON','Cancel',IDCANCEL,135,40,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
	dialogitem 'BUTTON','Test',IDTEST,85,40,45,15,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON
  enddialog
