37 #include "../api_core.h"
41 class CL_RegistryKey_Impl;
71 CL_RegistryKey(PredefinedKey key,
const CL_StringRef &subkey,
unsigned int access_rights = KEY_ALL_ACCESS,
unsigned int create_flags = create_always);
73 CL_RegistryKey(HKEY key);
84 bool is_null()
const {
return !impl; }
87 void throw_if_null()
const;
91 std::vector<CL_String> get_subkey_names()
const;
93 std::vector<CL_String> get_value_names()
const;
95 int get_value_int(
const CL_StringRef &name,
int default_value = 0)
const;
101 std::vector<CL_String> get_value_multi_string(
const CL_StringRef &name,
const std::vector<CL_String> &default_value = std::vector<CL_String>())
const;
109 CL_RegistryKey open_key(
const CL_StringRef &subkey,
unsigned int access_rights = KEY_ALL_ACCESS);
111 CL_RegistryKey create_key(
const CL_StringRef &subkey,
unsigned int access_rights = KEY_ALL_ACCESS, CreateFlags create_flags = create_always);
113 void delete_key(
const CL_StringRef &subkey,
bool recursive);
115 static void delete_key(PredefinedKey key,
const CL_StringRef &subkey,
bool recursive);
117 void set_value_int(
const CL_StringRef &name,
int value);
133 CL_SharedPtr<CL_RegistryKey_Impl> impl;