.386
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include ????
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include gdi32.inc
includelib gdi32.lib
IDD_DLG1 equ 1000
IDC_STC1 equ 1002
IDC_EDT1 equ 1001
IDC_IMG1 equ 1003
A equ 1
B equ 2
TIMER1 equ 1
TIMER2 equ 2
.data?
hInstance dd ?
dwCount dd ?
hWinMain dd ?
.const
aa db 'no',0
bb db 'yes',0
.code
_ProTime proc
pushad
invoke GetDlgItemInt,hWinMain,IDC_EDT1,NULL,FALSE
inc eax
invoke SetDlgItemInt,hWinMain,IDC_EDT1,eax,FALSE
popad
ret
_ProTime endp
_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam
mov eax,wMsg
.if eax == WM_CLOSE
invoke EndDialog,hWnd,NULL
invoke KillTimer,hWnd,TIMER1
invoke KillTimer,hWnd,TIMER2
.elseif eax==WM_INITDIALOG
push hWnd
pop hWinMain
invoke SetTimer,hWnd,TIMER1,2000,NULL
invoke SetTimer,hWnd,TIMER2,1000,NULL
invoke SetTimer,NULL,NULL,1000,addr _ProTime
.elseif eax==WM_TIMER
mov eax,wParam
.if eax==1
invoke MessageBeep,-1
.elseif eax==2
inc dwCount
mov eax,dwCount
and eax,1
inc eax
invoke LoadIcon,hInstance,eax
invoke SendDlgItemMessage,hWnd,IDC_IMG1,STM_SETIMAGE,IMAGE_ICON,eax
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,IDD_DLG1,NULL,offset _ProcDlgMain,NULL
invoke ExitProcess,NULL
end start
.model flat, stdcall
option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include ????
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include gdi32.inc
includelib gdi32.lib
IDD_DLG1 equ 1000
IDC_STC1 equ 1002
IDC_EDT1 equ 1001
IDC_IMG1 equ 1003
A equ 1
B equ 2
TIMER1 equ 1
TIMER2 equ 2
.data?
hInstance dd ?
dwCount dd ?
hWinMain dd ?
.const
aa db 'no',0
bb db 'yes',0
.code
_ProTime proc
pushad
invoke GetDlgItemInt,hWinMain,IDC_EDT1,NULL,FALSE
inc eax
invoke SetDlgItemInt,hWinMain,IDC_EDT1,eax,FALSE
popad
ret
_ProTime endp
_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam
mov eax,wMsg
.if eax == WM_CLOSE
invoke EndDialog,hWnd,NULL
invoke KillTimer,hWnd,TIMER1
invoke KillTimer,hWnd,TIMER2
.elseif eax==WM_INITDIALOG
push hWnd
pop hWinMain
invoke SetTimer,hWnd,TIMER1,2000,NULL
invoke SetTimer,hWnd,TIMER2,1000,NULL
invoke SetTimer,NULL,NULL,1000,addr _ProTime
.elseif eax==WM_TIMER
mov eax,wParam
.if eax==1
invoke MessageBeep,-1
.elseif eax==2
inc dwCount
mov eax,dwCount
and eax,1
inc eax
invoke LoadIcon,hInstance,eax
invoke SendDlgItemMessage,hWnd,IDC_IMG1,STM_SETIMAGE,IMAGE_ICON,eax
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
_ProcDlgMain endp
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,IDD_DLG1,NULL,offset _ProcDlgMain,NULL
invoke ExitProcess,NULL
end start