OEM扫描码
OEM扫描码是由硬体(键盘)产生的代码。这对中古时代的组合语言程式写作者来说应该很熟悉,它是从PC相容机种的ROM BIOS服务中所获得的值(OEM指的是PC的原始设备制造商(Original Equipment Manufacturer)及其与「IBM标准」同步的内容)。在此我们不需要更多的资讯。除非需要依赖实际键盘布局的样貌,不然Windows程式可以忽略掉几乎所有的OEM扫描码资讯,参见第二十二章的程式KBMIDI。
扩充键旗标
如果按键结果来自IBM增强键盘的附加键之一,那么扩充键旗标为1(IBM增强型键盘有101或102个键。功能键在键盘顶端,游标移动键从数字键盘中分离出来,但在数字键盘上还保留有游标移动键的功能)。对键盘右端的Alt和Ctrl键,以及不是数字键盘那部分的游标移动键(包括Insert和Delete键)、数字键盘上的斜线(/)和Enter键以及Num Lock键等,此旗标均被设定为1。Windows程式通常忽略扩充键旗标。
内容代码
右按键时,假如同时压下ALT键,那么内容代码为1。对WM_SYSKEYUP与WM_SYSKEYDOWN而言,此位元总视为1;而对WM_SYSKEYUP与WM_KEYDOW讯息而言,此位元为0。除了两个之外:
键的先前状态
如果在此之前键是释放的,则键的先前状态为0,否则为1。对WM_KEYUP或者WM_SYSKEYUP讯息,它总是设定为1;但是对WM_KEYDOWN或者WM_SYSKEYDOWN讯息,此位元可以为0,也可以为1。如果为1,则表示该键是自动重复功能所产生的第二个或者後续讯