瀏覽代碼

libobs: add missing virtual key codes for Windows

the missing codes are extracted from WinUser.h header

nameless reserved codes added as hex in case some OEM keyboards send them
Igor Bochkariov 6 年之前
父節點
當前提交
d822c07dc3
共有 2 個文件被更改,包括 505 次插入0 次删除
  1. 170 0
      libobs/obs-hotkeys.h
  2. 335 0
      libobs/obs-windows.c

+ 170 - 0
libobs/obs-hotkeys.h

@@ -483,3 +483,173 @@ OBS_HOTKEY(OBS_KEY_REDO)
 OBS_HOTKEY(OBS_KEY_UNDO)
 OBS_HOTKEY(OBS_KEY_FRONT)
 OBS_HOTKEY(OBS_KEY_PROPS)
+
+#ifdef _WIN32
+OBS_HOTKEY(OBS_KEY_VK_CANCEL)
+OBS_HOTKEY(OBS_KEY_0x07)
+OBS_HOTKEY(OBS_KEY_0x0A)
+OBS_HOTKEY(OBS_KEY_0x0B)
+OBS_HOTKEY(OBS_KEY_0x0E)
+OBS_HOTKEY(OBS_KEY_0x0F)
+OBS_HOTKEY(OBS_KEY_0x16)
+OBS_HOTKEY(OBS_KEY_VK_JUNJA)
+OBS_HOTKEY(OBS_KEY_VK_FINAL)
+OBS_HOTKEY(OBS_KEY_0x1A)
+OBS_HOTKEY(OBS_KEY_VK_ACCEPT)
+OBS_HOTKEY(OBS_KEY_VK_MODECHANGE)
+OBS_HOTKEY(OBS_KEY_VK_SELECT)
+OBS_HOTKEY(OBS_KEY_VK_PRINT)
+OBS_HOTKEY(OBS_KEY_VK_EXECUTE)
+OBS_HOTKEY(OBS_KEY_VK_HELP)
+OBS_HOTKEY(OBS_KEY_0x30)
+OBS_HOTKEY(OBS_KEY_0x31)
+OBS_HOTKEY(OBS_KEY_0x32)
+OBS_HOTKEY(OBS_KEY_0x33)
+OBS_HOTKEY(OBS_KEY_0x34)
+OBS_HOTKEY(OBS_KEY_0x35)
+OBS_HOTKEY(OBS_KEY_0x36)
+OBS_HOTKEY(OBS_KEY_0x37)
+OBS_HOTKEY(OBS_KEY_0x38)
+OBS_HOTKEY(OBS_KEY_0x39)
+OBS_HOTKEY(OBS_KEY_0x3A)
+OBS_HOTKEY(OBS_KEY_0x3B)
+OBS_HOTKEY(OBS_KEY_0x3C)
+OBS_HOTKEY(OBS_KEY_0x3D)
+OBS_HOTKEY(OBS_KEY_0x3E)
+OBS_HOTKEY(OBS_KEY_0x3F)
+OBS_HOTKEY(OBS_KEY_0x40)
+OBS_HOTKEY(OBS_KEY_0x41)
+OBS_HOTKEY(OBS_KEY_0x42)
+OBS_HOTKEY(OBS_KEY_0x43)
+OBS_HOTKEY(OBS_KEY_0x44)
+OBS_HOTKEY(OBS_KEY_0x45)
+OBS_HOTKEY(OBS_KEY_0x46)
+OBS_HOTKEY(OBS_KEY_0x47)
+OBS_HOTKEY(OBS_KEY_0x48)
+OBS_HOTKEY(OBS_KEY_0x49)
+OBS_HOTKEY(OBS_KEY_0x4A)
+OBS_HOTKEY(OBS_KEY_0x4B)
+OBS_HOTKEY(OBS_KEY_0x4C)
+OBS_HOTKEY(OBS_KEY_0x4D)
+OBS_HOTKEY(OBS_KEY_0x4E)
+OBS_HOTKEY(OBS_KEY_0x4F)
+OBS_HOTKEY(OBS_KEY_0x50)
+OBS_HOTKEY(OBS_KEY_0x51)
+OBS_HOTKEY(OBS_KEY_0x52)
+OBS_HOTKEY(OBS_KEY_0x53)
+OBS_HOTKEY(OBS_KEY_0x54)
+OBS_HOTKEY(OBS_KEY_0x55)
+OBS_HOTKEY(OBS_KEY_0x56)
+OBS_HOTKEY(OBS_KEY_0x57)
+OBS_HOTKEY(OBS_KEY_0x58)
+OBS_HOTKEY(OBS_KEY_0x59)
+OBS_HOTKEY(OBS_KEY_0x5A)
+OBS_HOTKEY(OBS_KEY_VK_LWIN)
+OBS_HOTKEY(OBS_KEY_VK_RWIN)
+OBS_HOTKEY(OBS_KEY_VK_APPS)
+OBS_HOTKEY(OBS_KEY_0x5E)
+OBS_HOTKEY(OBS_KEY_VK_SLEEP)
+OBS_HOTKEY(OBS_KEY_VK_SEPARATOR)
+OBS_HOTKEY(OBS_KEY_0x88)
+OBS_HOTKEY(OBS_KEY_0x89)
+OBS_HOTKEY(OBS_KEY_0x8A)
+OBS_HOTKEY(OBS_KEY_0x8B)
+OBS_HOTKEY(OBS_KEY_0x8C)
+OBS_HOTKEY(OBS_KEY_0x8D)
+OBS_HOTKEY(OBS_KEY_0x8E)
+OBS_HOTKEY(OBS_KEY_0x8F)
+OBS_HOTKEY(OBS_KEY_VK_OEM_FJ_JISHO)
+OBS_HOTKEY(OBS_KEY_VK_OEM_FJ_LOYA)
+OBS_HOTKEY(OBS_KEY_VK_OEM_FJ_ROYA)
+OBS_HOTKEY(OBS_KEY_0x97)
+OBS_HOTKEY(OBS_KEY_0x98)
+OBS_HOTKEY(OBS_KEY_0x99)
+OBS_HOTKEY(OBS_KEY_0x9A)
+OBS_HOTKEY(OBS_KEY_0x9B)
+OBS_HOTKEY(OBS_KEY_0x9C)
+OBS_HOTKEY(OBS_KEY_0x9D)
+OBS_HOTKEY(OBS_KEY_0x9E)
+OBS_HOTKEY(OBS_KEY_0x9F)
+OBS_HOTKEY(OBS_KEY_VK_LSHIFT)
+OBS_HOTKEY(OBS_KEY_VK_RSHIFT)
+OBS_HOTKEY(OBS_KEY_VK_LCONTROL)
+OBS_HOTKEY(OBS_KEY_VK_RCONTROL)
+OBS_HOTKEY(OBS_KEY_VK_LMENU)
+OBS_HOTKEY(OBS_KEY_VK_RMENU)
+OBS_HOTKEY(OBS_KEY_VK_BROWSER_BACK)
+OBS_HOTKEY(OBS_KEY_VK_BROWSER_FORWARD)
+OBS_HOTKEY(OBS_KEY_VK_BROWSER_REFRESH)
+OBS_HOTKEY(OBS_KEY_VK_BROWSER_STOP)
+OBS_HOTKEY(OBS_KEY_VK_BROWSER_SEARCH)
+OBS_HOTKEY(OBS_KEY_VK_BROWSER_FAVORITES)
+OBS_HOTKEY(OBS_KEY_VK_BROWSER_HOME)
+OBS_HOTKEY(OBS_KEY_VK_VOLUME_MUTE)
+OBS_HOTKEY(OBS_KEY_VK_VOLUME_DOWN)
+OBS_HOTKEY(OBS_KEY_VK_VOLUME_UP)
+OBS_HOTKEY(OBS_KEY_VK_MEDIA_NEXT_TRACK)
+OBS_HOTKEY(OBS_KEY_VK_MEDIA_PREV_TRACK)
+OBS_HOTKEY(OBS_KEY_VK_MEDIA_STOP)
+OBS_HOTKEY(OBS_KEY_VK_MEDIA_PLAY_PAUSE)
+OBS_HOTKEY(OBS_KEY_VK_LAUNCH_MAIL)
+OBS_HOTKEY(OBS_KEY_VK_LAUNCH_MEDIA_SELECT)
+OBS_HOTKEY(OBS_KEY_VK_LAUNCH_APP1)
+OBS_HOTKEY(OBS_KEY_VK_LAUNCH_APP2)
+OBS_HOTKEY(OBS_KEY_0xB8)
+OBS_HOTKEY(OBS_KEY_0xB9)
+OBS_HOTKEY(OBS_KEY_0xC1)
+OBS_HOTKEY(OBS_KEY_0xC2)
+OBS_HOTKEY(OBS_KEY_0xC3)
+OBS_HOTKEY(OBS_KEY_0xC4)
+OBS_HOTKEY(OBS_KEY_0xC5)
+OBS_HOTKEY(OBS_KEY_0xC6)
+OBS_HOTKEY(OBS_KEY_0xC7)
+OBS_HOTKEY(OBS_KEY_0xC8)
+OBS_HOTKEY(OBS_KEY_0xC9)
+OBS_HOTKEY(OBS_KEY_0xCA)
+OBS_HOTKEY(OBS_KEY_0xCB)
+OBS_HOTKEY(OBS_KEY_0xCC)
+OBS_HOTKEY(OBS_KEY_0xCD)
+OBS_HOTKEY(OBS_KEY_0xCE)
+OBS_HOTKEY(OBS_KEY_0xCF)
+OBS_HOTKEY(OBS_KEY_0xD0)
+OBS_HOTKEY(OBS_KEY_0xD1)
+OBS_HOTKEY(OBS_KEY_0xD2)
+OBS_HOTKEY(OBS_KEY_0xD3)
+OBS_HOTKEY(OBS_KEY_0xD4)
+OBS_HOTKEY(OBS_KEY_0xD5)
+OBS_HOTKEY(OBS_KEY_0xD6)
+OBS_HOTKEY(OBS_KEY_0xD7)
+OBS_HOTKEY(OBS_KEY_0xD8)
+OBS_HOTKEY(OBS_KEY_0xD9)
+OBS_HOTKEY(OBS_KEY_0xDA)
+OBS_HOTKEY(OBS_KEY_VK_OEM_8)
+OBS_HOTKEY(OBS_KEY_0xE0)
+OBS_HOTKEY(OBS_KEY_VK_OEM_AX)
+OBS_HOTKEY(OBS_KEY_VK_ICO_HELP)
+OBS_HOTKEY(OBS_KEY_VK_ICO_00)
+OBS_HOTKEY(OBS_KEY_VK_PROCESSKEY)
+OBS_HOTKEY(OBS_KEY_VK_ICO_CLEAR)
+OBS_HOTKEY(OBS_KEY_VK_PACKET)
+OBS_HOTKEY(OBS_KEY_0xE8)
+OBS_HOTKEY(OBS_KEY_VK_OEM_RESET)
+OBS_HOTKEY(OBS_KEY_VK_OEM_JUMP)
+OBS_HOTKEY(OBS_KEY_VK_OEM_PA1)
+OBS_HOTKEY(OBS_KEY_VK_OEM_PA2)
+OBS_HOTKEY(OBS_KEY_VK_OEM_PA3)
+OBS_HOTKEY(OBS_KEY_VK_OEM_WSCTRL)
+OBS_HOTKEY(OBS_KEY_VK_OEM_CUSEL)
+OBS_HOTKEY(OBS_KEY_VK_OEM_ATTN)
+OBS_HOTKEY(OBS_KEY_VK_OEM_FINISH)
+OBS_HOTKEY(OBS_KEY_VK_OEM_COPY)
+OBS_HOTKEY(OBS_KEY_VK_OEM_AUTO)
+OBS_HOTKEY(OBS_KEY_VK_OEM_ENLW)
+OBS_HOTKEY(OBS_KEY_VK_ATTN)
+OBS_HOTKEY(OBS_KEY_VK_CRSEL)
+OBS_HOTKEY(OBS_KEY_VK_EXSEL)
+OBS_HOTKEY(OBS_KEY_VK_EREOF)
+OBS_HOTKEY(OBS_KEY_VK_PLAY)
+OBS_HOTKEY(OBS_KEY_VK_ZOOM)
+OBS_HOTKEY(OBS_KEY_VK_NONAME)
+OBS_HOTKEY(OBS_KEY_VK_PA1)
+OBS_HOTKEY(OBS_KEY_VK_OEM_CLEAR)
+#endif

