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;
    }
Example #2
0
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;
}