tdf#103058: use RegQueryValueEx instead of RegGetValue

because the latter is unsupported on WinXP

Change-Id: Ie922271ab837637d77f3d76c5144d10a7f5a5f0d
Reviewed-on: https://gerrit.libreoffice.org/36416
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
Mike Kaganski 2017-04-11 19:20:24 +03:00
parent 59fddf430f
commit aa4e06c67d

View File

@ -14,8 +14,28 @@ namespace {
HRESULT RegRead(HKEY hRootKey, const wchar_t* subKey, const wchar_t* valName, wchar_t* valData, size_t cchData)
{
HKEY hKey;
long iRetVal = RegCreateKeyExW(
hRootKey,
subKey,
0,
nullptr,
REG_OPTION_NON_VOLATILE,
KEY_READ,
nullptr,
&hKey,
nullptr);
if (iRetVal != ERROR_SUCCESS)
return HRESULT_FROM_WIN32(iRetVal);
DWORD cbData = cchData * sizeof(valData[0]);
long iRetVal = RegGetValue(hRootKey, subKey, valName, RRF_RT_REG_SZ, nullptr, valData, &cbData);
DWORD dwType;
iRetVal = RegQueryValueExW(hKey, valName, nullptr, &dwType, reinterpret_cast<LPBYTE>(valData), &cbData);
RegCloseKey(hKey);
if ((iRetVal == ERROR_SUCCESS) && (dwType != REG_SZ))
{
return E_FAIL;
}
return HRESULT_FROM_WIN32(iRetVal);
}