void Formatter::WritePackages()

in src/vswhere.lib/Formatter.cpp [331:355]


void Formatter::WritePackages(_In_ ISetupInstance* pInstance)
{
    ISetupInstance2Ptr instance2;
    LPSAFEARRAY psaPackages;

    auto hr = pInstance->QueryInterface(&instance2);
    if (SUCCEEDED(hr))
    {
        hr = instance2->GetPackages(&psaPackages);
        if (SUCCEEDED(hr) && psaPackages->rgsabound[0].cElements)
        {
            StartArray(L"packages");

            SafeArray<ISetupPackageReference*> saPackages(psaPackages);
            const auto packages = saPackages.Elements();

            for (const auto& package : packages)
            {
                WritePackage(package);
            }

            EndArray();
        }
    }
}