Added support for inter-process GetWindowLong on the window extra bytes

Phil Krylov phil at newstar.rinet.ru
Fri Nov 28 19:09:25 CST 2003


Hello Alexandre,

Saturday, November 29, 2003, 3:00:23 AM, you wrote:

AJ> Phil Krylov <phil at newstar.rinet.ru> writes:

>> Hope I can provide some more details like a debug log if someone will
>> tell me which channels should be traced.

AJ> A +relay,+server would be a good start. Run it both with and without
AJ> the patch and check where the Get/SetWindowLong return values differ.

I found out that with +relay the bug doesn't show up at all. However,
+server,+win,+dialog gives those results, which may be not detailed
enough.
 (this is a diff, where lines
starting with "-" are from the "good log", and lines starting with "+"
are from the "bad log"):

@@ -1099,80 +1111,39 @@
 trace:win:GetWindowRect hwnd 0x2004e (0,16)-(401,549)                                                                       
 trace:win:WIN_SetWindowLong 0x2004e 0 0 3                                                                                   
 trace:win:WIN_SetWindowLong 0x2004e 8 418d70ac 2                                                                            
+0009: set_window_info( handle=0x2004e, flags=00000040, style=00000000, ex_style=00000000, id=00000000, instance=(nil), user_
+0009: set_window_info() = 0 { old_style=04c820c0, old_ex_style=40000101, old_id=00000000, old_instance=0x41a30000, old_user_
 trace:win:WIN_SetWindowLong 0x2004e 8 418d70ac 2
> This is the place where the child (WS_EX_CONTROLPARENT dialog)
> doesn't get created:
-0009: get_window_children( parent=0x2004e, atom=0000, tid=0000 )                                                            
-0009: get_window_children() = 0 { count=4, children={0x1004f,0x10050,0x10051,0x10052} }                                     
-0009: start_hook_chain( id=4 )                                                                                              
-0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" }                        
-0009: start_hook_chain( id=12 )                                                                                             
-0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" }                        
-0009: start_hook_chain( id=4 )                                                                                              
-0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" }                        
-0009: start_hook_chain( id=12 )                                                                                             
-0009: start_hook_chain() = 0 { handle=(nil), pid=0000, tid=0000, proc=(nil), unicode=0, module=L"" }                        
-trace:dialog:DIALOG_ParseTemplate32 DIALOG 10, 30, 225, 235, 0                                                              
-trace:dialog:DIALOG_ParseTemplate32  STYLE 0x40000040                                                                       
-trace:dialog:DIALOG_ParseTemplate32  EXSTYLE 0x00010000                                                                     
-trace:dialog:DIALOG_ParseTemplate32  CAPTION L""                                                                            
-trace:dialog:DIALOG_ParseTemplate32  FONT 8, L"MS Sans Serif", 0, FALSE                                                     
-trace:dialog:DIALOG_GetCharSize dlg base units: 6 x 14                                                                      
-trace:dialog:DIALOG_CreateIndirect units = 6,14                                                                             
-trace:win:WIN_CreateWindowEx "" "#32770" ex=00010000 style=40000040 15,53 338x411 parent=0x2004e menu=(nil) inst=0x41a30000 
-trace:win:dump_window_styles style: WS_CHILD 00000040                                                                       
-trace:win:dump_window_styles exstyle: WS_EX_CONTROLPARENT                                                                   
-trace:win:WIN_CreateWindowEx winproc type is 2 (WIN_PROC_32A)                                                               
-0009: create_window( parent=0x2004e, owner=(nil), atom=8002, extra=0 )                                                      
-0009: create_window() = 0 { handle=0x10054 }                                                                                
-0009: set_window_info( handle=0x10054, flags=0000000b, style=40000040, ex_style=00010000, id=00000000, instance=0x41a30000, 
-0009: set_window_info() = 0 { old_style=00000000, old_ex_style=00000000, old_id=00000000, old_instance=(nil), old_user_data=
-trace:win:WIN_SetWindowLong 0x10054 -12 0 3                                                                                 
-0009: set_window_info( handle=0x10054, flags=00000004, style=00000000, ex_style=00000000, id=00000000, instance=(nil), user_
-0009: set_window_info() = 0 { old_style=40000040, old_ex_style=00010000, old_id=00000000, old_instance=0x41a30000, old_user_
-0009: set_window_rectangles( handle=0x10054, window={15,53;353,464}, client={15,53;353,464} )                               
-0009: set_window_rectangles() = 0                                                                                           
-trace:win:WIN_SetRectangles win 0x10054 window (15,53)-(353,464) client (15,53)-(353,464)                                   
-0009: set_window_property( window=0x10054, atom=c009, string=0, handle=0x2a00279 )                                          
-0009: set_window_property() = 0                                                                                             
-0009: set_window_property( window=0x10054, atom=c00a, string=0, handle=0x2a0027a )                                          
-0009: set_window_property() = 0                                                                                             
-0009: start_hook_chain( id=5 )                                                                                              
-0009: start_hook_chain() = 0 { handle=0x20034, pid=0000, tid=0000, proc=0x48b751, unicode=0, module=L"" }                   
-0009: get_next_hook( handle=0x20034 )                                                                                       
-0009: get_next_hook() = 0 { next=(nil), id=0, pid=0000, tid=0000, proc=(nil), prev_unicode=0, next_unicode=0, module=L"" }  
-0009: finish_hook_chain( id=5 )                                                                                             


-- 
Best regards,
 Phil                            mailto:phil at newstar.rinet.ru




More information about the wine-devel mailing list