STDMETHODIMP QueryInterface()

in src/vswhere.lib/VersionRange.h [24:58]


    STDMETHODIMP QueryInterface(
        _In_ REFIID iid,
        _Out_ LPVOID* ppUnk
    )
    {
        HRESULT hr = S_OK;
        IUnknown* pUnk = NULL;

        if (!ppUnk)
        {
            return E_POINTER;
        }

        *ppUnk = NULL;
        if (iid == __uuidof(ISetupHelper))
        {
            pUnk = static_cast<ISetupHelper*>(this);
        }
        else if (iid == IID_IUnknown)
        {
            pUnk = static_cast<IUnknown*>(this);
        }
        else
        {
            hr = E_NOINTERFACE;
        }

        if (pUnk)
        {
            pUnk->AddRef();
            *ppUnk = pUnk;
        }

        return hr;
    }