473
473
{{VK_SHIFT, 0x80}, {VK_RSHIFT, 0x80}, {0}},
474
474
{{WM_KEYUP, hook|wparam|lparam, VK_RSHIFT, LLKHF_UP|LLKHF_EXTENDED},
475
475
{WM_KEYUP, wparam|lparam, VK_SHIFT, KF_UP}, {0}}},
477
/* Note about wparam for hook with generic key (VK_SHIFT, VK_CONTROL, VK_MENU):
478
win2k - sends to hook whatever we generated here
479
winXP+ - Attempts to convert key to L/R key but not always correct
476
481
/* SHIFT == LSHIFT */
478
483
{{VK_SHIFT, 0x00}, {VK_LSHIFT, 0x00}, {0}},
479
{{WM_KEYDOWN, hook|wparam|lparam, VK_SHIFT, 0},
484
{{WM_KEYDOWN, hook/* |wparam */|lparam, VK_SHIFT, 0},
480
485
{WM_KEYDOWN, wparam|lparam, VK_SHIFT, 0}, {0}}},
481
486
{VK_SHIFT, KEYEVENTF_KEYUP, 0,
482
487
{{VK_SHIFT, 0x80}, {VK_LSHIFT, 0x80}, {0}},
483
{{WM_KEYUP, hook|wparam|lparam, VK_SHIFT, LLKHF_UP},
488
{{WM_KEYUP, hook/*|wparam*/|lparam, VK_SHIFT, LLKHF_UP},
484
489
{WM_KEYUP, wparam|lparam, VK_SHIFT, KF_UP}, {0}}},
485
490
/* SHIFT | KEYEVENTF_EXTENDEDKEY == RSHIFT */
486
491
{VK_SHIFT, KEYEVENTF_EXTENDEDKEY, 0,
487
492
{{VK_SHIFT, 0x00}, {VK_RSHIFT, 0x00}, {0}},
488
{{WM_KEYDOWN, hook|wparam|lparam, VK_SHIFT, LLKHF_EXTENDED},
493
{{WM_KEYDOWN, hook/*|wparam*/|lparam, VK_SHIFT, LLKHF_EXTENDED},
489
494
{WM_KEYDOWN, wparam|lparam, VK_SHIFT, 0}, {0}}},
490
495
{VK_SHIFT, KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY, 0,
491
496
{{VK_SHIFT, 0x80}, {VK_RSHIFT, 0x80}, {0}},
492
{{WM_KEYUP, hook|wparam|lparam, VK_SHIFT, LLKHF_UP|LLKHF_EXTENDED},
497
{{WM_KEYUP, hook/*|wparam*/|lparam, VK_SHIFT, LLKHF_UP|LLKHF_EXTENDED},
493
498
{WM_KEYUP, wparam|lparam, VK_SHIFT, KF_UP}, {0}}},
495
500
/* test L-CONTROL & R-CONTROL: */
523
528
/* CONTROL == LCONTROL */
524
529
{VK_CONTROL, 0, 0,
525
530
{{VK_CONTROL, 0x00}, {VK_LCONTROL, 0x00}, {0}},
526
{{WM_KEYDOWN, hook|wparam, VK_CONTROL},
531
{{WM_KEYDOWN, hook/*|wparam, VK_CONTROL*/},
527
532
{WM_KEYDOWN, wparam|lparam, VK_CONTROL, 0}, {0}}},
528
533
{VK_CONTROL, KEYEVENTF_KEYUP, 0,
529
534
{{VK_CONTROL, 0x80}, {VK_LCONTROL, 0x80}, {0}},
530
{{WM_KEYUP, hook|wparam, VK_CONTROL},
535
{{WM_KEYUP, hook/*|wparam, VK_CONTROL*/},
531
536
{WM_KEYUP, wparam|lparam, VK_CONTROL, KF_UP}, {0}}},
532
537
/* CONTROL | KEYEVENTF_EXTENDEDKEY == RCONTROL */
533
538
{VK_CONTROL, KEYEVENTF_EXTENDEDKEY, 0,
534
539
{{VK_CONTROL, 0x00}, {VK_RCONTROL, 0x00}, {0}},
535
{{WM_KEYDOWN, hook|wparam|lparam, VK_CONTROL, LLKHF_EXTENDED},
540
{{WM_KEYDOWN, hook/*|wparam*/|lparam, VK_CONTROL, LLKHF_EXTENDED},
536
541
{WM_KEYDOWN, wparam|lparam, VK_CONTROL, KF_EXTENDED}, {0}}},
537
542
{VK_CONTROL, KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY, 0,
538
543
{{VK_CONTROL, 0x80}, {VK_RCONTROL, 0x80}, {0}},
539
{{WM_KEYUP, hook|wparam|lparam, VK_CONTROL, LLKHF_UP|LLKHF_EXTENDED},
544
{{WM_KEYUP, hook/*|wparam*/|lparam, VK_CONTROL, LLKHF_UP|LLKHF_EXTENDED},
540
545
{WM_KEYUP, wparam|lparam, VK_CONTROL, KF_UP|KF_EXTENDED}, {0}}},
542
547
/* test L-MENU & R-MENU: */
573
578
/* MENU == LMENU */
575
580
{{VK_MENU, 0x00}, {VK_LMENU, 0x00}, {0}},
576
{{WM_SYSKEYDOWN, hook|wparam, VK_MENU},
581
{{WM_SYSKEYDOWN, hook/*|wparam, VK_MENU*/},
577
582
{WM_SYSKEYDOWN, wparam|lparam, VK_MENU, 0}, {0}}},
578
583
{VK_MENU, KEYEVENTF_KEYUP, 1,
579
584
{{VK_MENU, 0x80}, {VK_LMENU, 0x80}, {0}},
580
{{WM_KEYUP, hook|wparam, VK_MENU},
585
{{WM_KEYUP, hook/*|wparam, VK_MENU*/},
581
586
{WM_SYSKEYUP, wparam|lparam, VK_MENU, KF_UP},
582
587
{WM_SYSCOMMAND}, {0}}},
583
588
/* MENU | KEYEVENTF_EXTENDEDKEY == RMENU */
584
589
{VK_MENU, KEYEVENTF_EXTENDEDKEY, 0,
585
590
{{VK_MENU, 0x00}, {VK_RMENU, 0x00}, {0}},
586
{{WM_SYSKEYDOWN, hook|wparam|lparam, VK_MENU, LLKHF_EXTENDED},
591
{{WM_SYSKEYDOWN, hook/*|wparam*/|lparam, VK_MENU, LLKHF_EXTENDED},
587
592
{WM_SYSKEYDOWN, wparam|lparam, VK_MENU, KF_EXTENDED}, {0}}},
588
593
{VK_MENU, KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY, 1,
589
594
{{VK_MENU, 0x80}, {VK_RMENU, 0x80}, {0}},
590
{{WM_KEYUP, hook|wparam|lparam, VK_MENU, LLKHF_UP|LLKHF_EXTENDED},
595
{{WM_KEYUP, hook/*|wparam*/|lparam, VK_MENU, LLKHF_UP|LLKHF_EXTENDED},
591
596
{WM_SYSKEYUP, wparam|lparam, VK_MENU, KF_UP|KF_EXTENDED},
592
597
{WM_SYSCOMMAND}, {0}}},