Sync with trunk head (r49139)
[reactos.git] / drivers / bluetooth / fbtusb / include / fbtreg.h
1 #ifndef REG_H
2 #define REG_H
3
4 class CReg
5 {
6 public:
7 // Constructor
8 CReg(LPCSTR lpszSubKey, HKEY hRootKey=HKEY_CURRENT_USER, REGSAM regSam=KEY_ALL_ACCESS, BOOL bCreate=TRUE);
9
10 // Destructor
11 ~CReg();
12
13 // Get the specified registry value
14 BOOL GetValue(LPCSTR lpszValueName, LPVOID lpvData, DWORD *dwBuffSize=NULL, DWORD *dwDataType=NULL);
15 BOOL GetValue(LPCSTR lpszValueName, LPSTR lpszValue, DWORD dwBalueSize);
16 // BOOL GetValue(LPCSTR lpszValueName, CString &szData, DWORD *dwDataType=NULL);
17 BOOL GetValue(LPCSTR lpszValueName, DWORD &dwData);
18 BOOL GetValue(LPCSTR lpszValueName, BOOL &bData);
19
20 // Set the specified registry value
21 BOOL SetValue(LPCSTR lpszValueName, const LPVOID lpvData, DWORD dwDataSize, DWORD dwDataType=REG_SZ);
22 BOOL SetValue(LPCSTR lpszValueName, LPCSTR lpszValue, DWORD dwDataSize=0, DWORD dwDataType=REG_SZ);
23 BOOL SetValue(LPCSTR lpszValueName, LPSTR lpszValue, DWORD dwValueSize);
24 // BOOL SetValue(LPCSTR lpszValueName, CString &szData, DWORD dwDataSize=0, DWORD dwDataType=REG_SZ);
25 BOOL SetValue(LPCSTR lpszValueName, DWORD dwData);
26 BOOL SetValue(LPCSTR lpszValueName, BOOL bData);
27
28 // Delete a value in the key
29 BOOL DeleteValue(LPCSTR lpszValueName);
30
31 // Delete all the values in the key
32 BOOL DeleteValues();
33
34 // Delete a sub key
35 BOOL DeleteKey(LPCSTR lpszKeyName);
36
37 // Retrieve the names of the values in the key
38 // BOOL EnumerateValues(CStringArray &nszValueNames);
39
40 BOOL IsValid() {return m_hKey!=NULL;}
41
42 protected:
43 // Create a new registry key
44 LONG Create(LPCSTR lpszSubKey, HKEY hRootKey, HKEY *hKey=NULL, REGSAM regSam=NULL);
45
46 // Open the specified registry key (creates if non-existant)
47 LONG Open(LPCSTR lpszSubKey, HKEY hRootKey, HKEY *hKey=NULL, REGSAM regSam=NULL, BOOL bCreate=TRUE);
48
49 BOOL DeleteKey(HKEY hRootKey, HKEY hKey, LPCSTR szKey, LPCSTR szSubKey);
50
51 // CString m_szKey; // Name of key this object wraps
52 char m_szKey[1024]; // Name of key this object wraps
53 HKEY m_hRootKey; // Root key of the wrapped key
54 HKEY m_hKey; // Key generated by Open/Create
55
56 };
57
58 #endif