MCPcopy Create free account
hub / github.com/WallBreaker2/op / DirectInputScanCode

Function DirectInputScanCode

libop/input/keyboard/KeyMessageUtils.h:52–68  ·  view source on GitHub ↗

DirectInput 的扫描码和普通窗口消息略有差异,少数特殊键统一在这里处理。

Source from the content-addressed store, hash-verified

50
51// DirectInput 的扫描码和普通窗口消息略有差异,少数特殊键统一在这里处理。
52inline BYTE DirectInputScanCode(UINT vk_code) {
53 switch (vk_code) {
54 case VK_NUMLOCK:
55 return 0x45;
56 case VK_PAUSE:
57 return 0xC5;
58 case VK_SNAPSHOT:
59 return 0xB7;
60 default:
61 break;
62 }
63
64 BYTE scan = static_cast<BYTE>(::MapVirtualKey(vk_code, MAPVK_VK_TO_VSC) & 0xff);
65 if (scan == 0)
66 return 0;
67 return IsExtendedVirtualKey(vk_code) ? static_cast<BYTE>(scan | 0x80) : scan;
68}
69
70} // namespace op::input::key_message

Callers 1

dik_codeFunction · 0.85

Calls 1

IsExtendedVirtualKeyFunction · 0.85

Tested by

no test coverage detected