void CfgTest::CheckCfgAndRegValueDwordAsBool(CFGDB_HANDLE cdhDb, HKEY hk, LPCWSTR wzCfgName, LPCWSTR wzName, BOOL fExpectedValue)
    {
        HRESULT hr = S_OK;
        DWORD dwValue = 0;
        BOOL fValue = FALSE;

        hr = RegReadNumber(hk, wzName, &dwValue);
        ExitOnFailure1(hr, "Failed to read registry dword:%ls", wzName);

        if ((dwValue == 0) != (fExpectedValue == 0))
        {
            hr = E_FAIL;
            ExitOnFailure2(hr, "Wrong value in registry! Expected value %s, found value %u", fExpectedValue ? "1" : "0", dwValue);
        }

        hr = CfgGetBool(cdhDb, wzCfgName, &fValue);
        ExitOnFailure1(hr, "Failed to read cfg db bool:%ls", wzCfgName);

        if (fExpectedValue != fValue)
        {
            hr = E_FAIL;
            ExitOnFailure2(hr, "Wrong value in cfg db! Expected bool value %u, found bool value %u", fExpectedValue, fValue);
        }

    LExit:
        return;
    }
Exemplo n.º 2
0
extern "C" HRESULT DAPI PolcReadNumber(
    __in_z LPCWSTR wzPolicyPath,
    __in_z LPCWSTR wzPolicyName,
    __in DWORD dwDefault,
    __out DWORD* pdw
    )
{
    HRESULT hr = S_OK;
    HKEY hk = NULL;

    hr = OpenPolicyKey(wzPolicyPath, &hk);
    if (E_FILENOTFOUND == hr || E_PATHNOTFOUND == hr)
    {
        ExitFunction1(hr = S_FALSE);
    }
    ExitOnFailure1(hr, "Failed to open policy key: %ls", wzPolicyPath);

    hr = RegReadNumber(hk, wzPolicyName, pdw);
    if (E_FILENOTFOUND == hr || E_PATHNOTFOUND == hr)
    {
        ExitFunction1(hr = S_FALSE);
    }
    ExitOnFailure2(hr, "Failed to open policy key: %ls, name: %ls", wzPolicyPath, wzPolicyName);

LExit:
    ReleaseRegKey(hk);

    if (S_FALSE == hr || FAILED(hr))
    {
        *pdw = dwDefault;
    }

    return hr;
}
    void CfgTest::CheckCfgAndRegValueDword(CFGDB_HANDLE cdhDb, HKEY hk, LPCWSTR wzCfgName, LPCWSTR wzName, DWORD dwExpectedValue)
    {
        HRESULT hr = S_OK;
        DWORD dwValue = 0;

        hr = RegReadNumber(hk, wzName, &dwValue);
        ExitOnFailure1(hr, "Failed to read registry dword:%ls", wzName);

        if (dwExpectedValue != dwValue)
        {
            hr = E_FAIL;
            ExitOnFailure2(hr, "Wrong value in registry! Expected value %u, found value %u", dwExpectedValue, dwValue);
        }

        hr = CfgGetDword(cdhDb, wzCfgName, &dwValue);
        ExitOnFailure1(hr, "Failed to read cfg db dword:%ls", wzCfgName);

        if (dwValue != dwExpectedValue)
        {
            hr = E_FAIL;
            ExitOnFailure2(hr, "Wrong value in cfg db! Expected dword value %u, found dword value %u", dwExpectedValue, dwValue);
        }

    LExit:
        return;
    }
Exemplo n.º 4
0
static HRESULT RegDefaultReadValueDword(
    __in CFGDB_STRUCT *pcdb,
    __in HKEY hkKey,
    __in_z LPCWSTR wzValueName,
    __in_z LPCWSTR wzCfgValueName
    )
{
    HRESULT hr = S_OK;
    DWORD dwValue = 0;
    CONFIG_VALUE cvNewValue = { };

    hr = RegReadNumber(hkKey, wzValueName, &dwValue);
    ExitOnFailure(hr, "Failed to read dword value from registry: %ls", wzValueName);

    hr = ValueSetDword(dwValue, 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;
}