OSDN Git Service

2adcf79de0b0a47113b0527026c02ee1d901fc3f
[mutilities/MUtilities.git] / include / MUtils / Registry.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // MuldeR's Utilities for Qt
3 // Copyright (C) 2004-2016 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 reg_root_t &rootKey, const QString &keyName, const reg_access_t &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_values (QStringList &list) const;
74                         bool enum_subkeys(QStringList &list) const;
75
76                 private:
77                         Internal::RegistryKeyPrivate *const p;
78                 };
79
80                 //Regsitry functions
81                 MUTILS_API bool reg_value_write (const reg_root_t &rootKey, const QString &keyName, const QString &valueName, const quint32 &value);
82                 MUTILS_API bool reg_value_write (const reg_root_t &rootKey, const QString &keyName, const QString &valueName, const QString &value);
83                 MUTILS_API bool reg_value_read  (const reg_root_t &rootKey, const QString &keyName, const QString &valueName, quint32       &value);
84                 MUTILS_API bool reg_value_read  (const reg_root_t &rootKey, const QString &keyName, const QString &valueName, QString       &value);
85                 MUTILS_API bool reg_key_exists  (const reg_root_t &rootKey, const QString &keyName);
86                 MUTILS_API bool reg_key_delete  (const reg_root_t &rootKey, const QString &keyName, const bool &recusrive = true, const bool &ascend = false);
87                 MUTILS_API bool reg_enum_values (const reg_root_t &rootKey, const QString &keyName, QStringList &list);
88                 MUTILS_API bool reg_enum_subkeys(const reg_root_t &rootKey, const QString &keyName, QStringList &list);
89         }
90 }
91
92 ///////////////////////////////////////////////////////////////////////////////