00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00047 #ifndef WINSTL_INCL_WINSTL_REGISTRY_ERROR_HPP_EXCEPTIONS
00048 #define WINSTL_INCL_WINSTL_REGISTRY_ERROR_HPP_EXCEPTIONS
00049
00050 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00051 # define WINSTL_VER_WINSTL_REGISTRY_ERROR_HPP_EXCEPTIONS_MAJOR 2
00052 # define WINSTL_VER_WINSTL_REGISTRY_ERROR_HPP_EXCEPTIONS_MINOR 1
00053 # define WINSTL_VER_WINSTL_REGISTRY_ERROR_HPP_EXCEPTIONS_REVISION 1
00054 # define WINSTL_VER_WINSTL_REGISTRY_ERROR_HPP_EXCEPTIONS_EDIT 17
00055 #endif
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 #ifndef WINSTL_INCL_WINSTL_H_WINSTL
00070 # include <winstl/winstl.h>
00071 #endif
00072 #ifndef WINSTL_INCL_WINSTL_ERROR_HPP_WINDOWS_EXCEPTIONS
00073 # include <winstl/error/exceptions.hpp>
00074 #endif
00075 #ifndef STLSOFT_INCL_STLSOFT_UTIL_HPP_SIGN_TRAITS
00076 # include <stlsoft/util/sign_traits.hpp>
00077 #endif
00078
00079
00080
00081
00082
00083 #ifndef _WINSTL_NO_NAMESPACE
00084 # if defined(_STLSOFT_NO_NAMESPACE) || \
00085 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00086
00087 namespace winstl
00088 {
00089 # else
00090
00091
00092 namespace stlsoft
00093 {
00094
00095 namespace winstl_project
00096 {
00097
00098 # endif
00099 #endif
00100
00101
00102
00108 class registry_exception
00109 : public windows_exception
00110 {
00113 public:
00114 typedef windows_exception parent_class_type;
00115 typedef registry_exception class_type;
00116 typedef parent_class_type::error_code_type error_code_type;
00117 typedef stlsoft_ns_qual(sign_traits)<error_code_type>::alt_sign_type error_code_alt_type;
00118
00120
00123 public:
00125 registry_exception(char const* reason, error_code_type err)
00126 : windows_exception(reason, err)
00127 {}
00134 registry_exception(char const* reason, error_code_alt_type err)
00135 : windows_exception(reason, static_cast<error_code_type>(err))
00136 {}
00138 };
00139
00144 class key_not_duplicated_exception
00145 : public registry_exception
00146 {
00149 public:
00150 typedef registry_exception parent_class_type;
00151 typedef key_not_duplicated_exception class_type;
00153
00156 public:
00157 key_not_duplicated_exception(char const* reason, error_code_type err)
00158 : parent_class_type(reason, err)
00159 {}
00160 key_not_duplicated_exception(char const* reason, error_code_alt_type err)
00161 : parent_class_type(reason, err)
00162 {}
00164
00167 private:
00168 class_type& operator =(class_type const&);
00170 };
00171
00176 class wrong_value_type_exception
00177 : public registry_exception
00178 {
00181 public:
00182 typedef registry_exception parent_class_type;
00183 typedef wrong_value_type_exception class_type;
00185
00188 public:
00189 wrong_value_type_exception(char const* reason, error_code_type err, ws_dword_t type)
00190 : parent_class_type(reason, err)
00191 , m_valueType(type)
00192 {}
00193 wrong_value_type_exception(char const* reason, error_code_alt_type err, ws_dword_t type)
00194 : parent_class_type(reason, err)
00195 , m_valueType(type)
00196 {}
00198
00201 public:
00203 ws_dword_t actual_value_type() const
00204 {
00205 return m_valueType;
00206 }
00208
00211 private:
00212 const ws_dword_t m_valueType;
00214
00217 private:
00218 class_type& operator =(class_type const&);
00220 };
00221
00226 class access_denied_exception
00227 : public registry_exception
00228 {
00231 public:
00232 typedef registry_exception parent_class_type;
00233 typedef access_denied_exception class_type;
00235
00238 public:
00239 access_denied_exception(char const* reason, error_code_type err)
00240 : parent_class_type(reason, err)
00241 {}
00242 access_denied_exception(char const* reason, error_code_alt_type err)
00243 : parent_class_type(reason, err)
00244 {}
00246
00249 private:
00250 class_type& operator =(class_type const&);
00252 };
00253
00254
00255
00256 #ifndef _WINSTL_NO_NAMESPACE
00257 # if defined(_STLSOFT_NO_NAMESPACE) || \
00258 defined(STLSOFT_DOCUMENTATION_SKIP_SECTION)
00259 }
00260 # else
00261 }
00262 }
00263 # endif
00264 #endif
00265
00266
00267
00268 #endif
00269
00270