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; }
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; }
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); }
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); }