http://bugs.winehq.org/show_bug.cgi?id=7712
------- Additional Comments From focht@gmx.net 2007-16-03 18:11 ------- Hello,
i took your test case, made it "noisier" and ran it on windows and linux to show the difference :)
Windows:
----------------------------- Using DefWindowProcW=77D1B33C RegisterClassExW( classw) = 49807 CreateWindowA(classA): hwnd=1968068 GetWindowLongPtrA( 1968068) = 77D1D4EE GetWindowLongPtrW( 1968068) = 77D1B33C ----------------------------- Using DefWindowProcA=77D1D4EE RegisterClassExW( classw) = 49807 CreateWindowA(classA): hwnd=2033604 GetWindowLongPtrA( 2033604) = 77D1D4EE GetWindowLongPtrW( 2033604) = 77D1B33C ----------------------------- Using DefWindowProcW=77D1B33C RegisterClassExA( classA) = 49807 CreateWindowA(classA): hwnd=2099140 GetWindowLongPtrA( 2099140) = 77D1D4EE GetWindowLongPtrW( 2099140) = 77D1B33C ----------------------------- Using DefWindowProcA=77D1D4EE RegisterClassExA( classA) = 49807 CreateWindowA(classA): hwnd=2164676 GetWindowLongPtrA( 2164676) = 77D1D4EE GetWindowLongPtrW( 2164676) = 77D1B33C
Summary:
DefWindowProcW + RegisterClassExW: WindowProcA = DefWindowProcA WindowProcW = DefWindowProcW
DefWindowProcA + RegisterClassExW: WindowProcA = DefWindowProcA WindowProcW = DefWindowProcW
DefWindowProcW + RegisterClassExA: WindowProcA = DefWindowProcA WindowProcW = DefWindowProcW
DefWindowProcA + RegisterClassExA: WindowProcA = DefWindowProcA WindowProcW = DefWindowProcW
Linux:
----------------------------- Using DefWindowProcW=601DE1E0 RegisterClassExW( classw) = 49170 CreateWindowA(classA): hwnd=65572 Wrong ANSI wndproc: FFFF000B vs 601DDCE0 GetWindowLongPtrA( 65572) = FFFF000B GetWindowLongPtrW( 65572) = 601DE1E0 ----------------------------- Using DefWindowProcA=601DDCE0 RegisterClassExW( classw) = 49170 CreateWindowA(classA): hwnd=131108 Wrong ANSI wndproc: FFFF000C vs 601DDCE0 GetWindowLongPtrA( 131108) = FFFF000C Wrong Unicode wndproc: 601DDCE0 vs 601DE1E0 GetWindowLongPtrW( 131108) = 601DDCE0 ----------------------------- Using DefWindowProcW=601DE1E0 RegisterClassExA( classA) = 49170 CreateWindowA(classA): hwnd=196644 Wrong ANSI wndproc: 601DE1E0 vs 601DDCE0 GetWindowLongPtrA( 196644) = 601DE1E0 Wrong Unicode wndproc: FFFF000D vs 601DE1E0 GetWindowLongPtrW( 196644) = FFFF000D ----------------------------- Using DefWindowProcA=601DDCE0 RegisterClassExA( classA) = 49170 CreateWindowA(classA): hwnd=262180 GetWindowLongPtrA( 262180) = 601DDCE0 Wrong Unicode wndproc: FFFF000E vs 601DE1E0 GetWindowLongPtrW( 262180) = FFFF000E
Summary:
DefWindowProcW + RegisterClassExW: WindowProcA = <unknown> WindowProcW = DefWindowProcW
DefWindowProcA + RegisterClassExW WindowProcA = <unknown> WindowProcW = DefWindowProcA
DefWindowProcW + RegisterClassExA WindowProcA = DefWindowProcW WindowProcW = <unknown>
DefWindowProcA + RegisterClassExA: WindowProcA = DefWindowProcA WindowProcW = <unknown>
=======
If wine mimics windows behaviour i guess other ansi/unicode window related bug reports might resolve too.
Regards