1 #ifndef LIBFILEZILLA_GLUE_REGISTRY_HEADER
2 #define LIBFILEZILLA_GLUE_REGISTRY_HEADER
8 #include "../libfilezilla.hpp"
12 #include "windows.hpp"
39 explicit regkey(HKEY
const root, std::wstring
const& subkey,
bool readonly, regview v = regview_native);
51 bool open(HKEY
const root, std::wstring
const& subkey,
bool readonly, regview v = regview_native);
53 bool has_value(std::wstring
const& name)
const;
56 std::wstring value(std::wstring
const& name)
const;
59 uint64_t int_value(std::wstring
const& name)
const;
61 bool set_value(std::wstring
const& name, std::wstring
const& value);
62 bool set_value(std::wstring
const& name, uint64_t value);
64 explicit operator bool()
const {
65 return key_.has_value();
68 bool delete_value(std::wstring
const& name);
82 if (key_ && key_->key_) {
86 DWORD res = RegEnumValueW(*key_->key_, ++index_, v_.name.data(), &len,
nullptr, &v_.type,
nullptr,
nullptr);
87 if (res != ERROR_SUCCESS || !len) {
99 return index_ == op.index_;
102 bool operator!=(iterator
const& op)
const
104 return !(*
this == op);
107 value
const& operator*()
const
112 value
const* operator->()
const
120 iterator(regkey
const* key)
126 regkey
const* key_{};
127 DWORD index_{DWORD(-1)};
130 using const_iterator = iterator;
132 iterator begin()
const
142 const_iterator cbegin()
const
147 const_iterator cend()
const
153 mutable std::optional<HKEY> key_;
158 #error This file is for Windows only
Prepresents a key in the Windows registry.
Definition: registry.hpp:25
bool operator==(symmetric_key const &lhs, symmetric_key const &rhs)
Side-channel safe comparison.
The namespace used by libfilezilla.
Definition: apply.hpp:17
Definition: registry.hpp:70