user32: Check both A and W proc for previously allocated winprocs.
Some apps get a winproc as A and then set it again as W.
diff --git a/dlls/user32/winproc.c b/dlls/user32/winproc.c
index 59d432d..c6e49f2 100644
--- a/dlls/user32/winproc.c
+++ b/dlls/user32/winproc.c
@@ -98,8 +98,9 @@
for (i = 0; i < winproc_used; i++)
{
- if (funcA && winproc_array[i].procA != funcA) continue;
- if (funcW && winproc_array[i].procW != funcW) continue;
+ /* match either proc, some apps confuse A and W */
+ if (funcA && winproc_array[i].procA != funcA && winproc_array[i].procW != funcA) continue;
+ if (funcW && winproc_array[i].procA != funcW && winproc_array[i].procW != funcW) continue;
return &winproc_array[i];
}
return NULL;