• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

luttje / Key2Joy / 6599541470

21 Oct 2023 08:35PM UTC coverage: 44.926% (-7.6%) from 52.519%
6599541470

Pull #50

github

web-flow
Merge 3a933762e into 14b7ce9a7
Pull Request #50: Add XInput in preparation for gamepad triggers + add xmldoc

760 of 2323 branches covered (0.0%)

Branch coverage included in aggregate %.

2833 of 2833 new or added lines in 98 files covered. (100.0%)

3888 of 8023 relevant lines covered (48.46%)

22519.45 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/Core/Key2Joy.Core/LowLevelInput/SimulatedKeyboard.cs
1
using System;
2
using System.Runtime.InteropServices;
3

4
namespace Key2Joy.LowLevelInput;
5

6
// Source: https://stackoverflow.com/a/48967155
7
public static class SimulatedKeyboard
8
{
9
    public static void PressKey(KeyboardKey scanCode)
10
        => Send(scanCode);
×
11

12
    public static void ReleaseKey(KeyboardKey scanCode)
13
        => Send(scanCode, KEYEVENTF.KEYUP);
×
14

15
    public static void Send(KeyboardKey scanCode, KEYEVENTF? rawPressState = null)
16
    {
17
        var inputs = new Simulator.INPUT[1];
×
18
        Simulator.INPUT input = new()
×
19
        {
×
20
            type = 1 // 1 = Keyboard Input
×
21
        };
×
22
        input.U.ki.wScan = scanCode;
×
23

24
        if (rawPressState.HasValue)
×
25
        {
26
            input.U.ki.dwFlags = rawPressState.Value | KEYEVENTF.SCANCODE;
×
27
        }
28
        else
29
        {
30
            input.U.ki.dwFlags = KEYEVENTF.SCANCODE;
×
31
        }
32

33
        inputs[0] = input;
×
34

35
        Simulator.SendInput(1, inputs, Simulator.INPUT.Size);
×
36
    }
×
37

38
    [StructLayout(LayoutKind.Sequential)]
39
    public struct KEYBDINPUT
40
    {
41
        public VirtualKeyShort wVk;
42
        public KeyboardKey wScan;
43
        public KEYEVENTF dwFlags;
44
        public int time;
45
        public UIntPtr dwExtraInfo;
46
    }
47

48
    [Flags]
49
    public enum KEYEVENTF : uint
50
    {
51
        EXTENDEDKEY = 0x0001,
52
        KEYUP = 0x0002,
53
        SCANCODE = 0x0008,
54
        UNICODE = 0x0004
55
    }
56

57
    public enum VirtualKeyShort : short
58
    {
59
        ///<summary>
60
        ///Left mouse button
61
        ///</summary>
62
        LBUTTON = 0x01,
63

64
        ///<summary>
65
        ///Right mouse button
66
        ///</summary>
67
        RBUTTON = 0x02,
68

69
        ///<summary>
70
        ///Control-break processing
71
        ///</summary>
72
        CANCEL = 0x03,
73

74
        ///<summary>
75
        ///Middle mouse button (three-button mouse)
76
        ///</summary>
77
        MBUTTON = 0x04,
78

79
        ///<summary>
80
        ///Windows 2000/XP: X1 mouse button
81
        ///</summary>
82
        XBUTTON1 = 0x05,
83

84
        ///<summary>
85
        ///Windows 2000/XP: X2 mouse button
86
        ///</summary>
87
        XBUTTON2 = 0x06,
88

89
        ///<summary>
90
        ///BACKSPACE key
91
        ///</summary>
92
        BACK = 0x08,
93

94
        ///<summary>
95
        ///TAB key
96
        ///</summary>
97
        TAB = 0x09,
98

99
        ///<summary>
100
        ///CLEAR key
101
        ///</summary>
102
        CLEAR = 0x0C,
103

104
        ///<summary>
105
        ///ENTER key
106
        ///</summary>
107
        RETURN = 0x0D,
108

109
        ///<summary>
110
        ///SHIFT key
111
        ///</summary>
112
        SHIFT = 0x10,
113

114
        ///<summary>
115
        ///CTRL key
116
        ///</summary>
117
        CONTROL = 0x11,
118

119
        ///<summary>
120
        ///ALT key
121
        ///</summary>
122
        MENU = 0x12,
123

124
        ///<summary>
125
        ///PAUSE key
126
        ///</summary>
127
        PAUSE = 0x13,
128

129
        ///<summary>
130
        ///CAPS LOCK key
131
        ///</summary>
132
        CAPITAL = 0x14,
133

134
        ///<summary>
135
        ///Input Method Editor (IME) Kana mode
136
        ///</summary>
137
        KANA = 0x15,
138

139
        ///<summary>
140
        ///IME Hangul mode
141
        ///</summary>
142
        HANGUL = 0x15,
143

144
        ///<summary>
145
        ///IME Junja mode
146
        ///</summary>
147
        JUNJA = 0x17,
148

149
        ///<summary>
150
        ///IME final mode
151
        ///</summary>
152
        FINAL = 0x18,
153

154
        ///<summary>
155
        ///IME Hanja mode
156
        ///</summary>
157
        HANJA = 0x19,
158

159
        ///<summary>
160
        ///IME Kanji mode
161
        ///</summary>
162
        KANJI = 0x19,
163

164
        ///<summary>
165
        ///ESC key
166
        ///</summary>
167
        ESCAPE = 0x1B,
168

169
        ///<summary>
170
        ///IME convert
171
        ///</summary>
172
        CONVERT = 0x1C,
173

174
        ///<summary>
175
        ///IME nonconvert
176
        ///</summary>
177
        NONCONVERT = 0x1D,
178

179
        ///<summary>
180
        ///IME accept
181
        ///</summary>
182
        ACCEPT = 0x1E,
183

184
        ///<summary>
185
        ///IME mode change request
186
        ///</summary>
187
        MODECHANGE = 0x1F,
188

189
        ///<summary>
190
        ///SPACEBAR
191
        ///</summary>
192
        SPACE = 0x20,
193

194
        ///<summary>
195
        ///PAGE UP key
196
        ///</summary>
197
        PRIOR = 0x21,
198

199
        ///<summary>
200
        ///PAGE DOWN key
201
        ///</summary>
202
        NEXT = 0x22,
203

204
        ///<summary>
205
        ///END key
206
        ///</summary>
207
        END = 0x23,
208

209
        ///<summary>
210
        ///HOME key
211
        ///</summary>
212
        HOME = 0x24,
213

214
        ///<summary>
215
        ///LEFT ARROW key
216
        ///</summary>
217
        LEFT = 0x25,
218

219
        ///<summary>
220
        ///UP ARROW key
221
        ///</summary>
222
        UP = 0x26,
223

224
        ///<summary>
225
        ///RIGHT ARROW key
226
        ///</summary>
227
        RIGHT = 0x27,
228

229
        ///<summary>
230
        ///DOWN ARROW key
231
        ///</summary>
232
        DOWN = 0x28,
233

234
        ///<summary>
235
        ///SELECT key
236
        ///</summary>
237
        SELECT = 0x29,
238

239
        ///<summary>
240
        ///PRINT key
241
        ///</summary>
242
        PRINT = 0x2A,
243

244
        ///<summary>
245
        ///EXECUTE key
246
        ///</summary>
247
        EXECUTE = 0x2B,
248

249
        ///<summary>
250
        ///PRINT SCREEN key
251
        ///</summary>
252
        SNAPSHOT = 0x2C,
253

254
        ///<summary>
255
        ///INS key
256
        ///</summary>
257
        INSERT = 0x2D,
258

259
        ///<summary>
260
        ///DEL key
261
        ///</summary>
262
        DELETE = 0x2E,
263

264
        ///<summary>
265
        ///HELP key
266
        ///</summary>
267
        HELP = 0x2F,
268

269
        ///<summary>
270
        ///0 key
271
        ///</summary>
272
        KEY_0 = 0x30,
273

274
        ///<summary>
275
        ///1 key
276
        ///</summary>
277
        KEY_1 = 0x31,
278

279
        ///<summary>
280
        ///2 key
281
        ///</summary>
282
        KEY_2 = 0x32,
283

284
        ///<summary>
285
        ///3 key
286
        ///</summary>
287
        KEY_3 = 0x33,
288

289
        ///<summary>
290
        ///4 key
291
        ///</summary>
292
        KEY_4 = 0x34,
293

294
        ///<summary>
295
        ///5 key
296
        ///</summary>
297
        KEY_5 = 0x35,
298

299
        ///<summary>
300
        ///6 key
301
        ///</summary>
302
        KEY_6 = 0x36,
303

304
        ///<summary>
305
        ///7 key
306
        ///</summary>
307
        KEY_7 = 0x37,
308

309
        ///<summary>
310
        ///8 key
311
        ///</summary>
312
        KEY_8 = 0x38,
313

314
        ///<summary>
315
        ///9 key
316
        ///</summary>
317
        KEY_9 = 0x39,
318

319
        ///<summary>
320
        ///A key
321
        ///</summary>
322
        KEY_A = 0x41,
323

324
        ///<summary>
325
        ///B key
326
        ///</summary>
327
        KEY_B = 0x42,
328

329
        ///<summary>
330
        ///C key
331
        ///</summary>
332
        KEY_C = 0x43,
333

334
        ///<summary>
335
        ///D key
336
        ///</summary>
337
        KEY_D = 0x44,
338

339
        ///<summary>
340
        ///E key
341
        ///</summary>
342
        KEY_E = 0x45,
343

344
        ///<summary>
345
        ///F key
346
        ///</summary>
347
        KEY_F = 0x46,
348

349
        ///<summary>
350
        ///G key
351
        ///</summary>
352
        KEY_G = 0x47,
353

354
        ///<summary>
355
        ///H key
356
        ///</summary>
357
        KEY_H = 0x48,
358

359
        ///<summary>
360
        ///I key
361
        ///</summary>
362
        KEY_I = 0x49,
363

364
        ///<summary>
365
        ///J key
366
        ///</summary>
367
        KEY_J = 0x4A,
368

369
        ///<summary>
370
        ///K key
371
        ///</summary>
372
        KEY_K = 0x4B,
373

374
        ///<summary>
375
        ///L key
376
        ///</summary>
377
        KEY_L = 0x4C,
378

379
        ///<summary>
380
        ///M key
381
        ///</summary>
382
        KEY_M = 0x4D,
383

384
        ///<summary>
385
        ///N key
386
        ///</summary>
387
        KEY_N = 0x4E,
388

389
        ///<summary>
390
        ///O key
391
        ///</summary>
392
        KEY_O = 0x4F,
393

394
        ///<summary>
395
        ///P key
396
        ///</summary>
397
        KEY_P = 0x50,
398

399
        ///<summary>
400
        ///Q key
401
        ///</summary>
402
        KEY_Q = 0x51,
403

404
        ///<summary>
405
        ///R key
406
        ///</summary>
407
        KEY_R = 0x52,
408

409
        ///<summary>
410
        ///S key
411
        ///</summary>
412
        KEY_S = 0x53,
413

414
        ///<summary>
415
        ///T key
416
        ///</summary>
417
        KEY_T = 0x54,
418

419
        ///<summary>
420
        ///U key
421
        ///</summary>
422
        KEY_U = 0x55,
423

424
        ///<summary>
425
        ///V key
426
        ///</summary>
427
        KEY_V = 0x56,
428

429
        ///<summary>
430
        ///W key
431
        ///</summary>
432
        KEY_W = 0x57,
433

434
        ///<summary>
435
        ///X key
436
        ///</summary>
437
        KEY_X = 0x58,
438

439
        ///<summary>
440
        ///Y key
441
        ///</summary>
442
        KEY_Y = 0x59,
443

444
        ///<summary>
445
        ///Z key
446
        ///</summary>
447
        KEY_Z = 0x5A,
448

449
        ///<summary>
450
        ///Left Windows key (Microsoft Natural keyboard)
451
        ///</summary>
452
        LWIN = 0x5B,
453

454
        ///<summary>
455
        ///Right Windows key (Natural keyboard)
456
        ///</summary>
457
        RWIN = 0x5C,
458

459
        ///<summary>
460
        ///Applications key (Natural keyboard)
461
        ///</summary>
462
        APPS = 0x5D,
463

464
        ///<summary>
465
        ///Computer Sleep key
466
        ///</summary>
467
        SLEEP = 0x5F,
468

469
        ///<summary>
470
        ///Numeric keypad 0 key
471
        ///</summary>
472
        NUMPAD0 = 0x60,
473

474
        ///<summary>
475
        ///Numeric keypad 1 key
476
        ///</summary>
477
        NUMPAD1 = 0x61,
478

479
        ///<summary>
480
        ///Numeric keypad 2 key
481
        ///</summary>
482
        NUMPAD2 = 0x62,
483

484
        ///<summary>
485
        ///Numeric keypad 3 key
486
        ///</summary>
487
        NUMPAD3 = 0x63,
488

489
        ///<summary>
490
        ///Numeric keypad 4 key
491
        ///</summary>
492
        NUMPAD4 = 0x64,
493

494
        ///<summary>
495
        ///Numeric keypad 5 key
496
        ///</summary>
497
        NUMPAD5 = 0x65,
498

499
        ///<summary>
500
        ///Numeric keypad 6 key
501
        ///</summary>
502
        NUMPAD6 = 0x66,
503

504
        ///<summary>
505
        ///Numeric keypad 7 key
506
        ///</summary>
507
        NUMPAD7 = 0x67,
508

509
        ///<summary>
510
        ///Numeric keypad 8 key
511
        ///</summary>
512
        NUMPAD8 = 0x68,
513

514
        ///<summary>
515
        ///Numeric keypad 9 key
516
        ///</summary>
517
        NUMPAD9 = 0x69,
518

519
        ///<summary>
520
        ///Multiply key
521
        ///</summary>
522
        MULTIPLY = 0x6A,
523

524
        ///<summary>
525
        ///Add key
526
        ///</summary>
527
        ADD = 0x6B,
528

529
        ///<summary>
530
        ///Separator key
531
        ///</summary>
532
        SEPARATOR = 0x6C,
533

534
        ///<summary>
535
        ///Subtract key
536
        ///</summary>
537
        SUBTRACT = 0x6D,
538

539
        ///<summary>
540
        ///Decimal key
541
        ///</summary>
542
        DECIMAL = 0x6E,
543

544
        ///<summary>
545
        ///Divide key
546
        ///</summary>
547
        DIVIDE = 0x6F,
548

549
        ///<summary>
550
        ///F1 key
551
        ///</summary>
552
        F1 = 0x70,
553

554
        ///<summary>
555
        ///F2 key
556
        ///</summary>
557
        F2 = 0x71,
558

559
        ///<summary>
560
        ///F3 key
561
        ///</summary>
562
        F3 = 0x72,
563

564
        ///<summary>
565
        ///F4 key
566
        ///</summary>
567
        F4 = 0x73,
568

569
        ///<summary>
570
        ///F5 key
571
        ///</summary>
572
        F5 = 0x74,
573

574
        ///<summary>
575
        ///F6 key
576
        ///</summary>
577
        F6 = 0x75,
578

579
        ///<summary>
580
        ///F7 key
581
        ///</summary>
582
        F7 = 0x76,
583

584
        ///<summary>
585
        ///F8 key
586
        ///</summary>
587
        F8 = 0x77,
588

589
        ///<summary>
590
        ///F9 key
591
        ///</summary>
592
        F9 = 0x78,
593

594
        ///<summary>
595
        ///F10 key
596
        ///</summary>
597
        F10 = 0x79,
598

599
        ///<summary>
600
        ///F11 key
601
        ///</summary>
602
        F11 = 0x7A,
603

604
        ///<summary>
605
        ///F12 key
606
        ///</summary>
607
        F12 = 0x7B,
608

609
        ///<summary>
610
        ///F13 key
611
        ///</summary>
612
        F13 = 0x7C,
613

614
        ///<summary>
615
        ///F14 key
616
        ///</summary>
617
        F14 = 0x7D,
618

619
        ///<summary>
620
        ///F15 key
621
        ///</summary>
622
        F15 = 0x7E,
623

624
        ///<summary>
625
        ///F16 key
626
        ///</summary>
627
        F16 = 0x7F,
628

629
        ///<summary>
630
        ///F17 key
631
        ///</summary>
632
        F17 = 0x80,
633

634
        ///<summary>
635
        ///F18 key
636
        ///</summary>
637
        F18 = 0x81,
638

639
        ///<summary>
640
        ///F19 key
641
        ///</summary>
642
        F19 = 0x82,
643

644
        ///<summary>
645
        ///F20 key
646
        ///</summary>
647
        F20 = 0x83,
648

649
        ///<summary>
650
        ///F21 key
651
        ///</summary>
652
        F21 = 0x84,
653

654
        ///<summary>
655
        ///F22 key, (PPC only) Key used to lock device.
656
        ///</summary>
657
        F22 = 0x85,
658

659
        ///<summary>
660
        ///F23 key
661
        ///</summary>
662
        F23 = 0x86,
663

664
        ///<summary>
665
        ///F24 key
666
        ///</summary>
667
        F24 = 0x87,
668

669
        ///<summary>
670
        ///NUM LOCK key
671
        ///</summary>
672
        NUMLOCK = 0x90,
673

674
        ///<summary>
675
        ///SCROLL LOCK key
676
        ///</summary>
677
        SCROLL = 0x91,
678

679
        ///<summary>
680
        ///Left SHIFT key
681
        ///</summary>
682
        LSHIFT = 0xA0,
683

684
        ///<summary>
685
        ///Right SHIFT key
686
        ///</summary>
687
        RSHIFT = 0xA1,
688

689
        ///<summary>
690
        ///Left CONTROL key
691
        ///</summary>
692
        LCONTROL = 0xA2,
693

694
        ///<summary>
695
        ///Right CONTROL key
696
        ///</summary>
697
        RCONTROL = 0xA3,
698

699
        ///<summary>
700
        ///Left MENU key
701
        ///</summary>
702
        LMENU = 0xA4,
703

704
        ///<summary>
705
        ///Right MENU key
706
        ///</summary>
707
        RMENU = 0xA5,
708

709
        ///<summary>
710
        ///Windows 2000/XP: Browser Back key
711
        ///</summary>
712
        BROWSER_BACK = 0xA6,
713

714
        ///<summary>
715
        ///Windows 2000/XP: Browser Forward key
716
        ///</summary>
717
        BROWSER_FORWARD = 0xA7,
718

719
        ///<summary>
720
        ///Windows 2000/XP: Browser Refresh key
721
        ///</summary>
722
        BROWSER_REFRESH = 0xA8,
723

724
        ///<summary>
725
        ///Windows 2000/XP: Browser Stop key
726
        ///</summary>
727
        BROWSER_STOP = 0xA9,
728

729
        ///<summary>
730
        ///Windows 2000/XP: Browser Search key
731
        ///</summary>
732
        BROWSER_SEARCH = 0xAA,
733

734
        ///<summary>
735
        ///Windows 2000/XP: Browser Favorites key
736
        ///</summary>
737
        BROWSER_FAVORITES = 0xAB,
738

739
        ///<summary>
740
        ///Windows 2000/XP: Browser Start and Home key
741
        ///</summary>
742
        BROWSER_HOME = 0xAC,
743

744
        ///<summary>
745
        ///Windows 2000/XP: Volume Mute key
746
        ///</summary>
747
        VOLUME_MUTE = 0xAD,
748

749
        ///<summary>
750
        ///Windows 2000/XP: Volume Down key
751
        ///</summary>
752
        VOLUME_DOWN = 0xAE,
753

754
        ///<summary>
755
        ///Windows 2000/XP: Volume Up key
756
        ///</summary>
757
        VOLUME_UP = 0xAF,
758

759
        ///<summary>
760
        ///Windows 2000/XP: Next Track key
761
        ///</summary>
762
        MEDIA_NEXT_TRACK = 0xB0,
763

764
        ///<summary>
765
        ///Windows 2000/XP: Previous Track key
766
        ///</summary>
767
        MEDIA_PREV_TRACK = 0xB1,
768

769
        ///<summary>
770
        ///Windows 2000/XP: Stop Media key
771
        ///</summary>
772
        MEDIA_STOP = 0xB2,
773

774
        ///<summary>
775
        ///Windows 2000/XP: Play/Pause Media key
776
        ///</summary>
777
        MEDIA_PLAY_PAUSE = 0xB3,
778

779
        ///<summary>
780
        ///Windows 2000/XP: Start Mail key
781
        ///</summary>
782
        LAUNCH_MAIL = 0xB4,
783

784
        ///<summary>
785
        ///Windows 2000/XP: Select Media key
786
        ///</summary>
787
        LAUNCH_MEDIA_SELECT = 0xB5,
788

789
        ///<summary>
790
        ///Windows 2000/XP: Start Application 1 key
791
        ///</summary>
792
        LAUNCH_APP1 = 0xB6,
793

794
        ///<summary>
795
        ///Windows 2000/XP: Start Application 2 key
796
        ///</summary>
797
        LAUNCH_APP2 = 0xB7,
798

799
        ///<summary>
800
        ///Used for miscellaneous characters; it can vary by keyboard.
801
        ///</summary>
802
        OEM_1 = 0xBA,
803

804
        ///<summary>
805
        ///Windows 2000/XP: For any country/region, the '+' key
806
        ///</summary>
807
        OEM_PLUS = 0xBB,
808

809
        ///<summary>
810
        ///Windows 2000/XP: For any country/region, the ',' key
811
        ///</summary>
812
        OEM_COMMA = 0xBC,
813

814
        ///<summary>
815
        ///Windows 2000/XP: For any country/region, the '-' key
816
        ///</summary>
817
        OEM_MINUS = 0xBD,
818

819
        ///<summary>
820
        ///Windows 2000/XP: For any country/region, the '.' key
821
        ///</summary>
822
        OEM_PERIOD = 0xBE,
823

824
        ///<summary>
825
        ///Used for miscellaneous characters; it can vary by keyboard.
826
        ///</summary>
827
        OEM_2 = 0xBF,
828

829
        ///<summary>
830
        ///Used for miscellaneous characters; it can vary by keyboard.
831
        ///</summary>
832
        OEM_3 = 0xC0,
833

834
        ///<summary>
835
        ///Used for miscellaneous characters; it can vary by keyboard.
836
        ///</summary>
837
        OEM_4 = 0xDB,
838

839
        ///<summary>
840
        ///Used for miscellaneous characters; it can vary by keyboard.
841
        ///</summary>
842
        OEM_5 = 0xDC,
843

844
        ///<summary>
845
        ///Used for miscellaneous characters; it can vary by keyboard.
846
        ///</summary>
847
        OEM_6 = 0xDD,
848

849
        ///<summary>
850
        ///Used for miscellaneous characters; it can vary by keyboard.
851
        ///</summary>
852
        OEM_7 = 0xDE,
853

854
        ///<summary>
855
        ///Used for miscellaneous characters; it can vary by keyboard.
856
        ///</summary>
857
        OEM_8 = 0xDF,
858

859
        ///<summary>
860
        ///Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard
861
        ///</summary>
862
        OEM_102 = 0xE2,
863

864
        ///<summary>
865
        ///Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key
866
        ///</summary>
867
        PROCESSKEY = 0xE5,
868

869
        ///<summary>
870
        ///Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes.
871
        ///The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information,
872
        ///see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
873
        ///</summary>
874
        PACKET = 0xE7,
875

876
        ///<summary>
877
        ///Attn key
878
        ///</summary>
879
        ATTN = 0xF6,
880

881
        ///<summary>
882
        ///CrSel key
883
        ///</summary>
884
        CRSEL = 0xF7,
885

886
        ///<summary>
887
        ///ExSel key
888
        ///</summary>
889
        EXSEL = 0xF8,
890

891
        ///<summary>
892
        ///Erase EOF key
893
        ///</summary>
894
        EREOF = 0xF9,
895

896
        ///<summary>
897
        ///Play key
898
        ///</summary>
899
        PLAY = 0xFA,
900

901
        ///<summary>
902
        ///Zoom key
903
        ///</summary>
904
        ZOOM = 0xFB,
905

906
        ///<summary>
907
        ///Reserved
908
        ///</summary>
909
        NONAME = 0xFC,
910

911
        ///<summary>
912
        ///PA1 key
913
        ///</summary>
914
        PA1 = 0xFD,
915

916
        ///<summary>
917
        ///Clear key
918
        ///</summary>
919
        OEM_CLEAR = 0xFE
920
    }
921
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc