ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

kbd.h
Go to the documentation of this file.
00001 #define __KBD_H
00002 
00003 #ifdef __cplusplus
00004 extern "C" {
00005 #endif
00006 
00007 /* Virtual key flags */
00008 #define KBDEXT     0x100  /* Extended key code */
00009 #define KBDMULTIVK 0x200  /* Multi-key */
00010 #define KBDSPECIAL 0x400  /* Special key */
00011 #define KBDNUMPAD  0x800  /* Number-pad */
00012 
00013 /* Modifier bits */
00014 #define KBDSHIFT   0x001  /* Shift modifier */
00015 #define KBDCTRL    0x002  /* Ctrl modifier */
00016 #define KBDALT     0x004  /* Alt modifier */
00017 
00018 /* Invalid shift */
00019 #define SHFT_INVALID 0x0F
00020 
00021   typedef struct _VK_TO_BIT {
00022     BYTE Vk;
00023     BYTE ModBits;
00024   } VK_TO_BIT, *PVK_TO_BIT;
00025 
00026   typedef struct _MODIFIERS {
00027     PVK_TO_BIT pVkToBit;
00028     WORD wMaxModBits;
00029     BYTE ModNumber[];
00030   } MODIFIERS, *PMODIFIERS;
00031 
00032 #define TYPEDEF_VK_TO_WCHARS(i) \
00033   typedef struct _VK_TO_WCHARS ## i { \
00034     BYTE VirtualKey; \
00035     BYTE Attributes; \
00036     WCHAR wch[i]; \
00037   } VK_TO_WCHARS ## i, *PVK_TO_WCHARS ## i;
00038 
00039   TYPEDEF_VK_TO_WCHARS(1)
00040   TYPEDEF_VK_TO_WCHARS(2)
00041   TYPEDEF_VK_TO_WCHARS(3)
00042   TYPEDEF_VK_TO_WCHARS(4)
00043   TYPEDEF_VK_TO_WCHARS(5)
00044   TYPEDEF_VK_TO_WCHARS(6)
00045   TYPEDEF_VK_TO_WCHARS(7)
00046   TYPEDEF_VK_TO_WCHARS(8)
00047   TYPEDEF_VK_TO_WCHARS(9)
00048   TYPEDEF_VK_TO_WCHARS(10)
00049 
00050   typedef struct _VK_TO_WCHAR_TABLE {
00051     PVK_TO_WCHARS1 pVkToWchars;
00052     BYTE nModifications;
00053     BYTE cbSize;
00054   } VK_TO_WCHAR_TABLE, *PVK_TO_WCHAR_TABLE;
00055 
00056   typedef struct _DEADKEY {
00057     DWORD dwBoth;
00058     WCHAR wchComposed;
00059     USHORT uFlags;
00060   } DEADKEY, *PDEADKEY;
00061 
00062   typedef WCHAR *DEADKEY_LPWSTR;
00063 
00064 #define DKF_DEAD 1
00065 
00066   typedef struct _VSC_LPWSTR {
00067     BYTE vsc;
00068     LPWSTR pwsz;
00069   } VSC_LPWSTR, *PVSC_LPWSTR;
00070 
00071   typedef struct _VSC_VK {
00072     BYTE Vsc;
00073     USHORT Vk;
00074   } VSC_VK, *PVSC_VK;
00075 
00076 #define TYPEDEF_LIGATURE(i) \
00077 typedef struct _LIGATURE ## i { \
00078   BYTE VirtualKey; \
00079   WORD ModificationNumber; \
00080   WCHAR wch[i]; \
00081 } LIGATURE ## i, *PLIGATURE ## i;
00082 
00083   TYPEDEF_LIGATURE(1)
00084   TYPEDEF_LIGATURE(2)
00085   TYPEDEF_LIGATURE(3)
00086   TYPEDEF_LIGATURE(4)
00087   TYPEDEF_LIGATURE(5)
00088 
00089 #define KBD_VERSION 1
00090 #define GET_KBD_VERSION(p) (HIWORD((p)->fLocalFlags))
00091 #define KLLF_ALTGR     0x1
00092 #define KLLF_SHIFTLOCK 0x2
00093 #define KLLF_LRM_RLM   0x4
00094 
00095   typedef struct _KBDTABLES {
00096     PMODIFIERS pCharModifiers;
00097     PVK_TO_WCHAR_TABLE pVkToWcharTable;
00098     PDEADKEY pDeadKey;
00099     VSC_LPWSTR *pKeyNames;
00100     VSC_LPWSTR *pKeyNamesExt;
00101     LPWSTR *pKeyNamesDead;
00102     USHORT *pusVSCtoVK;
00103     BYTE bMaxVSCtoVK;
00104     PVSC_VK pVSCtoVK_E0;
00105     PVSC_VK pVSCtoVK_E1;
00106     DWORD fLocaleFlags;
00107     BYTE nLgMaxd;
00108     BYTE cbLgEntry;
00109     PLIGATURE1 pLigature;
00110   } KBDTABLES, *PKBDTABLES;
00111 
00112 /* Constants that help table decoding */
00113 #define WCH_NONE  0xf000
00114 #define WCH_DEAD  0xf001
00115 #define WCH_LGTR  0xf002
00116 
00117 /* VK_TO_WCHARS attributes */
00118 #define CAPLOK       0x01
00119 #define SGCAPS       0x02
00120 #define CAPLOKALTGR  0x04
00121 #define KANALOK      0x08
00122 #define GRPSELTAP    0x80
00123 
00124 #define VK_ABNT_C1  0xC1
00125 #define VK_ABNT_C2  0xC2
00126 
00127 /* Useful scancodes */
00128 #define SCANCODE_LSHIFT  0x2A
00129 #define SCANCODE_RSHIFT  0x36
00130 #define SCANCODE_CTRL    0x1D
00131 #define SCANCODE_ALT     0x38
00132 
00133 #ifdef __cplusplus
00134 };
00135 #endif//__KBD_H

Generated on Sun May 27 2012 04:30:55 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.