im using a timer to process a few lines of code at certain intervals.
invoke SetTimer,hWin,5,500,NULL
.ELSEIF uMsg == WM_TIMER
invoke SendMessage,hListBox0,LB_RESETCONTENT,0,0
invoke EnumWindows,addr EnumProc,NULL
............
............
EnumProc proc eHandle:DWORD
invoke GetClassName,eHandle,ADDR clName,8
invoke lstrcmpi,addr clName, addr IEFrame
.if eax == 0
invoke IsWindowVisible,eHandle
.if eax
invoke GetWindowText,eHandle,addr buffer,100
.if eax
invoke SendMessage,hListBox0,LB_ADDSTRING,NULL,addr buffer
.endif
.endif
.endif
mov eax,eHandle
ret
EnumProc endp
It appears that the line mov eax,eHandle is the problem. When i change this line to xor eax,eax
the program doesnt crash but it also doesnt do what its suppose to do. anyone?
The error message box stated: The instruction at "ox77e14abb" referenced memory at "0x00000000". The memory count not be "written".
thanks
smurf
This message was edited by smurf, on 6/7/2001 6:19:51 AM
To continue enumeration, the callback function must return TRUE; to stop enumeration, it must return FALSE.
oops
This message was edited by smurf, on 6/7/2001 11:33:00 AM
the type of your enum proc (as a parameter for EnumWindows()) should be:
EnumWindowsProc proc stdcall hWnd:dword,lParam:dword
so actually your proc is missing one parameter
hope this will help
thanks japheth that was my problem. i didnt realize that i needed to have all the parameters defined even though i wasnt gonna use them. :)
thanks again
smurf