OSDN Git Service

Rewrite code to handle titles and names of applications in CProfile
[xkeymacs/xkeymacs.git] / xkeymacs / profile.h
1 // Profile.h: interface of the CProfile class\r
2 //\r
3 //////////////////////////////////////////////////////////////////////\r
4 \r
5 #if !defined(AFX_PROFILE_H__9415254D_4656_484B_A730_E02580D8A221__INCLUDED_)\r
6 #define AFX_PROFILE_H__9415254D_4656_484B_A730_E02580D8A221__INCLUDED_\r
7 \r
8 #if _MSC_VER > 1000\r
9 #pragma once\r
10 #endif // _MSC_VER > 1000\r
11 \r
12 #include <winperf.h>   // for Windows NT\r
13 #include "resource.h"\r
14 #include "properties.h"\r
15 \r
16 struct TASK_LIST {\r
17     DWORD dwProcessId;\r
18     CHAR ProcessName[MAX_PATH];\r
19 };\r
20 typedef TASK_LIST *PTASK_LIST;\r
21 \r
22 enum { MAX_TASKS = 256 };\r
23 \r
24 enum HKEY_TYPE { CURRENT_USER, LOCAL_MACHINE, MAX_HKEY_TYPE };\r
25 \r
26 class CKey;\r
27 \r
28 class CProfile\r
29 {\r
30 public:\r
31         static int GetKeyboardSpeed(void);\r
32         static CString GetWindowText(int nAppID);\r
33         static void SetWindowText(int nAppID, CString szWindowText);\r
34         static void SetEnableCUA(int nAppID, BOOL bEnableCUA);\r
35         static BOOL GetEnableCUA(int nAppID);\r
36         static void ImportProperties();\r
37         static void ExportProperties();\r
38         static void RestartComputer();\r
39         static BOOL IsVistaOrLater();\r
40         static void SaveScanCodeMap(HKEY_TYPE hkeyType);\r
41         static void LoadScanCodeMap(HKEY_TYPE hkeyType);\r
42         static BOOL Is106Keyboard();\r
43         static BOOL GetUseDialogSetting(int nAppID);\r
44         static void SetUseDialogSetting(int nAppID, BOOL bUseDialogSetting);\r
45         static int GetAppID(const LPCSTR szAppName);\r
46         static void CopyData(CString szDestinationApplication, CString szSourceApplication);\r
47         static void ReadKeyBind(int& pnCommandType, int& pnKey, LPCTSTR szKeyBind);\r
48         static LPCTSTR Key2String(int nKey);\r
49         static LPCTSTR CommandType2String(int nType);\r
50         static int GetKillRingMax(int nAppID);\r
51         static void SetKillRingMax(int nAppID, int nKillRingMax);\r
52         static int GetCommandID(int nAppID, int nType, int nKey);\r
53         static void SetCommandID(int nAppID, int nType, int nKey, int nComID);\r
54         static void SetAppTitle(const int nAppID, const CString& appTitle);\r
55         static int DefaultAppID();\r
56         static int AssignAppID(const LPCSTR szAppName);\r
57         static int GetSettingStyle(const int nAppID);\r
58         static void SetSettingStyle(const int nAppID, const int nSettingStyle);\r
59         static void InitAppList(CProperties& cProperties);\r
60         static int GetSavedSettingCount();\r
61         static void ClearData(CString szCurrentApplication);\r
62         static void InitDllData();\r
63         static void LoadData();\r
64         static void SaveData();\r
65 \r
66 private:\r
67         static void SaveKeyBind(const LPCSTR szAppName, const LPCSTR szComName, int nType, int nKey);\r
68         static BOOL DiableTokenPrivileges();\r
69         static BOOL AdjustTokenPrivileges(LPCTSTR lpName);\r
70         static void SaveCommand(const LPCSTR szAppName, int nComID);\r
71         static void SaveKeyBind(const LPCSTR szAppName, int nComID, int nType, int nKey);\r
72         static void AddKeyBind2C_(const LPCSTR szApplicationName, BYTE bVk);\r
73         static void LevelUp();\r
74         static bool GetAppTitle(CString& appTitle, const CString& windowName, int nth = 1000);\r
75         static BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam);\r
76         static void SetDllData();\r
77         static CONFIG m_Config;\r
78         static TCHAR m_szAppTitle[MAX_APP][WINDOW_TEXT_LENGTH];\r
79         static void DeleteAllRegistryData();\r
80         static TASK_LIST m_TaskList[MAX_TASKS];\r
81         static DWORD m_dwTasks;\r
82         static void GetTaskList();\r
83         static BOOL IsCommandType(int nType, LPCTSTR szKeyBind);\r
84         static int KeyBind2Key(const LPCTSTR szKey);\r
85         static int KeyBind2CommandType(const LPCTSTR szKeyBind);\r
86         static CString WriteKeyBind(int nType, int nKey);\r
87         static void LoadRegistry();\r
88         static void SaveRegistry();\r
89         static void AddIMEInfo(CProperties& cProperties);\r
90 };\r
91 \r
92 #endif // !defined(AFX_PROFILE_H__9415254D_4656_484B_A730_E02580D8A221__INCLUDED_)\r