"Alexandre Julliard" julliard@wine.codeweavers.com wrote:
Author: Mikolaj Zalewski mikolaj@zalewski.pl Date: Sun Mar 18 13:02:04 2007 +0100
user32: tests: Using DefWindowProcA with RegisterClassW works under Windows.
The test doesn't pass here under XP:
class.c:602: Test failed: Wrong ANSI wndproc: FFFF0367 vs 00403B14 class.c:604: Test failed: Wrong ANSI wndproc: FFFF036B vs 00403B14 class.c:602: Test failed: Wrong ANSI wndproc: FFFF0367 vs 00403B14 class.c:604: Test failed: Wrong ANSI wndproc: FFFF036B vs 00403B14 class.c:617: Test failed: Wrong Unicode wndproc: 00403B14 vs 00403ACC class.c:619: Test failed: Wrong Unicode wndproc: 00403B14 vs 00403ACC class.c:602: Test failed: Wrong ANSI wndproc: 00403ACC vs 00403B14 class.c:604: Test failed: Wrong ANSI wndproc: 00403ACC vs 00403B14 class.c:617: Test failed: Wrong Unicode wndproc: FFFF0367 vs 00403ACC class.c:619: Test failed: Wrong Unicode wndproc: FFFF036B vs 00403ACC class.c:617: Test failed: Wrong Unicode wndproc: FFFF0367 vs 00403ACC class.c:619: Test failed: Wrong Unicode wndproc: FFFF036B vs 00403ACC class: 590 tests executed (0 marked as todo, 12 failures), 0 skipped.
The test doesn't pass here under XP:
I've also tested it under (a fully patched) XP. However it might be a differance in compilers - in your output the pointers to DefWindowProc[AW] looks like pointing to the EXE image. What compiler did you use? I've used Visual C++ 7.1 and get pointer pointing to user32. Could you do:
printf("%p, %p, %p\n", DefWindowProcA, GetModuleHandle(NULL), GetModuleHandle("user32"));
I get: 77D4D4EE, 00400000, 77D40000
Mikołaj Zalewski