void CfgTest::CheckCfgAndRegValueQword(CFGDB_HANDLE cdhDb, HKEY hk, LPCWSTR wzCfgName, LPCWSTR wzName, DWORD64 qwExpectedValue) { HRESULT hr = S_OK; DWORD64 qwValue = 0; hr = RegReadQword(hk, wzName, &qwValue); ExitOnFailure1(hr, "Failed to read registry qword:%ls", wzName); if (qwExpectedValue != qwValue) { hr = E_FAIL; ExitOnFailure2(hr, "Wrong value in registry! Expected value %I64u, found value %I64u", qwExpectedValue, qwValue); } hr = CfgGetQword(cdhDb, wzCfgName, &qwValue); ExitOnFailure1(hr, "Failed to read cfg db qword:%ls", wzCfgName); if (qwValue != qwExpectedValue) { hr = E_FAIL; ExitOnFailure2(hr, "Wrong value in cfg db! Expected qword value %I64u, found qword value %I64u", qwExpectedValue, qwValue); } LExit: return; }
static HRESULT RegDefaultReadValueQword( __in CFGDB_STRUCT *pcdb, __in HKEY hkKey, __in_z LPCWSTR wzValueName, __in_z LPCWSTR wzCfgValueName ) { HRESULT hr = S_OK; DWORD64 qwValue = 0; CONFIG_VALUE cvNewValue = { }; hr = RegReadQword(hkKey, wzValueName, &qwValue); ExitOnFailure(hr, "Failed to read qword value from registry: %ls", wzValueName); hr = ValueSetQword(qwValue, NULL, pcdb->sczGuid, &cvNewValue); ExitOnFailure(hr, "Failed to set string value %ls in memory", wzCfgValueName); hr = ValueWrite(pcdb, pcdb->dwAppID, wzCfgValueName, &cvNewValue, TRUE, NULL); ExitOnFailure(hr, "Failed to set value in db: %ls", wzCfgValueName); LExit: ReleaseCfgValue(cvNewValue); return hr; }