#include <ace/Configuration.h>
class ACE_Configuration_Win32Registry : public ACE_Configuration {
public:
ACE_EXPLICIT ACE_Configuration_Win32Registry (HKEY hKey);
virtual ~ACE_Configuration_Win32Registry (void);
virtual int open_section ( const ACE_Configuration_Section_Key& base, const TCHAR* sub_section, int create, ACE_Configuration_Section_Key& result );
virtual int remove_section ( const ACE_Configuration_Section_Key& key, const TCHAR* sub_section, int recursive );
virtual int enumerate_values ( const ACE_Configuration_Section_Key& key, int Index, ACE_TString& name, VALUETYPE& type );
virtual int enumerate_sections ( const ACE_Configuration_Section_Key& key, int Index, ACE_TString& name );
virtual int set_string_value ( const ACE_Configuration_Section_Key& key, const TCHAR* name, const ACE_TString& value );
virtual int set_integer_value ( const ACE_Configuration_Section_Key& key, const TCHAR* name, u_int value );
virtual int set_binary_value ( const ACE_Configuration_Section_Key& key, const TCHAR* name, const void* data, u_int length );
virtual int get_string_value ( const ACE_Configuration_Section_Key& key, const TCHAR* name, ACE_TString& value );
virtual int get_integer_value ( const ACE_Configuration_Section_Key& key, const TCHAR* name, u_int& value );
virtual int get_binary_value ( const ACE_Configuration_Section_Key& key, const TCHAR* name, void*& data, u_int& length );
virtual int remove_value ( const ACE_Configuration_Section_Key& key, const TCHAR* name );
static HKEY resolve_key ( HKEY hKey, const TCHAR* path, int create = 1 );
protected:
int load_key ( const ACE_Configuration_Section_Key& key, HKEY& hKey );
ACE_Configuration_Win32Registry (void);
ACE_Configuration_Win32Registry ( const ACE_Configuration_Win32Registry& rhs );
ACE_Configuration_Win32Registry& operator= ( const ACE_Configuration_Win32Registry& rhs );
};
ACE_EXPLICIT ACE_Configuration_Win32Registry (HKEY hKey);
RegCloseKey
on it upon destruction.
virtual ~ACE_Configuration_Win32Registry (void);
virtual int open_section (
const ACE_Configuration_Section_Key& base,
const TCHAR* sub_section,
int create,
ACE_Configuration_Section_Key& result
);
virtual int remove_section (
const ACE_Configuration_Section_Key& key,
const TCHAR* sub_section,
int recursive
);
virtual int enumerate_values (
const ACE_Configuration_Section_Key& key,
int Index,
ACE_TString& name,
VALUETYPE& type
);
virtual int enumerate_sections (
const ACE_Configuration_Section_Key& key,
int Index,
ACE_TString& name
);
virtual int set_string_value (
const ACE_Configuration_Section_Key& key,
const TCHAR* name,
const ACE_TString& value
);
virtual int set_integer_value (
const ACE_Configuration_Section_Key& key,
const TCHAR* name,
u_int value
);
virtual int set_binary_value (
const ACE_Configuration_Section_Key& key,
const TCHAR* name,
const void* data,
u_int length
);
virtual int get_string_value (
const ACE_Configuration_Section_Key& key,
const TCHAR* name,
ACE_TString& value
);
virtual int get_integer_value (
const ACE_Configuration_Section_Key& key,
const TCHAR* name,
u_int& value
);
virtual int get_binary_value (
const ACE_Configuration_Section_Key& key,
const TCHAR* name,
void*& data,
u_int& length
);
virtual int remove_value (
const ACE_Configuration_Section_Key& key,
const TCHAR* name
);
name
from key
. returns non zero on error
static HKEY resolve_key (
HKEY hKey,
const TCHAR* path,
int create = 1
);
path
through hKey
. It is useful when
you want the HKEY for a specific registry key, especially when
initializing this implementation. Caller is responsible for
closeing this key when it is no longer used. If create is 1
(default) the keys are create if they don't already exist.
Returns 0 on error
int load_key (const ACE_Configuration_Section_Key& key, HKEY& hKey);
ACE_Configuration_Win32Registry (void);
ACE_Configuration_Win32Registry (
const ACE_Configuration_Win32Registry& rhs
);
ACE_Configuration_Win32Registry& operator= (
const ACE_Configuration_Win32Registry& rhs
);
chris@stentorsoft.com