Функцию RegSetKeyValueW
можно легко реализовать с помощью RegSetValueExW
, существующей в Windows 2000
LSTATUS MyRegSetKeyValueW(
HKEY hKey,
LPCWSTR lpSubKey,
LPCWSTR lpValueName,
DWORD dwType,
LPCVOID lpData,
DWORD cbData
)
{
LSTATUS s;
if (lpSubKey && *lpSubKey)
{
s = RegCreateKeyExW(hKey, lpSubKey, 0, 0, 0, KEY_SET_VALUE, 0, &hKey, 0);
if (s != NOERROR)
{
return s;
}
}
s = RegSetValueExW(hKey, lpValueName, 0, dwType,
static_cast<PBYTE>(const_cast<void*>(lpData)), cbData);
if (lpSubKey && *lpSubKey)
{
RegCloseKey(hKey);
}
return s;
}
и замените в самом коде RegSetKeyValueW
на MyRegSetKeyValueW
. Можно сделать то же самое с A версией, но нужно понимать, что A версия преобразует строковые параметры в Unicode и затем вызывает W version. так что всегда лучше прямой звонок Ш версия