+ 335 - 0
libobs/obs-windows.c

@@ -654,6 +654,341 @@ static int get_virtual_key(obs_key_t key)
 	case OBS_KEY_MOUSE5:
 		return VK_XBUTTON2;
 
+	case OBS_KEY_VK_CANCEL:
+		return VK_CANCEL;
+	case OBS_KEY_0x07:
+		return 0x07;
+	case OBS_KEY_0x0A:
+		return 0x0A;
+	case OBS_KEY_0x0B:
+		return 0x0B;
+	case OBS_KEY_0x0E:
+		return 0x0E;
+	case OBS_KEY_0x0F:
+		return 0x0F;
+	case OBS_KEY_0x16:
+		return 0x16;
+	case OBS_KEY_VK_JUNJA:
+		return VK_JUNJA;
+	case OBS_KEY_VK_FINAL:
+		return VK_FINAL;
+	case OBS_KEY_0x1A:
+		return 0x1A;
+	case OBS_KEY_VK_ACCEPT:
+		return VK_ACCEPT;
+	case OBS_KEY_VK_MODECHANGE:
+		return VK_MODECHANGE;
+	case OBS_KEY_VK_SELECT:
+		return VK_SELECT;
+	case OBS_KEY_VK_PRINT:
+		return VK_PRINT;
+	case OBS_KEY_VK_EXECUTE:
+		return VK_EXECUTE;
+	case OBS_KEY_VK_HELP:
+		return VK_HELP;
+	case OBS_KEY_0x30:
+		return 0x30;
+	case OBS_KEY_0x31:
+		return 0x31;
+	case OBS_KEY_0x32:
+		return 0x32;
+	case OBS_KEY_0x33:
+		return 0x33;
+	case OBS_KEY_0x34:
+		return 0x34;
+	case OBS_KEY_0x35:
+		return 0x35;
+	case OBS_KEY_0x36:
+		return 0x36;
+	case OBS_KEY_0x37:
+		return 0x37;
+	case OBS_KEY_0x38:
+		return 0x38;
+	case OBS_KEY_0x39:
+		return 0x39;
+	case OBS_KEY_0x3A:
+		return 0x3A;
+	case OBS_KEY_0x3B:
+		return 0x3B;
+	case OBS_KEY_0x3C:
+		return 0x3C;
+	case OBS_KEY_0x3D:
+		return 0x3D;
+	case OBS_KEY_0x3E:
+		return 0x3E;
+	case OBS_KEY_0x3F:
+		return 0x3F;
+	case OBS_KEY_0x40:
+		return 0x40;
+	case OBS_KEY_0x41:
+		return 0x41;
+	case OBS_KEY_0x42:
+		return 0x42;
+	case OBS_KEY_0x43:
+		return 0x43;
+	case OBS_KEY_0x44:
+		return 0x44;
+	case OBS_KEY_0x45:
+		return 0x45;
+	case OBS_KEY_0x46:
+		return 0x46;
+	case OBS_KEY_0x47:
+		return 0x47;
+	case OBS_KEY_0x48:
+		return 0x48;
+	case OBS_KEY_0x49:
+		return 0x49;
+	case OBS_KEY_0x4A:
+		return 0x4A;
+	case OBS_KEY_0x4B:
+		return 0x4B;
+	case OBS_KEY_0x4C:
+		return 0x4C;
+	case OBS_KEY_0x4D:
+		return 0x4D;
+	case OBS_KEY_0x4E:
+		return 0x4E;
+	case OBS_KEY_0x4F:
+		return 0x4F;
+	case OBS_KEY_0x50:
+		return 0x50;
+	case OBS_KEY_0x51:
+		return 0x51;
+	case OBS_KEY_0x52:
+		return 0x52;
+	case OBS_KEY_0x53:
+		return 0x53;
+	case OBS_KEY_0x54:
+		return 0x54;
+	case OBS_KEY_0x55:
+		return 0x55;
+	case OBS_KEY_0x56:
+		return 0x56;
+	case OBS_KEY_0x57:
+		return 0x57;
+	case OBS_KEY_0x58:
+		return 0x58;
+	case OBS_KEY_0x59:
+		return 0x59;
+	case OBS_KEY_0x5A:
+		return 0x5A;
+	case OBS_KEY_VK_LWIN:
+		return VK_LWIN;
+	case OBS_KEY_VK_RWIN:
+		return VK_RWIN;
+	case OBS_KEY_VK_APPS:
+		return VK_APPS;
+	case OBS_KEY_0x5E:
+		return 0x5E;
+	case OBS_KEY_VK_SLEEP:
+		return VK_SLEEP;
+	case OBS_KEY_VK_SEPARATOR:
+		return VK_SEPARATOR;
+	case OBS_KEY_0x88:
+		return 0x88;
+	case OBS_KEY_0x89:
+		return 0x89;
+	case OBS_KEY_0x8A:
+		return 0x8A;
+	case OBS_KEY_0x8B:
+		return 0x8B;
+	case OBS_KEY_0x8C:
+		return 0x8C;
+	case OBS_KEY_0x8D:
+		return 0x8D;
+	case OBS_KEY_0x8E:
+		return 0x8E;
+	case OBS_KEY_0x8F:
+		return 0x8F;
+	case OBS_KEY_VK_OEM_FJ_JISHO:
+		return VK_OEM_FJ_JISHO;
+	case OBS_KEY_VK_OEM_FJ_LOYA:
+		return VK_OEM_FJ_LOYA;
+	case OBS_KEY_VK_OEM_FJ_ROYA:
+		return VK_OEM_FJ_ROYA;
+	case OBS_KEY_0x97:
+		return 0x97;
+	case OBS_KEY_0x98:
+		return 0x98;
+	case OBS_KEY_0x99:
+		return 0x99;
+	case OBS_KEY_0x9A:
+		return 0x9A;
+	case OBS_KEY_0x9B:
+		return 0x9B;
+	case OBS_KEY_0x9C:
+		return 0x9C;
+	case OBS_KEY_0x9D:
+		return 0x9D;
+	case OBS_KEY_0x9E:
+		return 0x9E;
+	case OBS_KEY_0x9F:
+		return 0x9F;
+	case OBS_KEY_VK_LSHIFT:
+		return VK_LSHIFT;
+	case OBS_KEY_VK_RSHIFT:
+		return VK_RSHIFT;
+	case OBS_KEY_VK_LCONTROL:
+		return VK_LCONTROL;
+	case OBS_KEY_VK_RCONTROL:
+		return VK_RCONTROL;
+	case OBS_KEY_VK_LMENU:
+		return VK_LMENU;
+	case OBS_KEY_VK_RMENU:
+		return VK_RMENU;
+	case OBS_KEY_VK_BROWSER_BACK:
+		return VK_BROWSER_BACK;
+	case OBS_KEY_VK_BROWSER_FORWARD:
+		return VK_BROWSER_FORWARD;
+	case OBS_KEY_VK_BROWSER_REFRESH:
+		return VK_BROWSER_REFRESH;
+	case OBS_KEY_VK_BROWSER_STOP:
+		return VK_BROWSER_STOP;
+	case OBS_KEY_VK_BROWSER_SEARCH:
+		return VK_BROWSER_SEARCH;
+	case OBS_KEY_VK_BROWSER_FAVORITES:
+		return VK_BROWSER_FAVORITES;
+	case OBS_KEY_VK_BROWSER_HOME:
+		return VK_BROWSER_HOME;
+	case OBS_KEY_VK_VOLUME_MUTE:
+		return VK_VOLUME_MUTE;
+	case OBS_KEY_VK_VOLUME_DOWN:
+		return VK_VOLUME_DOWN;
+	case OBS_KEY_VK_VOLUME_UP:
+		return VK_VOLUME_UP;
+	case OBS_KEY_VK_MEDIA_NEXT_TRACK:
+		return VK_MEDIA_NEXT_TRACK;
+	case OBS_KEY_VK_MEDIA_PREV_TRACK:
+		return VK_MEDIA_PREV_TRACK;
+	case OBS_KEY_VK_MEDIA_STOP:
+		return VK_MEDIA_STOP;
+	case OBS_KEY_VK_MEDIA_PLAY_PAUSE:
+		return VK_MEDIA_PLAY_PAUSE;
+	case OBS_KEY_VK_LAUNCH_MAIL:
+		return VK_LAUNCH_MAIL;
+	case OBS_KEY_VK_LAUNCH_MEDIA_SELECT:
+		return VK_LAUNCH_MEDIA_SELECT;
+	case OBS_KEY_VK_LAUNCH_APP1:
+		return VK_LAUNCH_APP1;
+	case OBS_KEY_VK_LAUNCH_APP2:
+		return VK_LAUNCH_APP2;
+	case OBS_KEY_0xB8:
+		return 0xB8;
+	case OBS_KEY_0xB9:
+		return 0xB9;
+	case OBS_KEY_0xC1:
+		return 0xC1;
+	case OBS_KEY_0xC2:
+		return 0xC2;
+	case OBS_KEY_0xC3:
+		return 0xC3;
+	case OBS_KEY_0xC4:
+		return 0xC4;
+	case OBS_KEY_0xC5:
+		return 0xC5;
+	case OBS_KEY_0xC6:
+		return 0xC6;
+	case OBS_KEY_0xC7:
+		return 0xC7;
+	case OBS_KEY_0xC8:
+		return 0xC8;
+	case OBS_KEY_0xC9:
+		return 0xC9;
+	case OBS_KEY_0xCA:
+		return 0xCA;
+	case OBS_KEY_0xCB:
+		return 0xCB;
+	case OBS_KEY_0xCC:
+		return 0xCC;
+	case OBS_KEY_0xCD:
+		return 0xCD;
+	case OBS_KEY_0xCE:
+		return 0xCE;
+	case OBS_KEY_0xCF:
+		return 0xCF;
+	case OBS_KEY_0xD0:
+		return 0xD0;
+	case OBS_KEY_0xD1:
+		return 0xD1;
+	case OBS_KEY_0xD2:
+		return 0xD2;
+	case OBS_KEY_0xD3:
+		return 0xD3;
+	case OBS_KEY_0xD4:
+		return 0xD4;
+	case OBS_KEY_0xD5:
+		return 0xD5;
+	case OBS_KEY_0xD6:
+		return 0xD6;
+	case OBS_KEY_0xD7:
+		return 0xD7;
+	case OBS_KEY_0xD8:
+		return 0xD8;
+	case OBS_KEY_0xD9:
+		return 0xD9;
+	case OBS_KEY_0xDA:
+		return 0xDA;
+	case OBS_KEY_VK_OEM_8:
+		return VK_OEM_8;
+	case OBS_KEY_0xE0:
+		return 0xE0;
+	case OBS_KEY_VK_OEM_AX:
+		return VK_OEM_AX;
+	case OBS_KEY_VK_ICO_HELP:
+		return VK_ICO_HELP;
+	case OBS_KEY_VK_ICO_00:
+		return VK_ICO_00;
+	case OBS_KEY_VK_PROCESSKEY:
+		return VK_PROCESSKEY;
+	case OBS_KEY_VK_ICO_CLEAR:
+		return VK_ICO_CLEAR;
+	case OBS_KEY_VK_PACKET:
+		return VK_PACKET;
+	case OBS_KEY_0xE8:
+		return 0xE8;
+	case OBS_KEY_VK_OEM_RESET:
+		return VK_OEM_RESET;
+	case OBS_KEY_VK_OEM_JUMP:
+		return VK_OEM_JUMP;
+	case OBS_KEY_VK_OEM_PA1:
+		return VK_OEM_PA1;
+	case OBS_KEY_VK_OEM_PA2:
+		return VK_OEM_PA2;
+	case OBS_KEY_VK_OEM_PA3:
+		return VK_OEM_PA3;
+	case OBS_KEY_VK_OEM_WSCTRL:
+		return VK_OEM_WSCTRL;
+	case OBS_KEY_VK_OEM_CUSEL:
+		return VK_OEM_CUSEL;
+	case OBS_KEY_VK_OEM_ATTN:
+		return VK_OEM_ATTN;
+	case OBS_KEY_VK_OEM_FINISH:
+		return VK_OEM_FINISH;
+	case OBS_KEY_VK_OEM_COPY:
+		return VK_OEM_COPY;
+	case OBS_KEY_VK_OEM_AUTO:
+		return VK_OEM_AUTO;
+	case OBS_KEY_VK_OEM_ENLW:
+		return VK_OEM_ENLW;
+	case OBS_KEY_VK_ATTN:
+		return VK_ATTN;
+	case OBS_KEY_VK_CRSEL:
+		return VK_CRSEL;
+	case OBS_KEY_VK_EXSEL:
+		return VK_EXSEL;
+	case OBS_KEY_VK_EREOF:
+		return VK_EREOF;
+	case OBS_KEY_VK_PLAY:
+		return VK_PLAY;
+	case OBS_KEY_VK_ZOOM:
+		return VK_ZOOM;
+	case OBS_KEY_VK_NONAME:
+		return VK_NONAME;
+	case OBS_KEY_VK_PA1:
+		return VK_PA1;
+	case OBS_KEY_VK_OEM_CLEAR:
+		return VK_OEM_CLEAR;
+
 	/* TODO: Implement keys for non-US keyboards */
 	default:;
 	}