1 #ifndef KEYBOARDLAYOUT_H_INCLUDED
\r
2 #define KEYBOARDLAYOUT_H_INCLUDED
\r
6 #endif // _MSC_VER > 1000
\r
14 BYTE nPrefix; // 0x00, 0xE0 or 0xE1 cf. Keyboard Scan Code Specification -- 16
\r
17 struct ScanCodeMapping
\r
23 struct KeyboardLayout
\r
27 int nCurrentControlID;
\r
33 class CKeyboardLayout: public CDialog
\r
36 static KeyboardLayout m_KeyboardLayouts[112];
\r
37 static ScanCode m_CurrentScanCodeMap[MAX_HKEY_TYPE][4][256];
\r
38 static ScanCode m_ScanCodeMap[MAX_HKEY_TYPE][4][256];
\r
39 CToolTipCtrl m_ToolTip;
\r
40 int GetControlID(const ScanCode scancode, const BOOL bBase);
\r
41 BYTE PrefixID2Code(int nPrefixID);
\r
42 int Prefix2ID(BYTE nPrefix);
\r
43 DWORD GetScanCodeLength(HKEY_TYPE hkeyType);
\r
44 BOOL ChangedKeyboardLayout(HKEY_TYPE hkeyType);
\r
46 HKEY_TYPE m_HkeyType;
\r
47 void InitKeyboardLayout();
\r
48 void CKeyboardLayout::DestroyKeyboardLayout();
\r
49 BOOL GetScanCodeMap(HKEY_TYPE hkeyType, ScanCode original, ScanCode *current);
\r
50 int GetBaseControlID(const ScanCode scancode);
\r
51 int GetCurrentControlID(const ScanCode scancode);
\r
52 int LostKeyWarning(HKEY_TYPE hkeyType);
\r
53 void SaveScanCodeMap(HKEY_TYPE hkeyType);
\r
54 void LoadScanCodeMap(HKEY_TYPE hkeyType);
\r
56 CToolTipCtrl *ToolTip();
\r
57 KeyboardLayout *GetKeyboardLayout(int nKey, BOOL bBase = FALSE);
\r
58 void SetScanCodeMap(HKEY_TYPE hkeyType, ScanCodeMapping mapping);
\r
59 int GetPointedKey(const CPoint point);
\r
60 virtual int GetToolTipID(int nToolTipID);
\r
61 CKeyboardLayout(const HKEY_TYPE hkey_type, UINT nIDTemplate, CWnd* pParentWnd = NULL);
\r
62 virtual ~CKeyboardLayout();
\r
65 #endif // KEYBOARDLAYOUT_H_INCLUDED
\r