HRESULT IFabricConfigurationPackage_GetValue()

in src/fc_package.c [195:236]


HRESULT IFabricConfigurationPackage_GetValue(FC_PACKAGE_HANDLE fc_package_handle,
    /* [in] */ LPCWSTR sectionName,
    /* [in] */ LPCWSTR parameterName,
    /* [out] */ BOOLEAN* isEncrypted,
    /* [retval][out] */ LPCWSTR* bufferedValue)
{
    HRESULT hr;
    if (
        (fc_package_handle == NULL) ||
        (parameterName == NULL) ||
        (isEncrypted == NULL) ||
        (bufferedValue == NULL)
        )
    {
        LogError("invalid arg");
        hr = E_INVALIDARG;
    }
    else
    {
        ULONG i;
        for (i = 0; i < fc_package_handle->fabric_configuration_settings.Sections->Count; i++)
        {
            if (wcscmp(sectionName, fc_package_handle->fabric_configuration_settings.Sections->Items[i].Name) == 0)
            {
                const FABRIC_CONFIGURATION_SECTION* section = fc_package_handle->fabric_configuration_settings.Sections->Items + i;
                ULONG j;
                for (j = 0; j < section->Parameters->Count; j++)
                {
                    if (wcscmp(parameterName, section->Parameters->Items[j].Name) == 0)
                    {
                        *bufferedValue = section->Parameters->Items[j].Value;
                        return S_OK;
                    }
                }
            }
        }

        hr = E_NOT_SET;
    }
    return hr;

}