| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/host/event_executor_win.h" | 5 #include "remoting/host/event_executor_win.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include "base/keyboard_codes.h" | 8 #include "app/keyboard_codes.h" |
| 9 #include "base/stl_util-inl.h" | 9 #include "base/stl_util-inl.h" |
| 10 #include "remoting/host/capturer.h" | 10 #include "remoting/host/capturer.h" |
| 11 | 11 |
| 12 namespace remoting { | 12 namespace remoting { |
| 13 | 13 |
| 14 // TODO(hclam): Move this method to base. | 14 // TODO(hclam): Move this method to base. |
| 15 // TODO(hclam): Using values look ugly, change it to something else. | 15 // TODO(hclam): Using values look ugly, change it to something else. |
| 16 static base::KeyboardCode WindowsKeyCodeForPosixKeyCode(int keycode) { | 16 static app::KeyboardCode WindowsKeyCodeForPosixKeyCode(int keycode) { |
| 17 switch (keycode) { | 17 switch (keycode) { |
| 18 case 0x08: | 18 case 0x08: |
| 19 return base::VKEY_BACK; | 19 return app::VKEY_BACK; |
| 20 case 0x09: | 20 case 0x09: |
| 21 return base::VKEY_TAB; | 21 return app::VKEY_TAB; |
| 22 case 0x0C: | 22 case 0x0C: |
| 23 return base::VKEY_CLEAR; | 23 return app::VKEY_CLEAR; |
| 24 case 0x0D: | 24 case 0x0D: |
| 25 return base::VKEY_RETURN; | 25 return app::VKEY_RETURN; |
| 26 case 0x10: | 26 case 0x10: |
| 27 return base::VKEY_SHIFT; | 27 return app::VKEY_SHIFT; |
| 28 case 0x11: | 28 case 0x11: |
| 29 return base::VKEY_CONTROL; | 29 return app::VKEY_CONTROL; |
| 30 case 0x12: | 30 case 0x12: |
| 31 return base::VKEY_MENU; | 31 return app::VKEY_MENU; |
| 32 case 0x13: | 32 case 0x13: |
| 33 return base::VKEY_PAUSE; | 33 return app::VKEY_PAUSE; |
| 34 case 0x14: | 34 case 0x14: |
| 35 return base::VKEY_CAPITAL; | 35 return app::VKEY_CAPITAL; |
| 36 case 0x15: | 36 case 0x15: |
| 37 return base::VKEY_KANA; | 37 return app::VKEY_KANA; |
| 38 case 0x17: | 38 case 0x17: |
| 39 return base::VKEY_JUNJA; | 39 return app::VKEY_JUNJA; |
| 40 case 0x18: | 40 case 0x18: |
| 41 return base::VKEY_FINAL; | 41 return app::VKEY_FINAL; |
| 42 case 0x19: | 42 case 0x19: |
| 43 return base::VKEY_KANJI; | 43 return app::VKEY_KANJI; |
| 44 case 0x1B: | 44 case 0x1B: |
| 45 return base::VKEY_ESCAPE; | 45 return app::VKEY_ESCAPE; |
| 46 case 0x1C: | 46 case 0x1C: |
| 47 return base::VKEY_CONVERT; | 47 return app::VKEY_CONVERT; |
| 48 case 0x1D: | 48 case 0x1D: |
| 49 return base::VKEY_NONCONVERT; | 49 return app::VKEY_NONCONVERT; |
| 50 case 0x1E: | 50 case 0x1E: |
| 51 return base::VKEY_ACCEPT; | 51 return app::VKEY_ACCEPT; |
| 52 case 0x1F: | 52 case 0x1F: |
| 53 return base::VKEY_MODECHANGE; | 53 return app::VKEY_MODECHANGE; |
| 54 case 0x20: | 54 case 0x20: |
| 55 return base::VKEY_SPACE; | 55 return app::VKEY_SPACE; |
| 56 case 0x21: | 56 case 0x21: |
| 57 return base::VKEY_PRIOR; | 57 return app::VKEY_PRIOR; |
| 58 case 0x22: | 58 case 0x22: |
| 59 return base::VKEY_NEXT; | 59 return app::VKEY_NEXT; |
| 60 case 0x23: | 60 case 0x23: |
| 61 return base::VKEY_END; | 61 return app::VKEY_END; |
| 62 case 0x24: | 62 case 0x24: |
| 63 return base::VKEY_HOME; | 63 return app::VKEY_HOME; |
| 64 case 0x25: | 64 case 0x25: |
| 65 return base::VKEY_LEFT; | 65 return app::VKEY_LEFT; |
| 66 case 0x26: | 66 case 0x26: |
| 67 return base::VKEY_UP; | 67 return app::VKEY_UP; |
| 68 case 0x27: | 68 case 0x27: |
| 69 return base::VKEY_RIGHT; | 69 return app::VKEY_RIGHT; |
| 70 case 0x28: | 70 case 0x28: |
| 71 return base::VKEY_DOWN; | 71 return app::VKEY_DOWN; |
| 72 case 0x29: | 72 case 0x29: |
| 73 return base::VKEY_SELECT; | 73 return app::VKEY_SELECT; |
| 74 case 0x2A: | 74 case 0x2A: |
| 75 return base::VKEY_PRINT; | 75 return app::VKEY_PRINT; |
| 76 case 0x2B: | 76 case 0x2B: |
| 77 return base::VKEY_EXECUTE; | 77 return app::VKEY_EXECUTE; |
| 78 case 0x2C: | 78 case 0x2C: |
| 79 return base::VKEY_SNAPSHOT; | 79 return app::VKEY_SNAPSHOT; |
| 80 case 0x2D: | 80 case 0x2D: |
| 81 return base::VKEY_INSERT; | 81 return app::VKEY_INSERT; |
| 82 case 0x2E: | 82 case 0x2E: |
| 83 return base::VKEY_DELETE; | 83 return app::VKEY_DELETE; |
| 84 case 0x2F: | 84 case 0x2F: |
| 85 return base::VKEY_HELP; | 85 return app::VKEY_HELP; |
| 86 case 0x30: | 86 case 0x30: |
| 87 return base::VKEY_0; | 87 return app::VKEY_0; |
| 88 case 0x31: | 88 case 0x31: |
| 89 return base::VKEY_1; | 89 return app::VKEY_1; |
| 90 case 0x32: | 90 case 0x32: |
| 91 return base::VKEY_2; | 91 return app::VKEY_2; |
| 92 case 0x33: | 92 case 0x33: |
| 93 return base::VKEY_3; | 93 return app::VKEY_3; |
| 94 case 0x34: | 94 case 0x34: |
| 95 return base::VKEY_4; | 95 return app::VKEY_4; |
| 96 case 0x35: | 96 case 0x35: |
| 97 return base::VKEY_5; | 97 return app::VKEY_5; |
| 98 case 0x36: | 98 case 0x36: |
| 99 return base::VKEY_6; | 99 return app::VKEY_6; |
| 100 case 0x37: | 100 case 0x37: |
| 101 return base::VKEY_7; | 101 return app::VKEY_7; |
| 102 case 0x38: | 102 case 0x38: |
| 103 return base::VKEY_8; | 103 return app::VKEY_8; |
| 104 case 0x39: | 104 case 0x39: |
| 105 return base::VKEY_9; | 105 return app::VKEY_9; |
| 106 case 0x41: | 106 case 0x41: |
| 107 return base::VKEY_A; | 107 return app::VKEY_A; |
| 108 case 0x42: | 108 case 0x42: |
| 109 return base::VKEY_B; | 109 return app::VKEY_B; |
| 110 case 0x43: | 110 case 0x43: |
| 111 return base::VKEY_C; | 111 return app::VKEY_C; |
| 112 case 0x44: | 112 case 0x44: |
| 113 return base::VKEY_D; | 113 return app::VKEY_D; |
| 114 case 0x45: | 114 case 0x45: |
| 115 return base::VKEY_E; | 115 return app::VKEY_E; |
| 116 case 0x46: | 116 case 0x46: |
| 117 return base::VKEY_F; | 117 return app::VKEY_F; |
| 118 case 0x47: | 118 case 0x47: |
| 119 return base::VKEY_G; | 119 return app::VKEY_G; |
| 120 case 0x48: | 120 case 0x48: |
| 121 return base::VKEY_H; | 121 return app::VKEY_H; |
| 122 case 0x49: | 122 case 0x49: |
| 123 return base::VKEY_I; | 123 return app::VKEY_I; |
| 124 case 0x4A: | 124 case 0x4A: |
| 125 return base::VKEY_J; | 125 return app::VKEY_J; |
| 126 case 0x4B: | 126 case 0x4B: |
| 127 return base::VKEY_K; | 127 return app::VKEY_K; |
| 128 case 0x4C: | 128 case 0x4C: |
| 129 return base::VKEY_L; | 129 return app::VKEY_L; |
| 130 case 0x4D: | 130 case 0x4D: |
| 131 return base::VKEY_M; | 131 return app::VKEY_M; |
| 132 case 0x4E: | 132 case 0x4E: |
| 133 return base::VKEY_N; | 133 return app::VKEY_N; |
| 134 case 0x4F: | 134 case 0x4F: |
| 135 return base::VKEY_O; | 135 return app::VKEY_O; |
| 136 case 0x50: | 136 case 0x50: |
| 137 return base::VKEY_P; | 137 return app::VKEY_P; |
| 138 case 0x51: | 138 case 0x51: |
| 139 return base::VKEY_Q; | 139 return app::VKEY_Q; |
| 140 case 0x52: | 140 case 0x52: |
| 141 return base::VKEY_R; | 141 return app::VKEY_R; |
| 142 case 0x53: | 142 case 0x53: |
| 143 return base::VKEY_S; | 143 return app::VKEY_S; |
| 144 case 0x54: | 144 case 0x54: |
| 145 return base::VKEY_T; | 145 return app::VKEY_T; |
| 146 case 0x55: | 146 case 0x55: |
| 147 return base::VKEY_U; | 147 return app::VKEY_U; |
| 148 case 0x56: | 148 case 0x56: |
| 149 return base::VKEY_V; | 149 return app::VKEY_V; |
| 150 case 0x57: | 150 case 0x57: |
| 151 return base::VKEY_W; | 151 return app::VKEY_W; |
| 152 case 0x58: | 152 case 0x58: |
| 153 return base::VKEY_X; | 153 return app::VKEY_X; |
| 154 case 0x59: | 154 case 0x59: |
| 155 return base::VKEY_Y; | 155 return app::VKEY_Y; |
| 156 case 0x5A: | 156 case 0x5A: |
| 157 return base::VKEY_Z; | 157 return app::VKEY_Z; |
| 158 case 0x5B: | 158 case 0x5B: |
| 159 return base::VKEY_LWIN; | 159 return app::VKEY_LWIN; |
| 160 case 0x5C: | 160 case 0x5C: |
| 161 return base::VKEY_RWIN; | 161 return app::VKEY_RWIN; |
| 162 case 0x5D: | 162 case 0x5D: |
| 163 return base::VKEY_APPS; | 163 return app::VKEY_APPS; |
| 164 case 0x5F: | 164 case 0x5F: |
| 165 return base::VKEY_SLEEP; | 165 return app::VKEY_SLEEP; |
| 166 case 0x60: | 166 case 0x60: |
| 167 return base::VKEY_NUMPAD0; | 167 return app::VKEY_NUMPAD0; |
| 168 case 0x61: | 168 case 0x61: |
| 169 return base::VKEY_NUMPAD1; | 169 return app::VKEY_NUMPAD1; |
| 170 case 0x62: | 170 case 0x62: |
| 171 return base::VKEY_NUMPAD2; | 171 return app::VKEY_NUMPAD2; |
| 172 case 0x63: | 172 case 0x63: |
| 173 return base::VKEY_NUMPAD3; | 173 return app::VKEY_NUMPAD3; |
| 174 case 0x64: | 174 case 0x64: |
| 175 return base::VKEY_NUMPAD4; | 175 return app::VKEY_NUMPAD4; |
| 176 case 0x65: | 176 case 0x65: |
| 177 return base::VKEY_NUMPAD5; | 177 return app::VKEY_NUMPAD5; |
| 178 case 0x66: | 178 case 0x66: |
| 179 return base::VKEY_NUMPAD6; | 179 return app::VKEY_NUMPAD6; |
| 180 case 0x67: | 180 case 0x67: |
| 181 return base::VKEY_NUMPAD7; | 181 return app::VKEY_NUMPAD7; |
| 182 case 0x68: | 182 case 0x68: |
| 183 return base::VKEY_NUMPAD8; | 183 return app::VKEY_NUMPAD8; |
| 184 case 0x69: | 184 case 0x69: |
| 185 return base::VKEY_NUMPAD9; | 185 return app::VKEY_NUMPAD9; |
| 186 case 0x6A: | 186 case 0x6A: |
| 187 return base::VKEY_MULTIPLY; | 187 return app::VKEY_MULTIPLY; |
| 188 case 0x6B: | 188 case 0x6B: |
| 189 return base::VKEY_ADD; | 189 return app::VKEY_ADD; |
| 190 case 0x6C: | 190 case 0x6C: |
| 191 return base::VKEY_SEPARATOR; | 191 return app::VKEY_SEPARATOR; |
| 192 case 0x6D: | 192 case 0x6D: |
| 193 return base::VKEY_SUBTRACT; | 193 return app::VKEY_SUBTRACT; |
| 194 case 0x6E: | 194 case 0x6E: |
| 195 return base::VKEY_DECIMAL; | 195 return app::VKEY_DECIMAL; |
| 196 case 0x6F: | 196 case 0x6F: |
| 197 return base::VKEY_DIVIDE; | 197 return app::VKEY_DIVIDE; |
| 198 case 0x70: | 198 case 0x70: |
| 199 return base::VKEY_F1; | 199 return app::VKEY_F1; |
| 200 case 0x71: | 200 case 0x71: |
| 201 return base::VKEY_F2; | 201 return app::VKEY_F2; |
| 202 case 0x72: | 202 case 0x72: |
| 203 return base::VKEY_F3; | 203 return app::VKEY_F3; |
| 204 case 0x73: | 204 case 0x73: |
| 205 return base::VKEY_F4; | 205 return app::VKEY_F4; |
| 206 case 0x74: | 206 case 0x74: |
| 207 return base::VKEY_F5; | 207 return app::VKEY_F5; |
| 208 case 0x75: | 208 case 0x75: |
| 209 return base::VKEY_F6; | 209 return app::VKEY_F6; |
| 210 case 0x76: | 210 case 0x76: |
| 211 return base::VKEY_F7; | 211 return app::VKEY_F7; |
| 212 case 0x77: | 212 case 0x77: |
| 213 return base::VKEY_F8; | 213 return app::VKEY_F8; |
| 214 case 0x78: | 214 case 0x78: |
| 215 return base::VKEY_F9; | 215 return app::VKEY_F9; |
| 216 case 0x79: | 216 case 0x79: |
| 217 return base::VKEY_F10; | 217 return app::VKEY_F10; |
| 218 case 0x7A: | 218 case 0x7A: |
| 219 return base::VKEY_F11; | 219 return app::VKEY_F11; |
| 220 case 0x7B: | 220 case 0x7B: |
| 221 return base::VKEY_F12; | 221 return app::VKEY_F12; |
| 222 case 0x7C: | 222 case 0x7C: |
| 223 return base::VKEY_F13; | 223 return app::VKEY_F13; |
| 224 case 0x7D: | 224 case 0x7D: |
| 225 return base::VKEY_F14; | 225 return app::VKEY_F14; |
| 226 case 0x7E: | 226 case 0x7E: |
| 227 return base::VKEY_F15; | 227 return app::VKEY_F15; |
| 228 case 0x7F: | 228 case 0x7F: |
| 229 return base::VKEY_F16; | 229 return app::VKEY_F16; |
| 230 case 0x80: | 230 case 0x80: |
| 231 return base::VKEY_F17; | 231 return app::VKEY_F17; |
| 232 case 0x81: | 232 case 0x81: |
| 233 return base::VKEY_F18; | 233 return app::VKEY_F18; |
| 234 case 0x82: | 234 case 0x82: |
| 235 return base::VKEY_F19; | 235 return app::VKEY_F19; |
| 236 case 0x83: | 236 case 0x83: |
| 237 return base::VKEY_F20; | 237 return app::VKEY_F20; |
| 238 case 0x84: | 238 case 0x84: |
| 239 return base::VKEY_F21; | 239 return app::VKEY_F21; |
| 240 case 0x85: | 240 case 0x85: |
| 241 return base::VKEY_F22; | 241 return app::VKEY_F22; |
| 242 case 0x86: | 242 case 0x86: |
| 243 return base::VKEY_F23; | 243 return app::VKEY_F23; |
| 244 case 0x87: | 244 case 0x87: |
| 245 return base::VKEY_F24; | 245 return app::VKEY_F24; |
| 246 case 0x90: | 246 case 0x90: |
| 247 return base::VKEY_NUMLOCK; | 247 return app::VKEY_NUMLOCK; |
| 248 case 0x91: | 248 case 0x91: |
| 249 return base::VKEY_SCROLL; | 249 return app::VKEY_SCROLL; |
| 250 case 0xA0: | 250 case 0xA0: |
| 251 return base::VKEY_LSHIFT; | 251 return app::VKEY_LSHIFT; |
| 252 case 0xA1: | 252 case 0xA1: |
| 253 return base::VKEY_RSHIFT; | 253 return app::VKEY_RSHIFT; |
| 254 case 0xA2: | 254 case 0xA2: |
| 255 return base::VKEY_LCONTROL; | 255 return app::VKEY_LCONTROL; |
| 256 case 0xA3: | 256 case 0xA3: |
| 257 return base::VKEY_RCONTROL; | 257 return app::VKEY_RCONTROL; |
| 258 case 0xA4: | 258 case 0xA4: |
| 259 return base::VKEY_LMENU; | 259 return app::VKEY_LMENU; |
| 260 case 0xA5: | 260 case 0xA5: |
| 261 return base::VKEY_RMENU; | 261 return app::VKEY_RMENU; |
| 262 case 0xA6: | 262 case 0xA6: |
| 263 return base::VKEY_BROWSER_BACK; | 263 return app::VKEY_BROWSER_BACK; |
| 264 case 0xA7: | 264 case 0xA7: |
| 265 return base::VKEY_BROWSER_FORWARD; | 265 return app::VKEY_BROWSER_FORWARD; |
| 266 case 0xA8: | 266 case 0xA8: |
| 267 return base::VKEY_BROWSER_REFRESH; | 267 return app::VKEY_BROWSER_REFRESH; |
| 268 case 0xA9: | 268 case 0xA9: |
| 269 return base::VKEY_BROWSER_STOP; | 269 return app::VKEY_BROWSER_STOP; |
| 270 case 0xAA: | 270 case 0xAA: |
| 271 return base::VKEY_BROWSER_SEARCH; | 271 return app::VKEY_BROWSER_SEARCH; |
| 272 case 0xAB: | 272 case 0xAB: |
| 273 return base::VKEY_BROWSER_FAVORITES; | 273 return app::VKEY_BROWSER_FAVORITES; |
| 274 case 0xAC: | 274 case 0xAC: |
| 275 return base::VKEY_BROWSER_HOME; | 275 return app::VKEY_BROWSER_HOME; |
| 276 case 0xAD: | 276 case 0xAD: |
| 277 return base::VKEY_VOLUME_MUTE; | 277 return app::VKEY_VOLUME_MUTE; |
| 278 case 0xAE: | 278 case 0xAE: |
| 279 return base::VKEY_VOLUME_DOWN; | 279 return app::VKEY_VOLUME_DOWN; |
| 280 case 0xAF: | 280 case 0xAF: |
| 281 return base::VKEY_VOLUME_UP; | 281 return app::VKEY_VOLUME_UP; |
| 282 case 0xB0: | 282 case 0xB0: |
| 283 return base::VKEY_MEDIA_NEXT_TRACK; | 283 return app::VKEY_MEDIA_NEXT_TRACK; |
| 284 case 0xB1: | 284 case 0xB1: |
| 285 return base::VKEY_MEDIA_PREV_TRACK; | 285 return app::VKEY_MEDIA_PREV_TRACK; |
| 286 case 0xB2: | 286 case 0xB2: |
| 287 return base::VKEY_MEDIA_STOP; | 287 return app::VKEY_MEDIA_STOP; |
| 288 case 0xB3: | 288 case 0xB3: |
| 289 return base::VKEY_MEDIA_PLAY_PAUSE; | 289 return app::VKEY_MEDIA_PLAY_PAUSE; |
| 290 case 0xB4: | 290 case 0xB4: |
| 291 return base::VKEY_MEDIA_LAUNCH_MAIL; | 291 return app::VKEY_MEDIA_LAUNCH_MAIL; |
| 292 case 0xB5: | 292 case 0xB5: |
| 293 return base::VKEY_MEDIA_LAUNCH_MEDIA_SELECT; | 293 return app::VKEY_MEDIA_LAUNCH_MEDIA_SELECT; |
| 294 case 0xB6: | 294 case 0xB6: |
| 295 return base::VKEY_MEDIA_LAUNCH_APP1; | 295 return app::VKEY_MEDIA_LAUNCH_APP1; |
| 296 case 0xB7: | 296 case 0xB7: |
| 297 return base::VKEY_MEDIA_LAUNCH_APP2; | 297 return app::VKEY_MEDIA_LAUNCH_APP2; |
| 298 case 0xBA: | 298 case 0xBA: |
| 299 return base::VKEY_OEM_1; | 299 return app::VKEY_OEM_1; |
| 300 case 0xBB: | 300 case 0xBB: |
| 301 return base::VKEY_OEM_PLUS; | 301 return app::VKEY_OEM_PLUS; |
| 302 case 0xBC: | 302 case 0xBC: |
| 303 return base::VKEY_OEM_COMMA; | 303 return app::VKEY_OEM_COMMA; |
| 304 case 0xBD: | 304 case 0xBD: |
| 305 return base::VKEY_OEM_MINUS; | 305 return app::VKEY_OEM_MINUS; |
| 306 case 0xBE: | 306 case 0xBE: |
| 307 return base::VKEY_OEM_PERIOD; | 307 return app::VKEY_OEM_PERIOD; |
| 308 case 0xBF: | 308 case 0xBF: |
| 309 return base::VKEY_OEM_2; | 309 return app::VKEY_OEM_2; |
| 310 case 0xC0: | 310 case 0xC0: |
| 311 return base::VKEY_OEM_3; | 311 return app::VKEY_OEM_3; |
| 312 case 0xDB: | 312 case 0xDB: |
| 313 return base::VKEY_OEM_4; | 313 return app::VKEY_OEM_4; |
| 314 case 0xDC: | 314 case 0xDC: |
| 315 return base::VKEY_OEM_5; | 315 return app::VKEY_OEM_5; |
| 316 case 0xDD: | 316 case 0xDD: |
| 317 return base::VKEY_OEM_6; | 317 return app::VKEY_OEM_6; |
| 318 case 0xDE: | 318 case 0xDE: |
| 319 return base::VKEY_OEM_7; | 319 return app::VKEY_OEM_7; |
| 320 case 0xDF: | 320 case 0xDF: |
| 321 return base::VKEY_OEM_8; | 321 return app::VKEY_OEM_8; |
| 322 case 0xE2: | 322 case 0xE2: |
| 323 return base::VKEY_OEM_102; | 323 return app::VKEY_OEM_102; |
| 324 case 0xE5: | 324 case 0xE5: |
| 325 return base::VKEY_PROCESSKEY; | 325 return app::VKEY_PROCESSKEY; |
| 326 case 0xE7: | 326 case 0xE7: |
| 327 return base::VKEY_PACKET; | 327 return app::VKEY_PACKET; |
| 328 case 0xF6: | 328 case 0xF6: |
| 329 return base::VKEY_ATTN; | 329 return app::VKEY_ATTN; |
| 330 case 0xF7: | 330 case 0xF7: |
| 331 return base::VKEY_CRSEL; | 331 return app::VKEY_CRSEL; |
| 332 case 0xF8: | 332 case 0xF8: |
| 333 return base::VKEY_EXSEL; | 333 return app::VKEY_EXSEL; |
| 334 case 0xF9: | 334 case 0xF9: |
| 335 return base::VKEY_EREOF; | 335 return app::VKEY_EREOF; |
| 336 case 0xFA: | 336 case 0xFA: |
| 337 return base::VKEY_PLAY; | 337 return app::VKEY_PLAY; |
| 338 case 0xFB: | 338 case 0xFB: |
| 339 return base::VKEY_ZOOM; | 339 return app::VKEY_ZOOM; |
| 340 case 0xFC: | 340 case 0xFC: |
| 341 return base::VKEY_NONAME; | 341 return app::VKEY_NONAME; |
| 342 case 0xFD: | 342 case 0xFD: |
| 343 return base::VKEY_PA1; | 343 return app::VKEY_PA1; |
| 344 case 0xFE: | 344 case 0xFE: |
| 345 return base::VKEY_OEM_CLEAR; | 345 return app::VKEY_OEM_CLEAR; |
| 346 default: | 346 default: |
| 347 return base::VKEY_UNKNOWN; | 347 return app::VKEY_UNKNOWN; |
| 348 } | 348 } |
| 349 } | 349 } |
| 350 | 350 |
| 351 EventExecutorWin::EventExecutorWin(Capturer* capturer) | 351 EventExecutorWin::EventExecutorWin(Capturer* capturer) |
| 352 : EventExecutor(capturer) { | 352 : EventExecutor(capturer) { |
| 353 } | 353 } |
| 354 | 354 |
| 355 EventExecutorWin::~EventExecutorWin() { | 355 EventExecutorWin::~EventExecutorWin() { |
| 356 } | 356 } |
| 357 | 357 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 input.ki.wScan = msg->key_event().key(); | 483 input.ki.wScan = msg->key_event().key(); |
| 484 input.ki.dwFlags = KEYEVENTF_UNICODE; | 484 input.ki.dwFlags = KEYEVENTF_UNICODE; |
| 485 if (!msg->key_event().pressed()) { | 485 if (!msg->key_event().pressed()) { |
| 486 input.ki.dwFlags |= KEYEVENTF_KEYUP; | 486 input.ki.dwFlags |= KEYEVENTF_KEYUP; |
| 487 } | 487 } |
| 488 | 488 |
| 489 SendInput(1, &input, sizeof(INPUT)); | 489 SendInput(1, &input, sizeof(INPUT)); |
| 490 } | 490 } |
| 491 | 491 |
| 492 } // namespace remoting | 492 } // namespace remoting |
| OLD | NEW |