FoxPro Regressions - followup from Feb

Rick Romero rick at valeoinc.com
Wed Apr 10 09:55:55 CDT 2002


I'm trying to help with http://bugs.codeweavers.com/show_bug.cgi?id=434
and came across my thread from Feb, that I must have missed.

>> -----------------------------------
>> Non-Working (wine-2002-02-20 cvs)
>> trace:win:SetCapture Calling Event_Capture
>> trace:win:EVENT_Capture (0x20021) Window #!! -Maybe?
>> trace:win:EVENT_Capture About to Return from Event Capture!!! 
>> Prev(0)   Wnd(131105)
>>
>> 0806d550:Ret  user32.SetCapture() retval=00000000 ret=0065fe45
>                  
>From the return adress (0065fe45)  you can see that the SetCapture()
>is called from your application, not from wine code.
>In 9 out of 10 cases this would be done within the handling of some
>message, in this case for instance a WM_MOUSEMOVE or WM_LBUTTONDOWN
>message. Here that seems not to be the case. That would make a
>backtrace from within this call interesting. [...] 
>
>> Maybe someone can get something out of that.. I've been comparing
>them
>> for the past 30 minutes and I can't see anything significant...
>> Interesting x11drv returns a different GetCurPos()
>> The 2nd Get QueueStatus after the 2nd WM_LBUTTONUP has a different
>> reval=00040000 on the "bad", where the "good" is reval=00060000" 
>Both report a MOUSEBUTTON message in the queue, the "good" one reports
>MOUSEMOVE messages as well. That doesn't look significant. 
>
>> I wouldn't know where to go from here, but maybe it'll help someone
>> else. I can run comparisons for anyone if they'd like, though I never
>> figured out how to save a trace to a file, 
>> didn't work, so I'm just
>> scrolling now :/ 
>
>You could try to look for the WM_CAPTURECHANGED messages. This message
>is sent when a window looses the capture. If I understand you
>correctly you think that your problem is that this doesn't happen,
>while in the old situation it did. If you have access to the spy++
>program, run it under windows and compare the messages between wine
>and windows.

Ok, I've managed to do that.  I ran:
wine --debugmsg +mouse,+event,+window,+message vfp.exe
and this is the end of what I got:

