--- old/src/java.desktop/windows/native/libawt/windows/awt_Robot.h 2017-09-08 15:07:27.084235600 +0530 +++ new/src/java.desktop/windows/native/libawt/windows/awt_Robot.h 2017-09-08 15:07:25.935579000 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,40 @@ #include "sun_awt_windows_WRobotPeer.h" #include "jlong.h" +namespace NSWinInput { + typedef struct tagHARDWAREINPUT { + DWORD uMsg; + WORD wParamL; + WORD wParamH; + } HARDWAREINPUT; + + typedef struct tagMOUSEINPUT { + LONG dx; + LONG dy; + DWORD mouseData; + DWORD dwFlags; + DWORD time; + ULONG_PTR dwExtraInfo; + } MOUSEINPUT; + + typedef struct tagKEYBDINPUT { + WORD wVk; + WORD wScan; + DWORD dwFlags; + DWORD time; + ULONG_PTR dwExtraInfo; + } KEYBDINPUT; + + typedef struct tagINPUT { + DWORD type; + union { + MOUSEINPUT mi; + KEYBDINPUT ki; + HARDWAREINPUT hi; + }; + } INPUT; +} + class AwtRobot : public AwtObject { public: @@ -48,10 +82,13 @@ void KeyPress( jint key ); void KeyRelease( jint key ); + void KeyPressUnicode( jint key ); + void KeyReleaseUnicode( jint key ); static AwtRobot * GetRobot( jobject self ); private: - void DoKeyEvent( jint jkey, DWORD dwFlags ); + void DoKeyEvent( jint jkey, DWORD dwFlags, BOOL isUnicode ); + UINT HandleUnicodeKeys(jint key, DWORD dwFlags); static jint WinToJavaPixel(USHORT r, USHORT g, USHORT b); };