JNIEXPORT jlong JNICALL
Java_org_jitsi_impl_neomedia_jmfext_media_protocol_wasapi_WASAPI_IMMDevice_1QueryInterface
    (JNIEnv *env, jclass clazz, jlong thiz, jstring iid)
{
    HRESULT hr;
    IID iid_;
    void *pvObject;

    hr = WASAPI_iidFromString(env, iid, &iid_);
    if (SUCCEEDED(hr))
    {
        hr
            = IMMDevice_QueryInterface(
                    (IMMDevice *) (intptr_t) thiz,
                    &iid_,
                    &pvObject);
        if (FAILED(hr))
        {
            pvObject = NULL;
            WASAPI_throwNewHResultException(env, hr, __func__, __LINE__);
        }
    }
    else
        pvObject = NULL;
    return (jlong) (intptr_t) pvObject;
}
Exemplo n.º 2
0
Arquivo: wasapi.c Projeto: IAPark/vlc
static EDataFlow GetDeviceFlow(IMMDevice *dev)
{
    void *pv;

    if (FAILED(IMMDevice_QueryInterface(dev, &IID_IMMEndpoint, &pv)))
        return false;

    IMMEndpoint *ep = pv;
    EDataFlow flow;

    if (SUCCEEDED(IMMEndpoint_GetDataFlow(ep, &flow)))
        flow = eAll;
    IMMEndpoint_Release(ep);
    return flow;
}
Exemplo n.º 3
0
static HRESULT WINAPI MMEndpoint_QueryInterface(IMMEndpoint *iface, REFIID riid, void **ppv)
{
    MMDevice *This = impl_from_IMMEndpoint(iface);
    TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppv);
    return IMMDevice_QueryInterface(&This->IMMDevice_iface, riid, ppv);
}
Exemplo n.º 4
0
static HRESULT WINAPI MMEndpoint_QueryInterface(IMMEndpoint *iface, REFIID riid, void **ppv)
{
    MMDevice *This = impl_from_IMMEndpoint(iface);
    return IMMDevice_QueryInterface(&This->IMMDevice_iface, riid, ppv);
}