OSDN Git Service

b6c64e2327f302deaaf4754f2d26c874437e8ae9
[mutilities/MUtilities.git] / include / MUtils / Registry.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // MuldeR's Utilities for Qt
3 // Copyright (C) 2004-2015 LoRd_MuldeR <MuldeR2@GMX.de>
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18 //
19 // http://www.gnu.org/licenses/lgpl-2.1.txt
20 //////////////////////////////////////////////////////////////////////////////////
21
22 #pragma once
23
24 //MUtils
25 #include <MUtils/Global.h>
26
27 ///////////////////////////////////////////////////////////////////////////////
28
29 namespace MUtils
30 {
31         namespace Registry
32         {
33                 //Regsitry root
34                 typedef enum
35                 {
36                         root_classes = 0,
37                         root_user    = 1,
38                         root_machine = 2,
39                 }
40                 reg_root_t;
41
42                 //Regsitry access
43                 typedef enum
44                 {
45                         access_readonly  = 0,
46                         access_writeonly = 1,
47                         access_readwrite = 2,
48                         access_enumerate = 3
49                 }
50                 reg_access_t;
51
52                 //Forward declaration
53                 namespace Internal
54                 {
55                         class RegistryKeyPrivate;
56                 }
57
58                 //Registry key class
59                 class MUTILS_API RegistryKey
60                 {
61                 public:
62                         RegistryKey(const int &rootKey, const QString &keyName, const int &access);
63                         ~RegistryKey(void);
64
65                         inline bool isOpen(void);
66
67                         bool value_write(const QString &valueName, const quint32 &value);
68                         bool value_write(const QString &valueName, const QString &value);
69
70                         bool value_read(const QString &valueName, quint32 &value) const;
71                         bool value_read(const QString &valueName, QString &value) const;
72
73                         bool enum_subkeys(QStringList &list) const;
74
75                 private:
76                         Internal::RegistryKeyPrivate *const p;
77                 };
78
79                 //Regsitry functions
80                 MUTILS_API bool reg_value_write (const int &rootKey, const QString &keyName, const QString &valueName, const quint32 &value);
81                 MUTILS_API bool reg_value_write (const int &rootKey, const QString &keyName, const QString &valueName, const QString &value);
82                 MUTILS_API bool reg_value_read  (const int &rootKey, const QString &keyName, const QString &valueName, quint32       &value);
83                 MUTILS_API bool reg_value_read  (const int &rootKey, const QString &keyName, const QString &valueName, QString       &value);
84                 MUTILS_API bool reg_key_delete  (const int &rootKey, const QString &keyName);
85                 MUTILS_API bool reg_enum_subkeys(const int &rootKey, const QString &keyName, QStringList &subkeys);
86         }
87 }
88
89 ///////////////////////////////////////////////////////////////////////////////