diff --git a/Registry.cxx b/Registry.cxx index 430e717192eb598671c54d89691409644ad210ec..d11db560c4611d902c8c0c38758bf4b0e6f3f2b5 100644 --- a/Registry.cxx +++ b/Registry.cxx @@ -390,6 +390,10 @@ bool RegistryHelper::Open(const char *toplevel, const char *subkey, 0, "", REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE, NULL, &this->HKey, &dwDummy) == ERROR_SUCCESS ); } + if ( res != 0 ) + { + this->SetSubKey( subkey ); + } return (res != 0); } #endif @@ -553,8 +557,8 @@ bool RegistryHelper::ReadValue(const char *skey, const char **value) int res = 1; DWORD dwType, dwSize; dwType = REG_SZ; - dwSize = Registry_BUFFER_SIZE; char buffer[1024]; // Replace with RegQueryInfoKey + dwSize = sizeof(buffer); res = ( RegQueryValueEx(this->HKey, skey, NULL, &dwType, (BYTE *)buffer, &dwSize) == ERROR_SUCCESS ); if ( !res )