trace:event:EVENT_ProcessEvent Got event MotionNotify for hwnd 1002d
trace:event:EVENT_ProcessEvent returns.
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST sent from self wp=00000000 lp=025f0261
trace:message:SPY_EnterMessage     (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage      (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084] returned 00000001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST returned 00000001
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0020] WM_SETCURSOR sent from self wp=0001002d lp=02000001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0020] WM_SETCURSOR returned 00000000
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0200] WM_MOUSEMOVE dispatched  wp=00000000 lp=00880090
trace:message:SPY_EnterMessage     (0001002d)  DefWindowProc32:
WM_MOUSEMOVE [0200]  wp=00000000 lp=00880090
trace:message:SPY_ExitMessage      (0001002d)  DefWindowProc32:
WM_MOUSEMOVE [0200] returned 00000000
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0200] WM_MOUSEMOVE returned 00000000
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST sent from self wp=00000000 lp=025f0261
trace:message:SPY_EnterMessage     (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage      (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084] returned 00000001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST returned 00000001
trace:message:SPY_EnterMessage (00020021)  DefWindowProc32: WM_NCHITTEST
[0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage  (00020021)  DefWindowProc32: WM_NCHITTEST
[0084] returned 00000001
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST sent from self wp=00000000 lp=025f0261
trace:message:SPY_EnterMessage     (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage      (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084] returned 00000001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST returned 00000001
trace:message:SPY_EnterMessage (00020021)  DefWindowProc32: WM_NCHITTEST
[0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage  (00020021)  DefWindowProc32: WM_NCHITTEST
[0084] returned 00000001
trace:event:EVENT_ProcessEvent called.
warn:event:EVENT_ProcessEvent Got event KeymapNotify for unknown Window
00000000
trace:event:EVENT_ProcessEvent returns.
trace:event:EVENT_ProcessEvent called.
trace:event:EVENT_ProcessEvent Got event ButtonPress for hwnd 1002d
trace:event:EVENT_ProcessEvent returns.
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST sent from self wp=00000000 lp=025f0261
trace:message:SPY_EnterMessage     (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage      (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084] returned 00000001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST returned 00000001
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0021] WM_MOUSEACTIVATE sent from self wp=00020024 lp=02010001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0021] WM_MOUSEACTIVATE returned 00000003
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0020] WM_SETCURSOR sent from self wp=0001002d lp=02010001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0020] WM_SETCURSOR returned 00000000
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0201] WM_LBUTTONDOWN dispatched  wp=00000001 lp=00880090
trace:message:SPY_EnterMessage     (0001002d)  DefWindowProc32:
WM_LBUTTONDOWN [0201]  wp=00000001 lp=00880090
trace:message:SPY_ExitMessage      (0001002d)  DefWindowProc32:
WM_LBUTTONDOWN [0201] returned 00000000
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0201] WM_LBUTTONDOWN returned 00000000
trace:message:SPY_EnterMessage (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST sent from self wp=00000000 lp=025f0261
trace:message:SPY_EnterMessage     (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage      (0001002d)  DefWindowProc32:
WM_NCHITTEST [0084] returned 00000001
trace:message:SPY_ExitMessage  (0001002d) L"{Fox_4000001}" message
[0084] WM_NCHITTEST returned 00000001
trace:message:SPY_EnterMessage (00020021)  DefWindowProc32: WM_NCHITTEST
[0084]  wp=00000000 lp=025f0261
trace:message:SPY_ExitMessage  (00020021)  DefWindowProc32: WM_NCHITTEST
[0084] returned 00000001
Terminated
---------------------------------------------------------------
Terminated because I have to Hit CTRL-C to exit.. There are not further
actions that I can take at that point.

Here's the output from Spy++.  I told it to watch the input window, and
I entered (with the mouse) the window  from the top, clicked in a couple
different spots, and exited through the top.

001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:64 yPos:9
001E0216 S WM_NCHITTEST xPos:427 yPos:369
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:427 yPos:369
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:428 yPos:369
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:65 yPos:9
001E0216 S WM_NCHITTEST xPos:428 yPos:369
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:428 yPos:369
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:429 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:66 yPos:10
001E0216 S WM_NCHITTEST xPos:429 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:429 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 P message:0x0118 [Unknown] wParam:0000FFFF lParam:A006A39E
001E0216 S WM_NCHITTEST xPos:430 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:67 yPos:10
001E0216 S WM_NCHITTEST xPos:430 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:430 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_MOUSEACTIVATE hwndTopLevel:001A021A nHittest:HTCLIENT
uMsg:WM_LBUTTONDOWN
001E0216 R WM_MOUSEACTIVATE fuActivate:MA_NOACTIVATE
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_LBUTTONDOWN
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:67 yPos:10
001E0216 S WM_NCHITTEST xPos:430 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:68 yPos:10
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:370
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 P message:0x0118 [Unknown] wParam:0000FFFF lParam:A006A39E
001E0216 S WM_NCHITTEST xPos:431 yPos:368
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:68 yPos:8
001E0216 S WM_NCHITTEST xPos:431 yPos:368
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:368
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:367
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:68 yPos:7
001E0216 S WM_NCHITTEST xPos:431 yPos:367
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:367
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:365
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:68 yPos:5
001E0216 S WM_NCHITTEST xPos:431 yPos:365
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:365
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:360
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_SETCURSOR hwnd:001E0216 nHittest:HTCLIENT
wMouseMsg:WM_MOUSEMOVE
001E0216 R WM_SETCURSOR fHaltProcessing:False
001E0216 P WM_MOUSEMOVE fwKeys:0000 xPos:68 yPos:0
001E0216 S WM_NCHITTEST xPos:431 yPos:360
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 S WM_NCHITTEST xPos:431 yPos:360
001E0216 R WM_NCHITTEST nHittest:HTCLIENT
001E0216 P message:0x0118 [Unknown] wParam:0000FFFF lParam:A006A39E
001E0216 P message:0x0118 [Unknown] wParam:0000FFFF lParam:A006A39E
001E0216 P message:0x0118 [Unknown] wParam:0000FFFF lParam:A006A39E
(That is when I left the window)

Strange there isn't a LBUTTONUP there either..

I hope that helps, if there's anything else I should have Spy++ monitor
(that was my first time using it), or have wine output, let me know.

Thanks,
Rick







More information about the wine-users mailing list