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
45 virtual BOOL PreTranslateMessage(MSG *pMsg);
\r
47 HKEY_TYPE m_HkeyType;
\r
48 virtual BOOL OnInitDialog();
\r
49 virtual void OnOK();
\r
50 afx_msg void OnDestroy();
\r
51 void InitKeyboardLayout();
\r
52 void CKeyboardLayout::DestroyKeyboardLayout();
\r
53 BOOL GetScanCodeMap(HKEY_TYPE hkeyType, ScanCode original, ScanCode *current);
\r
54 int GetBaseControlID(const ScanCode scancode);
\r
55 int GetCurrentControlID(const ScanCode scancode);
\r
56 int LostKeyWarning(HKEY_TYPE hkeyType);
\r
57 void SaveScanCodeMap(HKEY_TYPE hkeyType);
\r
58 void LoadScanCodeMap(HKEY_TYPE hkeyType);
\r
59 DECLARE_MESSAGE_MAP()
\r
61 CToolTipCtrl *ToolTip();
\r
62 KeyboardLayout *GetKeyboardLayout(int nKey, BOOL bBase = FALSE);
\r
63 void SetScanCodeMap(HKEY_TYPE hkeyType, ScanCodeMapping mapping);
\r
64 int GetPointedKey(const CPoint point);
\r
65 virtual int GetToolTipID(int nToolTipID);
\r
66 CKeyboardLayout(const HKEY_TYPE hkey_type, UINT nIDTemplate, CWnd* pParentWnd = NULL);
\r
67 virtual ~CKeyboardLayout();
\r
70 #endif // KEYBOARDLAYOUT_H_INCLUDED
\r