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();
}