HRESULT Formatter::GetProductId()

in src/vswhere.lib/Formatter.cpp [540:564]


HRESULT Formatter::GetProductId(_In_ ISetupInstance* pInstance, _Out_ VARIANT* pvtProductId)
{
    ISetupInstance2Ptr instance;

    auto hr = pInstance->QueryInterface(&instance);
    if (SUCCEEDED(hr))
    {
        ISetupPackageReferencePtr reference;

        hr = instance->GetProduct(&reference);
        if (SUCCEEDED(hr) && !!reference)
        {
            variant_t vt;

            hr = reference->GetId(&vt.bstrVal);
            if (SUCCEEDED(hr))
            {
                vt.vt = VT_BSTR;
                *pvtProductId = vt.Detach();
            }
        }
    }

    return hr;
}