Пример #1
0
/**************************************************************\
 *                                                             *
 *                        IUnknown                             *
 *                                                             *
 **************************************************************/
HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::QueryInterface(REFIID id, LPVOID *iface)
{
    *iface = 0;

    QByteArray strIID = IIDToString(id);
    if (!strIID.isEmpty()) {
        QString ss;
        QDebug dbg(&ss);
        dbg << accessibleInterface();
        accessibleDebug("QWindowsIA2Accessible::QI() - IID:%s, iface:%s ", strIID.constData(), qPrintable(ss));
    }
    if (id == IID_IUnknown) {
        *iface = (IUnknown*)(IDispatch*)this;
    } else if (id == IID_IDispatch) {
        *iface = (IDispatch*)this;
    } else if (id == IID_IAccessible) {
        *iface = (IAccessible*)this;
    } else if (id == IID_IOleWindow) {
        *iface = (IOleWindow*)this;
    }

    if (*iface) {
        AddRef();
        return S_OK;
    }

    return E_NOINTERFACE;
}
Пример #2
0
/**************************************************************\
 *                                                             *
 *                        IUnknown                             *
 *                                                             *
 **************************************************************/
HRESULT STDMETHODCALLTYPE QWindowsMsaaAccessible::QueryInterface(REFIID id, LPVOID *iface)
{
    *iface = 0;

    QByteArray strIID = IIDToString(id);
    if (!strIID.isEmpty()) {
        qCDebug(lcQpaAccessibility) << "QWindowsIA2Accessible::QI() - IID:"
                                    << strIID << ", iface:" << accessibleInterface();
    }
    if (id == IID_IUnknown) {
        *iface = (IUnknown*)(IDispatch*)this;
    } else if (id == IID_IDispatch) {
        *iface = (IDispatch*)this;
    } else if (id == IID_IAccessible) {
        *iface = (IAccessible*)this;
    } else if (id == IID_IOleWindow) {
        *iface = (IOleWindow*)this;
    }

    if (*iface) {
        AddRef();
        return S_OK;
    }

    return E_NOINTERFACE;
}