Added a first-cut version of MapVirtualKeyExW() that has the same
functionality (and limitations) as the ANSI version.

diff --git a/dlls/user/user32.spec b/dlls/user/user32.spec
index 64e9015..f1d773e 100644
--- a/dlls/user/user32.spec
+++ b/dlls/user/user32.spec
@@ -609,7 +609,7 @@
 @ stdcall EnumDisplaySettingsA(str long ptr) EnumDisplaySettingsA
 @ stdcall EnumDisplaySettingsW(wstr long ptr ) EnumDisplaySettingsW
 @ stdcall GetWindowRgn(long long) GetWindowRgn
-@ stub MapVirtualKeyExW
+@ stdcall MapVirtualKeyExW(long long long) MapVirtualKeyExW
 @ stub RegisterServicesProcess
 @ stdcall SetWindowRgn(long long long) SetWindowRgn
 @ stdcall ToUnicodeEx(long long ptr wstr long long long) ToUnicodeEx
diff --git a/include/winuser.h b/include/winuser.h
index 4d486fd..e0a2439 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -3592,6 +3592,7 @@
 UINT      WINAPI MapVirtualKeyW(UINT,UINT);
 #define     MapVirtualKey WINELIB_NAME_AW(MapVirtualKey)
 UINT        WINAPI MapVirtualKeyExA(UINT,UINT,HKL);
+UINT        WINAPI MapVirtualKeyExW(UINT,UINT,HKL);
 #define     MapVirtualKeyEx WINELIB_NAME_AW(MapVirtualKeyEx)
 BOOL      WINAPI MapDialogRect(HWND,LPRECT);
 INT       WINAPI MapWindowPoints(HWND,HWND,LPPOINT,UINT);
diff --git a/windows/input.c b/windows/input.c
index 82225b2..afa45fa 100644
--- a/windows/input.c
+++ b/windows/input.c
@@ -687,6 +687,16 @@
     return MapVirtualKey16(code,maptype);
 }
 
+/******************************************************************************
+ *    	MapVirtualKeyExW      (USER32.???)
+ */
+UINT WINAPI MapVirtualKeyExW(UINT code, UINT maptype, HKL hkl)
+{
+    if (hkl)
+    	FIXME_(keyboard)("(%d,%d,0x%08lx), hkl unhandled!\n",code,maptype,(DWORD)hkl);
+    return MapVirtualKey16(code,maptype);
+}
+
 /****************************************************************************
  *	GetKBCodePage   (USER32.246)
  */