user: Added A<->W mapping for WM_GETDLGCODE.
diff --git a/dlls/user/winproc.c b/dlls/user/winproc.c
index 36e7907..1fc7d0a 100644
--- a/dlls/user/winproc.c
+++ b/dlls/user/winproc.c
@@ -2523,6 +2523,27 @@
         }
         break;
 
+    case WM_GETDLGCODE:
+        if (lParam)
+        {
+            MSG newmsg = *(MSG *)lParam;
+            switch(newmsg.message)
+            {
+            case WM_CHAR:
+            case WM_DEADCHAR:
+            case WM_SYSCHAR:
+            case WM_SYSDEADCHAR:
+                newmsg.wParam = map_wparam_char_AtoW( newmsg.wParam, 1 );
+                break;
+            case WM_IME_CHAR:
+                newmsg.wParam = map_wparam_char_AtoW( newmsg.wParam, 2 );
+                break;
+            }
+            ret = callback( hwnd, msg, wParam, (LPARAM)&newmsg, result, arg );
+        }
+        else ret = callback( hwnd, msg, wParam, lParam, result, arg );
+        break;
+
     case WM_CHARTOITEM:
     case WM_MENUCHAR:
     case WM_CHAR:
@@ -2773,6 +2794,27 @@
         }
         break;
 
+    case WM_GETDLGCODE:
+        if (lParam)
+        {
+            MSG newmsg = *(MSG *)lParam;
+            switch(newmsg.message)
+            {
+            case WM_CHAR:
+            case WM_DEADCHAR:
+            case WM_SYSCHAR:
+            case WM_SYSDEADCHAR:
+                newmsg.wParam = map_wparam_char_WtoA( newmsg.wParam, 1 );
+                break;
+            case WM_IME_CHAR:
+                newmsg.wParam = map_wparam_char_WtoA( newmsg.wParam, 2 );
+                break;
+            }
+            ret = callback( hwnd, msg, wParam, (LPARAM)&newmsg, result, arg );
+        }
+        else ret = callback( hwnd, msg, wParam, lParam, result, arg );
+        break;
+
     case WM_CHARTOITEM:
     case WM_MENUCHAR:
     case WM_CHAR: