Hans Leidekker : wineandroid: Implement VkKeyScanEx.

Alexandre Julliard julliard at winehq.org
Fri Jun 9 12:43:58 CDT 2017


Module: wine
Branch: master
Commit: 86b82b8f73f749fe59a007710c52ee0c91375b2c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=86b82b8f73f749fe59a007710c52ee0c91375b2c

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Fri Jun  9 09:21:15 2017 +0200

wineandroid: Implement VkKeyScanEx.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wineandroid.drv/keyboard.c           | 29 +++++++++++++++++++++++++++++
 dlls/wineandroid.drv/wineandroid.drv.spec |  1 +
 2 files changed, 30 insertions(+)

diff --git a/dlls/wineandroid.drv/keyboard.c b/dlls/wineandroid.drv/keyboard.c
index 81af8e3..741b76a 100644
--- a/dlls/wineandroid.drv/keyboard.c
+++ b/dlls/wineandroid.drv/keyboard.c
@@ -616,6 +616,23 @@ static const struct
     { VK_OEM_PERIOD,            "." },
 };
 
+static const SHORT char_vkey_map[] =
+{
+    0x332, 0x241, 0x242, 0x003, 0x244, 0x245, 0x246, 0x247, 0x008, 0x009,
+    0x20d, 0x24b, 0x24c, 0x00d, 0x24e, 0x24f, 0x250, 0x251, 0x252, 0x253,
+    0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25a, 0x01b, 0x2dc, 0x2dd,
+    0x336, 0x3bd, 0x020, 0x131, 0x1de, 0x133, 0x134, 0x135, 0x137, 0x0de,
+    0x139, 0x130, 0x138, 0x1bb, 0x0bc, 0x0bd, 0x0be, 0x0bf, 0x030, 0x031,
+    0x032, 0x033, 0x034, 0x035, 0x036, 0x037, 0x038, 0x039, 0x1ba, 0x0ba,
+    0x1bc, 0x0bb, 0x1be, 0x1bf, 0x132, 0x141, 0x142, 0x143, 0x144, 0x145,
+    0x146, 0x147, 0x148, 0x149, 0x14a, 0x14b, 0x14c, 0x14d, 0x14e, 0x14f,
+    0x150, 0x151, 0x152, 0x153, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159,
+    0x15a, 0x0db, 0x0dc, 0x0dd, 0x136, 0x1bd, 0x0c0, 0x041, 0x042, 0x043,
+    0x044, 0x045, 0x046, 0x047, 0x048, 0x049, 0x04a, 0x04b, 0x04c, 0x04d,
+    0x04e, 0x04f, 0x050, 0x051, 0x052, 0x053, 0x054, 0x055, 0x056, 0x057,
+    0x058, 0x059, 0x05a, 0x1db, 0x1dc, 0x1dd, 0x1c0, 0x208
+};
+
 static UINT scancode_to_vkey( UINT scan )
 {
     UINT j;
@@ -904,3 +921,15 @@ HKL CDECL ANDROID_GetKeyboardLayout( DWORD thread_id )
     FIXME( "returning %lx\n", layout );
     return (HKL)layout;
 }
+
+
+/***********************************************************************
+ *           ANDROID_VkKeyScanEx
+ */
+SHORT CDECL ANDROID_VkKeyScanEx( WCHAR ch, HKL hkl )
+{
+    SHORT ret = -1;
+    if (ch < sizeof(char_vkey_map) / sizeof(char_vkey_map[0])) ret = char_vkey_map[ch];
+    TRACE_(key)( "ch %04x hkl %p -> %04x\n", ch, hkl, ret );
+    return ret;
+}
diff --git a/dlls/wineandroid.drv/wineandroid.drv.spec b/dlls/wineandroid.drv/wineandroid.drv.spec
index bd42cb1..918140f 100644
--- a/dlls/wineandroid.drv/wineandroid.drv.spec
+++ b/dlls/wineandroid.drv/wineandroid.drv.spec
@@ -8,6 +8,7 @@
 @ cdecl GetKeyboardLayout(long) ANDROID_GetKeyboardLayout
 @ cdecl MapVirtualKeyEx(long long long) ANDROID_MapVirtualKeyEx
 @ cdecl ToUnicodeEx(long long ptr ptr long long long) ANDROID_ToUnicodeEx
+@ cdecl VkKeyScanEx(long long) ANDROID_VkKeyScanEx
 @ cdecl EnumDisplayMonitors(long ptr ptr long) ANDROID_EnumDisplayMonitors
 @ cdecl GetMonitorInfo(long ptr) ANDROID_GetMonitorInfo
 @ cdecl CreateWindow(long) ANDROID_CreateWindow




More information about the wine-cvs mailing list