Rhino C++ API
8.10
|
#include <opennurbs_plus_registry.h>
Public Member Functions | |
ON_RegKey () | |
ON_RegKey (const ON_RegKey &src) | |
~ON_RegKey () | |
void | CloseKey () |
bool | CreateKey (const ON_RegKey &Parent, const wchar_t *SubKey) |
bool | CreateKey (const wchar_t *KeyPath) |
bool | DeleteSubKey (const wchar_t *KeyName) |
bool | DeleteSubKeyRecursive (const wchar_t *KeyName) |
bool | DeleteValue (const wchar_t *ValueName) |
bool | GetKeyNames (ON_ClassArray< ON_wString > &SubKeyNames) |
bool GetSubKeys(ON_RegKeyArray &SubKeys); More... | |
bool | GetValueNames (ON_ClassArray< ON_wString > &ValueNames) |
const wchar_t * | Hive () const |
ON_wString | Name () const |
bool | OpenRead (const ON_RegKey &Parent, const wchar_t *SubKey) |
bool | OpenRead (const wchar_t *KeyName) |
bool | OpenWrite (const ON_RegKey &Parent, const wchar_t *SubKey) |
bool | OpenWrite (const wchar_t *KeyName) |
ON_RegKey & | operator= (const ON_RegKey &src) |
ON_wString | Parent () const |
ON_wString | Path () const |
bool | QueryValue (const wchar_t *ValueName, DWORD &data) |
bool | QueryValue (const wchar_t *ValueName, ON_ClassArray< ON_wString > &data) |
bool | QueryValue (const wchar_t *ValueName, ON_SimpleArray< unsigned char > &data) |
bool | QueryValue (const wchar_t *ValueName, ON_wString &data) |
bool | SetValue (const wchar_t *ValueName, const ON_ClassArray< ON_wString > &data) |
bool | SetValue (const wchar_t *ValueName, const ON_SimpleArray< unsigned char > &data) |
bool | SetValue (const wchar_t *ValueName, const ON_wString *data, int count) |
bool | SetValue (const wchar_t *ValueName, const unsigned char *pData, const int cData) |
bool | SetValue (const wchar_t *ValueName, const wchar_t *data) |
bool | SetValue (const wchar_t *ValueName, DWORD data) |
Static Public Member Functions | |
static LONG | CopyKey (ON_RegKey &source, ON_RegKey &destination) |
static LONG | CopyKeyRecursive (ON_RegKey &source, ON_RegKey &destination) |
static LONG | CopyValue (ON_RegKey &source, ON_RegKey &destination, const wchar_t *ValueName) |
Public Attributes | |
LONG | m_ErrorCode |
Protected Member Functions | |
void | Init () |
Private Members: More... | |
Description: ON_RegKey provides simplified access to the Windows Registry. All functions return true to indicate success, false for failure. If a function returns false, check the ErrorCode property to see extended error codes returned by the underlying Windows API functions.
Performance Note: The underlying Windows HKEY is not cached; it is opened and closed for each operation. No testing has been done to determine if this causes much overhead for lots of reads and writes. The reason for this is to simplify the underlying implementation as copy constructors and operator = do not need to check for open keys, close them when necessary, or worry about other copies closing the handle.
ON_RegKey::ON_RegKey | ( | ) |
Description: Default constructor. Parameters: None Returns: None
ON_RegKey::~ON_RegKey | ( | ) |
ON_RegKey::ON_RegKey | ( | const ON_RegKey & | src | ) |
Description: Copy constructor. After initialization, the assignment operator is called. Parameters: src - [in] the ON_RegKey to copy. See Also: ON_RegKey::operator=(const ON_RegKey& src);
void ON_RegKey::CloseKey | ( | ) |
Description: CloseKey closes the specified key. Parameters: key - [in] the HKEY to be closed. See Also: ON_RegKey::OpenKeyRead ON_RegKey::OpenKeyWrite Windows Platform SDK documentation for RegOpenKeyEx
Description: CopyKey copies all values from source to destination. Existing values in destination are not removed. If CopyKey fails in the middle of the copy operation, any successfully copied keys will remain. Parameters: source - [in] the key that contains the values to copy. destination - [in] the key into which values will be copied. Returns: ERROR_SUCCESS on success Any other Windows error code on failure. Failures can come from opening source for read, opening destination for write, reading source values, or writing destination values. See Also: ON_RegKey::CopyKeyRecursive ON_RegKey::CopyValue ON_RegKey::DeleteSubKey ON_RegKey::CreateKey
|
static |
bool ON_RegKey::CreateKey | ( | const ON_RegKey & | Parent, |
const wchar_t * | SubKey | ||
) |
Description: CreateKey creates the specified registry key and opens it for reading and writing. If the key already exists, the function opens it. Parameters: Parent - [in] reference to parent key under SubKey should be created. SubKey - [in] name of the key to create. If SubKey contains "\" characters, nested sub keys are created and the bottom key is returned. Returns: true when SubKey could be created or opened. false otherwise ErrorCode contains the return value of the underlying call to RegCreateKeyEx Remarks: See Also: ON_RegKey::OpenSubKeyRead ON_RegKey::OpenSubKeyWrite ON_RegKey::DeleteSubKey Windows Platform SDK documentation for RegCreateKeyEx
bool ON_RegKey::CreateKey | ( | const wchar_t * | KeyPath | ) |
Description: CreateKey creates the specified registry key and opens it for reading and writing. If the key already exists, the function opens it. Parameters: KeyPath - [in] Path to the key to create. If SubKey contains "\" characters, nested sub keys are created and the bottom key is returned. Returns: true when KeyPath could be created or opened. false otherwise ErrorCode contains the return value of the underlying call to RegCreateKeyEx Remarks: See Also: ON_RegKey::OpenSubKeyRead ON_RegKey::OpenSubKeyWrite ON_RegKey::DeleteSubKey Windows Platform SDK documentation for RegCreateKeyEx
bool ON_RegKey::DeleteSubKey | ( | const wchar_t * | KeyName | ) |
Description: DeleteSubKey deletes the specified key and all values it contains from the registry. The subkey to be deleted must not have subkeys. To delete a key and all its subkeys, you need to enumerate recursively the subkeys and delete them individually. To delete keys recursively, use the DeleteSubKeyRecursive function. Parameters: KeyName - [in] the name of the key to delete. Must not be nullptr or empty. Returns: true when DeleteSubKey succeeds false otherwise ErrorCode contains the return value of the underlying call to RegDeleteKey See Also: ON_RegKey::DeleteSubKeyRecursive ON_RegKey::CreateKey Windows Platform SDK documentation for RegDeleteKey
bool ON_RegKey::DeleteSubKeyRecursive | ( | const wchar_t * | KeyName | ) |
Description: DeleteSubKeyRecursive deletes the specified key, all values it contains, and all sub keys from the registry. Parameters: KeyName - [in] the name of the key to delete. Must not be nullptr or empty. Returns: true when DeleteSubKeyRecursive succeeds false otherwise ErrorCode contains the return value of the underlying call to SHDeleteKey See Also: ON_RegKey::DeleteSubKey ON_RegKey::CreateKey Windows Platform SDK documentation for SHDeleteKey
bool ON_RegKey::DeleteValue | ( | const wchar_t * | ValueName | ) |
Description: DeleteValue deletes the specified value from the registry. Parameters: ValueName - [in] the value to delete from the registry. Can be nullptr or empty. If ValueName is nullptr or empty, data deleted from the default value for this key. Returns: true when DeleteValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegSetValueEx See Also: ON_RegKey::QueryValue ON_RegKey::SetValue Windows Platform SDK documentation for RegDeleteValue
bool ON_RegKey::GetKeyNames | ( | ON_ClassArray< ON_wString > & | SubKeyNames | ) |
bool GetSubKeys(ON_RegKeyArray &SubKeys);
Description: GetSubKeys returns an array of ON_RegKeys. There is one ON_RegKey for each key that is an immediate child of this key. Parameters: SubKeys - [in, out] reference to an ON_RegKeyArray that will contain the list of sub keys. SubKeys is emptied prior to being populated with new keys. Returns: true when GetSubKeys succeeds false otherwise ErrorCode contains the return value of the underlying call to RegSetValueEx See Also: ON_RegKey::QueryValue ON_RegKey::GetValueNames ON_RegKey::SetValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegEnumKeyEx
bool ON_RegKey::GetValueNames | ( | ON_ClassArray< ON_wString > & | ValueNames | ) |
Description: GetValueNames returns an ON_ClassArray<ON_wString> containing the names of each value in the key. This array does not include values in subkeys. Parameters: ValueNames - [in] reference to an ON_ClassArray<ON_wString> that will contain the list of value names. ValueNames is emptied prior to being populated with new keys. Returns: true when GetValueNames succeeds false otherwise ErrorCode contains the return value of the underlying call to RegEnumValue See Also: ON_RegKey::QueryValue ON_RegKey::SetValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegEnumValue
const wchar_t* ON_RegKey::Hive | ( | ) | const |
Description: Returns an ON_wString containing the name of the registry hive that is the root of this key. Example: If the current key is "HKEY_LOCAL_MACHINE\\Software\\McNeel" then Hive() return "HKEY_LOCAL_MACHINE"
|
protected |
Private Members:
Shared initialization used by constructors and operator=
ON_wString ON_RegKey::Name | ( | ) | const |
Description: Returns an ON_wString containing the name of this key. Example: If the current key is "HKEY_LOCAL_MACHINE\\Software\\McNeel" then Name() return "McNeel"
bool ON_RegKey::OpenRead | ( | const ON_RegKey & | Parent, |
const wchar_t * | SubKey | ||
) |
Description: OpenSubKeyRead opens the specified registry key for reading. Parameters: ParentKey - [in] reference to parent key under SubKey should be opened. SubKey - [in] name of the key to create. If SubKey contains "\" characters, nested sub keys are created and the bottom key is returned. Returns: true when SubKey could be created or opened. false otherwise ErrorCode contains the return value of the underlying call to RegOpenKeyEx See Also: ON_RegKey::OpenSubKeyWrite ON_RegKey::CreateKey ON_RegKey::DeleteSubKey Windows Platform SDK documentation for RegOpenKeyEx
bool ON_RegKey::OpenRead | ( | const wchar_t * | KeyName | ) |
Description: OpenRead opens the specified registry key for reading. It optionally creates the key if it does not exist, then opens it for reading. Parameters: KeyName - [in] the full path to the registry key, including the hive. The hive can be the full name or abbreviation: HKEY_LOCAL_MACHINE or HKLM, HKEY_CURRENT_USER or HKCU, HKEY_CLASSES_ROOT or HKCR, HKEY_CURRENT_CONFIG or HKCC, HKEY_USERS or HKU. See examples for details. Create - [in, optional] if true, KeyName will be created if it doesn't already exist. Default is false. Returns: true when SubKey could be created or opened. false otherwise ErrorCode contains the return value of the underlying call to RegOpenKeyEx or RegCreateKeyEx Examples: / Open HKEY_LOCAL_MACHINE\Software\MyCompany\MyProduct if it exists ON_RegKey reg; reg.Open(L"HKEY_LOCAL_MACHINE\\Software\\MyCompany\\MyProduct");
/ Create HKEY_LOCAL_MACHINE\Software\MyCompany\MyProduct ON_RegKey reg(L"HKEY_LOCAL_MACHINE\\Software\\MyCompany\\MyProduct", true);
/ Open HKEY_LOCAL_MACHINE\Software\MyCompany\MyProduct ON_RegKey reg(L"HKLM\\Software\\MyCompany\\MyProduct");
/ Open HKEY_CURRENT_USER\Software\MyCompany\MyProduct ON_RegKey reg(L"HKCU\\Software\\MyCompany\\MyProduct"); See Also: ON_RegKey::OpenWrite Windows Platform SDK documentation for RegOpenKeyEx Windows Platform SDK documentation for RegCreateKeyEx
bool ON_RegKey::OpenWrite | ( | const ON_RegKey & | Parent, |
const wchar_t * | SubKey | ||
) |
Description: OpenSubKeyWrite opens the specified registry key for writing. Parameters: Parent - [in] reference to parent key under SubKey should be opened. SubKey - [in] name of the key to create. If SubKey contains "\" characters, nested sub keys are created and the bottom key is returned. Returns: true when SubKey could be created or opened. false otherwise ErrorCode contains the return value of the underlying call to RegOpenKeyEx See Also: ON_RegKey::OpenSubKeyRead ON_RegKey::CreateKey ON_RegKey::DeleteSubKey Windows Platform SDK documentation for RegOpenKeyEx
bool ON_RegKey::OpenWrite | ( | const wchar_t * | KeyName | ) |
Description: OpenWrite opens the specified registry key for reading and writing. It optionally creates the key if it does not exist, then opens it for reading and writing. Parameters: KeyName - [in] the full path to the registry key, including the hive. The hive can be the full name or abbreviation: HKEY_LOCAL_MACHINE or HKLM, HKEY_CURRENT_USER or HKCU, HKEY_CLASSES_ROOT or HKCR, HKEY_CURRENT_CONFIG or HKCC, HKEY_USERS or HKU. See examples for details. Create - [in, optional] if true, KeyName will be created if it doesn't already exist. Default is false. Returns: true when SubKey could be created or opened. false otherwise ErrorCode contains the return value of the underlying call to RegOpenKeyEx or RegCreateKeyEx Examples: / Open HKEY_LOCAL_MACHINE\Software\MyCompany\MyProduct if it exists ON_RegKey reg; reg.Open(L"HKEY_LOCAL_MACHINE\\Software\\MyCompany\\MyProduct");
/ Create HKEY_LOCAL_MACHINE\Software\MyCompany\MyProduct ON_RegKey reg(L"HKEY_LOCAL_MACHINE\\Software\\MyCompany\\MyProduct", true);
/ Open HKEY_LOCAL_MACHINE\Software\MyCompany\MyProduct ON_RegKey reg(L"HKLM\\Software\\MyCompany\\MyProduct");
/ Open HKEY_CURRENT_USER\Software\MyCompany\MyProduct ON_RegKey reg(L"HKCU\\Software\\MyCompany\\MyProduct"); See Also: ON_RegKey::OpenRead Windows Platform SDK documentation for RegOpenKeyEx Windows Platform SDK documentation for RegCreateKeyEx
Description: Assignment operator. Properties from src are copied to this ON_RegKey, but the underlying Windows HKEY is not. The root hive, path to the key, and whether the key should be created or not is copied.
It is safe to make one or more copies of an ON_RegKey; each will open a unique connection to the Windows Registry to prevent a copy from inadvertently closing the source HKEY. Parameters: src - [in] the ON_RegKey to copy. See Also: ON_RegKey(const ON_RegKey& src);
ON_wString ON_RegKey::Parent | ( | ) | const |
Description: Returns an ON_wString containing the full path of this registry key. Example: If the current key is "HKEY_LOCAL_MACHINE\\Software\\McNeel" then Parent() return "HKEY_LOCAL_MACHINE\\Software"
ON_wString ON_RegKey::Path | ( | ) | const |
Description: Returns an ON_wString containing the full path of this registry key. Example: If the current key is "HKEY_LOCAL_MACHINE\\Software\\McNeel" then Path() return "HKEY_LOCAL_MACHINE\\Software\\McNeel"
bool ON_RegKey::QueryValue | ( | const wchar_t * | ValueName, |
DWORD & | data | ||
) |
Description: QueryValue retrieves the specified DWORD value from the registry. If the value is not stored as a REG_DWORD value, QueryValue fails. Parameters: ValueName - [in] the name of the value to query. Can be nullptr or empty. If ValueName is nullptr or empty, the data is retrieved from the default value for this key. data - [in, out] a reference to the DWORD that will contain the string value after a successful query. Returns: true when QueryValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegQueryValueEx See Also: ON_RegKey::QueryValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegQueryValueEx
bool ON_RegKey::QueryValue | ( | const wchar_t * | ValueName, |
ON_ClassArray< ON_wString > & | data | ||
) |
Description: QueryValue retrieves the specified MultiString value from the registry. If the value is not stored as a REG_MULTI_SZ value, QueryValue fails. Parameters: ValueName - [in] the name of the value to query. Can be nullptr or empty. If ValueName is nullptr or empty, the data is retrieved from the default value for this key. data - [in, out] a reference to the ON_ClassArray<ON_wString> that will contain the string value after a successful query. Returns: true when QueryValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegQueryValueEx See Also: ON_RegKey::QueryValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegQueryValueEx
bool ON_RegKey::QueryValue | ( | const wchar_t * | ValueName, |
ON_SimpleArray< unsigned char > & | data | ||
) |
bool ON_RegKey::QueryValue | ( | const wchar_t * | ValueName, |
ON_wString & | data | ||
) |
Description: QueryValue retrieves the specified string value from the registry. If the value is not stored as a REG_SZ value, QueryValue fails. Parameters: ValueName - [in] the name of the value to query. Can be nullptr or empty. If ValueName is nullptr or empty, the data is retrieved from the default value for this key. data - [in, out] a reference to the ON_wString that will contain the string value after a successful query. Returns: true when QueryValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegQueryValueEx See Also: ON_RegKey::QueryValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegQueryValueEx
bool ON_RegKey::SetValue | ( | const wchar_t * | ValueName, |
const ON_ClassArray< ON_wString > & | data | ||
) |
Description: SetValue saves the specified array of ON_wStrings as a REG_MULTI_SZ in the registry. Parameters: ValueName - [in] the name of the value to save. Can be nullptr or empty. If ValueName is nullptr or empty, the data is saved in the default value for this key. data - [in] the ON_wString array to save as data in the value named ValueName. If data is empty, or if any of the ON_wString objects in the array are empty, SetValue fails and ErrorCode is set to ERROR_INVALID_DATA Returns: true when SetValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegSetValueEx See Also: ON_RegKey::SetValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegSetValueEx
bool ON_RegKey::SetValue | ( | const wchar_t * | ValueName, |
const ON_SimpleArray< unsigned char > & | data | ||
) |
bool ON_RegKey::SetValue | ( | const wchar_t * | ValueName, |
const ON_wString * | data, | ||
int | count | ||
) |
Description: SetValue saves the specified array of ON_wStrings as a REG_MULTI_SZ in the registry. Parameters: ValueName - [in] the name of the value to save. Can be nullptr or empty. If ValueName is nullptr or empty, the data is saved in the default value for this key. data - [in] the ON_wString array to save as data in the value named ValueName. If data is nullptr, or if any of the ON_wString objects in the array are empty, SetValue fails and ErrorCode is set to ERROR_INVALID_DATA count - [in] the number of items in the data array. If count == 0, SetValue fails and ErrorCode is set to ERROR_INVALID_DATA. Returns: true when SetValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegSetValueEx See Also: ON_RegKey::SetValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegSetValueEx
bool ON_RegKey::SetValue | ( | const wchar_t * | ValueName, |
const unsigned char * | pData, | ||
const int | cData | ||
) |
bool ON_RegKey::SetValue | ( | const wchar_t * | ValueName, |
const wchar_t * | data | ||
) |
Description: SetValue saves the specified string value as a REG_SZ value in the registry. Parameters: ValueName - [in] the name of the value to save. data - [in] the string to save as data in the value named ValueName. Returns: true when SetValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegSetValueEx See Also: ON_RegKey::SetValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegSetValueEx
bool ON_RegKey::SetValue | ( | const wchar_t * | ValueName, |
DWORD | data | ||
) |
Description: SetValue saves the specified DWORD value as a REG_DWORD value in the registry. Parameters: ValueName - [in] the name of the value to save. Can be nullptr or empty. If ValueName is nullptr or empty, the data is saved in the default value for this key. data - [in] the DWORD to save as data in the value named ValueName. Returns: true when SetValue succeeds false otherwise ErrorCode contains the return value of the underlying call to RegSetValueEx See Also: ON_RegKey::SetValue ON_RegKey::DeleteValue ON_RegKey::CreateKey Windows Platform SDK documentation for RegSetValueEx
LONG ON_RegKey::m_ErrorCode |
Description: ErrorCode contains the result from underlying calls to Windows registry functions. When a call succeeds, all ON_RegKey functions return true, and ErrorCode == ERROR_SUCCESS. See Also: Windows Platform SDK documentation for Registry Functions.