16 #define ROSDATA static __declspec(allocate(".data"))
19 #pragma data_seg(".data")
20 #define ROSDATA static
22 #define ROSDATA static __attribute__((section(".data")))
27#define KNUMS (KBDNUMPAD | KBDSPECIAL)
28#define KMEXT (KBDEXT | KBDMULTIVK)
29#define DEADTRANS(ch, accent, comp, flags) { MAKELONG(ch, accent), comp, flags }
48 'B',
'N',
'M', VK_OEM_COMMA,
83 { 0x10, VK_MEDIA_PREV_TRACK |
KBDEXT },
84 { 0x19, VK_MEDIA_NEXT_TRACK |
KBDEXT },
86 { 0x20, VK_VOLUME_MUTE |
KBDEXT },
87 { 0x21, VK_LAUNCH_APP2 |
KBDEXT },
88 { 0x22, VK_MEDIA_PLAY_PAUSE |
KBDEXT },
89 { 0x24, VK_MEDIA_STOP |
KBDEXT },
90 { 0x2e, VK_VOLUME_DOWN |
KBDEXT },
91 { 0x30, VK_VOLUME_UP |
KBDEXT },
92 { 0x32, VK_BROWSER_HOME |
KBDEXT },
110 { 0x65, VK_BROWSER_SEARCH |
KBDEXT },
111 { 0x66, VK_BROWSER_FAVORITES |
KBDEXT },
112 { 0x67, VK_BROWSER_REFRESH |
KBDEXT },
113 { 0x68, VK_BROWSER_STOP |
KBDEXT },
114 { 0x69, VK_BROWSER_FORWARD |
KBDEXT },
115 { 0x6a, VK_BROWSER_BACK |
KBDEXT },
116 { 0x6b, VK_LAUNCH_APP1 |
KBDEXT },
117 { 0x6c, VK_LAUNCH_MAIL |
KBDEXT },
118 { 0x6d, VK_LAUNCH_MEDIA_SELECT |
KBDEXT },
155 {
'2' , 0, {
'2',
'\"',
'@' } },
156 {
'3' , 0, {
'3',
'#', 0xa3 } },
157 {
'4' , 0, {
'4', 0xa4 ,
'$' } },
158 {
'5' , 0, {
'5',
'%', 0x20ac } },
159 {
'7' , 0, {
'7',
'/',
'{' } },
160 {
'8' , 0, {
'8',
'(',
'[' } },
161 {
'9' , 0, {
'9',
')',
']' } },
162 {
'0' , 0, {
'0',
'=',
'}' } },
165 {
'E' ,
CAPLOK, {
'e',
'E', 0x20ac } },
168 {
'M' ,
CAPLOK, {
'm',
'M', 0xb5 } },
178 { VK_OEM_MINUS, 0, {
'-',
'_',
WCH_NONE, 0x1f } },
179 { VK_OEM_102 , 0, {
'<',
'>',
'\\', 0x1c } },
194 {
'1' , 0, {
'1',
'!' } },
195 { VK_OEM_PLUS , 0, {
'+',
'?' } },
196 {
'Q' ,
CAPLOK, {
'q',
'Q' } },
197 {
'W' ,
CAPLOK, {
'w',
'W' } },
198 {
'R' ,
CAPLOK, {
'r',
'R' } },
199 {
'T' ,
CAPLOK, {
't',
'T' } },
200 {
'Y' ,
CAPLOK, {
'y',
'Y' } },
201 {
'U' ,
CAPLOK, {
'u',
'U' } },
202 {
'I' ,
CAPLOK, {
'i',
'I' } },
203 {
'O' ,
CAPLOK, {
'o',
'O' } },
204 {
'P' ,
CAPLOK, {
'p',
'P' } },
206 {
'A' ,
CAPLOK, {
'a',
'A' } },
207 {
'S' ,
CAPLOK, {
's',
'S' } },
208 {
'D' ,
CAPLOK, {
'd',
'D' } },
209 {
'F' ,
CAPLOK, {
'f',
'F' } },
210 {
'G' ,
CAPLOK, {
'g',
'G' } },
211 {
'H' ,
CAPLOK, {
'h',
'H' } },
212 {
'J' ,
CAPLOK, {
'j',
'J' } },
213 {
'K' ,
CAPLOK, {
'k',
'K' } },
214 {
'L' ,
CAPLOK, {
'l',
'L' } },
216 {
'Z' ,
CAPLOK, {
'z',
'Z' } },
217 {
'X' ,
CAPLOK, {
'x',
'X' } },
218 {
'C' ,
CAPLOK, {
'c',
'C' } },
219 {
'V' ,
CAPLOK, {
'v',
'V' } },
220 {
'B' ,
CAPLOK, {
'b',
'B' } },
221 {
'N' ,
CAPLOK, {
'n',
'N' } },
222 { VK_OEM_COMMA , 0, {
',',
';' } },
223 { VK_OEM_PERIOD , 0, {
'.',
':' } },
225 {
VK_TAB , 0, {
'\t',
'\t' } },
226 {
VK_ADD , 0, {
'+',
'+' } },
247#define vk_master(n, x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) }
318 { 0x0e,
L"TILBAGE" },
323 { 0x36,
L"H" L"\x00d8" L"JRE SKIFT" },
326 { 0x39,
L"MELLEMRUM" },
327 { 0x3a,
L"CAPS LOCK" },
339 { 0x46,
L"SCROLL LOCK" },
359 { 0x1c,
L"NUM ENTER" },
360 { 0x1d,
L"H" L"\x00d8" L"JRE CTRL" },
362 { 0x37,
L"PRINTSCRN" },
364 { 0x45,
L"NUM LOCK" },
369 { 0x4b,
L"VENSTRE PIL" },
370 { 0x4d,
L"H" L"\x00d8" L"JRE PIL" },
372 { 0x50,
L"PIL NED" },
378 { 0x5b,
L"Venstre Windows" },
379 { 0x5c,
L"H" L"\x00f8" L"jre Windows" },
380 { 0x5d,
L"Program" },
385 L"\x00b4" L"ACCENT AIGU",
#define DEADTRANS(ch, accent, comp, flags)
ROSDATA DEADKEY deadkey_table[]
ROSDATA VSC_LPWSTR extended_key_names[]
ROSDATA USHORT scancode_to_vk[]
ROSDATA MODIFIERS modifier_bits
ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[]
ROSDATA VSC_LPWSTR key_names[]
ROSDATA VSC_VK extcode0_to_vk[]
ROSDATA VK_TO_WCHARS1 key_to_chars_1mod[]
ROSDATA DEADKEY_LPWSTR key_names_dead[]
ROSDATA VK_TO_WCHAR_TABLE vk_to_wchar_master_table[]
ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[]
ROSDATA VK_TO_WCHARS5 key_to_chars_5mod[]
ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[]
ROSDATA VK_TO_BIT modifier_keys[]
ROSDATA VSC_VK extcode1_to_vk[]
ROSDATA KBDTABLES keyboard_layout_table
PKBDTABLES WINAPI KbdLayerDescriptor()