void Formatter::WritePackage()

in src/vswhere.lib/Formatter.cpp [280:329]


void Formatter::WritePackage(_In_ ISetupPackageReference* pPackage)
{
    StartObject(L"package");

    bstr_t bstr;
    auto hr = pPackage->GetId(bstr.GetAddress());
    if (SUCCEEDED(hr))
    {
        WriteProperty(L"id", bstr);
    }

    hr = pPackage->GetVersion(bstr.GetAddress());
    if (SUCCEEDED(hr) && bstr.length())
    {
        WriteProperty(L"version", bstr);
    }

    hr = pPackage->GetChip(bstr.GetAddress());
    if (SUCCEEDED(hr) && bstr.length())
    {
        WriteProperty(L"chip", bstr);
    }

    hr = pPackage->GetLanguage(bstr.GetAddress());
    if (SUCCEEDED(hr) && bstr.length())
    {
        WriteProperty(L"language", bstr);
    }

    hr = pPackage->GetBranch(bstr.GetAddress());
    if (SUCCEEDED(hr) && bstr.length())
    {
        WriteProperty(L"branch", bstr);
    }

    hr = pPackage->GetType(bstr.GetAddress());
    if (SUCCEEDED(hr))
    {
        WriteProperty(L"type", bstr);
    }

    VARIANT_BOOL vtBool;
    hr = pPackage->GetIsExtension(&vtBool);
    if (SUCCEEDED(hr) && VARIANT_TRUE == vtBool)
    {
        WriteProperty(L"extension", true);
    }

    EndObject();
}