54 QString rSubkeyName = keyName(rSubkey);
55 QString rSubkeyPath = keyPath(rSubkey);
57 HKEY handle =
nullptr;
58 LONG res = RegOpenKeyEx(parentHandle, (
wchar_t*)rSubkeyPath.utf16(), 0,
59 KEY_READ | options, &handle);
61 if (res != ERROR_SUCCESS)
67 res = RegQueryValueEx(handle, (
wchar_t*)rSubkeyName.utf16(),
nullptr, &dataType,
nullptr, &dataSize);
68 if (res != ERROR_SUCCESS) {
74 QByteArray data(dataSize, 0);
75 res = RegQueryValueEx(handle, (
wchar_t*)rSubkeyName.utf16(),
nullptr,
nullptr,
76 reinterpret_cast<
unsigned char*>(data.data()), &dataSize);
77 if (res != ERROR_SUCCESS) {
85 result = QString::fromWCharArray(((
const wchar_t *)data.constData()));
93 QString s = QString::fromWCharArray((
const wchar_t *)data.constData() + i);
100 result = l.join(
", "_L1);
106 result = QString::fromWCharArray((
const wchar_t *)data.constData(), data.size() / 2);
110 case REG_DWORD_BIG_ENDIAN:
112 Q_ASSERT(data.size() ==
sizeof(
int));
114 memcpy((
char*)&i, data.constData(),
sizeof(
int));
115 result = QString::number(i);
120 qWarning(
"QSettings: unknown data %u type in windows registry", quint32(dataType));
126 Q_UNUSED(parentHandle);