static HRESULT WINAPI HttpProtocolUnk_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { HttpProtocol *This = impl_from_IUnknown(iface); if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IUnknown_outer; }else if(IsEqualGUID(&IID_IInternetProtocolRoot, riid)) { TRACE("(%p)->(IID_IInternetProtocolRoot %p)\n", This, ppv); *ppv = &This->IInternetProtocolEx_iface; }else if(IsEqualGUID(&IID_IInternetProtocol, riid)) { TRACE("(%p)->(IID_IInternetProtocol %p)\n", This, ppv); *ppv = &This->IInternetProtocolEx_iface; }else if(IsEqualGUID(&IID_IInternetProtocolEx, riid)) { TRACE("(%p)->(IID_IInternetProtocolEx %p)\n", This, ppv); *ppv = &This->IInternetProtocolEx_iface; }else if(IsEqualGUID(&IID_IInternetPriority, riid)) { TRACE("(%p)->(IID_IInternetPriority %p)\n", This, ppv); *ppv = &This->IInternetPriority_iface; }else if(IsEqualGUID(&IID_IWinInetInfo, riid)) { TRACE("(%p)->(IID_IWinInetInfo %p)\n", This, ppv); *ppv = &This->IWinInetHttpInfo_iface; }else if(IsEqualGUID(&IID_IWinInetHttpInfo, riid)) { TRACE("(%p)->(IID_IWinInetHttpInfo %p)\n", This, ppv); *ppv = &This->IWinInetHttpInfo_iface; }else { *ppv = NULL; WARN("not supported interface %s\n", debugstr_guid(riid)); return E_NOINTERFACE; } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
static ULONG WINAPI HttpProtocolUnk_AddRef(IUnknown *iface) { HttpProtocol *This = impl_from_IUnknown(iface); LONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static HRESULT WINAPI IUnknownImpl_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { IDirectSoundFullDuplexImpl *This = impl_from_IUnknown(iface); TRACE("(%p,%s,%p)\n", This, debugstr_guid(riid), ppv); if (!ppv) { WARN("invalid parameter\n"); return E_INVALIDARG; } if (IsEqualIID(riid, &IID_IUnknown)) { IUnknown_AddRef(&This->IUnknown_iface); *ppv = &This->IUnknown_iface; return S_OK; } else if (IsEqualIID(riid, &IID_IDirectSoundFullDuplex)) { IDirectSoundFullDuplex_AddRef(&This->IDirectSoundFullDuplex_iface); *ppv = &This->IDirectSoundFullDuplex_iface; return S_OK; } else if (This->ds8_unk && (IsEqualIID(riid, &IID_IDirectSound) || IsEqualIID(riid, &IID_IDirectSound8))) return IUnknown_QueryInterface(This->ds8_unk, riid, ppv); else if (This->dsc8_unk && IsEqualIID(riid, &IID_IDirectSoundCapture)) return IUnknown_QueryInterface(This->dsc8_unk, riid, ppv); *ppv = NULL; return E_NOINTERFACE; }
static ULONG WINAPI threadref_AddRef(IUnknown *iface) { threadref * This = impl_from_IUnknown(iface); TRACE("(%p)\n", This); return InterlockedIncrement(This->ref); }
static HRESULT WINAPI ExtServUnk_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { ExtensionService *This = impl_from_IUnknown(iface); *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IUnknown_inner; } else if(IsEqualGUID(&IID_IAuthenticate, riid)) { TRACE("(%p)->(IID_IAuthenticate %p)\n", This, ppv); *ppv = &This->IAuthenticate_iface; } else if(IsEqualGUID(&IID_IHttpNegotiate, riid)) { TRACE("(%p)->(IID_IHttpNegotiate %p)\n", This, ppv); *ppv = &This->IHttpNegotiate_iface; } else if(IsEqualGUID(&IID_IExtensionServices, riid)) { TRACE("(%p)->(IID_IExtensionServices %p)\n", This, ppv); *ppv = &This->IExtensionServices_iface; } if(*ppv) { IUnknown_AddRef((IUnknown*)*ppv); return S_OK; } FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); return E_NOINTERFACE; }
static HRESULT d2d_dc_render_target_present(IUnknown *outer_unknown) { struct d2d_dc_render_target *render_target = impl_from_IUnknown(outer_unknown); const RECT *dst_rect = &render_target->dst_rect; RECT empty_rect; HDC src_hdc; HRESULT hr; if (!render_target->hdc) return D2DERR_WRONG_STATE; if (FAILED(hr = IDXGISurface1_GetDC(render_target->dxgi_surface, FALSE, &src_hdc))) { WARN("GetDC() failed, %#x.\n", hr); return S_OK; } BitBlt(render_target->hdc, dst_rect->left, dst_rect->top, dst_rect->right - dst_rect->left, dst_rect->bottom - dst_rect->top, src_hdc, 0, 0, SRCCOPY); SetRectEmpty(&empty_rect); IDXGISurface1_ReleaseDC(render_target->dxgi_surface, &empty_rect); return S_OK; }
/* SampleGrabber inner IUnknown */ static HRESULT WINAPI SampleGrabber_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { SG_Impl *This = impl_from_IUnknown(iface); TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); *ppv = NULL; if (IsEqualIID(riid, &IID_IUnknown)) *ppv = &This->IUnknown_inner; else if (IsEqualIID(riid, &IID_IPersist) || IsEqualIID(riid, &IID_IMediaFilter) || IsEqualIID(riid, &IID_IBaseFilter)) *ppv = &This->filter.IBaseFilter_iface; else if (IsEqualIID(riid, &IID_ISampleGrabber)) *ppv = &This->ISampleGrabber_iface; else if (IsEqualIID(riid, &IID_IMediaPosition)) return IUnknown_QueryInterface(This->seekthru_unk, riid, ppv); else if (IsEqualIID(riid, &IID_IMediaSeeking)) return IUnknown_QueryInterface(This->seekthru_unk, riid, ppv); else WARN("(%p, %s,%p): not found\n", This, debugstr_guid(riid), ppv); if (!*ppv) return E_NOINTERFACE; IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
static ULONG WINAPI IUnknown_fnRelease(IUnknown *iface) { IAVIFileImpl *This = impl_from_IUnknown(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); if (!ref) { /* need to write headers to file */ if (This->fDirty) AVIFILE_SaveFile(This); HeapFree(GetProcessHeap(), 0, This->lpFormat); This->lpFormat = NULL; This->cbFormat = 0; HeapFree(GetProcessHeap(), 0, This->extra.lp); This->extra.lp = NULL; This->extra.cb = 0; HeapFree(GetProcessHeap(), 0, This->szFileName); This->szFileName = NULL; if (This->hmmio) { mmioClose(This->hmmio, 0); This->hmmio = NULL; } HeapFree(GetProcessHeap(), 0, This); } return ref; }
static HRESULT WINAPI VideoRendererInner_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { VideoRendererImpl *This = impl_from_IUnknown(iface); TRACE("(%p/%p)->(%s, %p)\n", This, iface, qzdebugstr_guid(riid), ppv); *ppv = NULL; if (IsEqualIID(riid, &IID_IUnknown)) *ppv = &This->IUnknown_inner; else if (IsEqualIID(riid, &IID_IBasicVideo)) *ppv = &This->baseControlVideo.IBasicVideo_iface; else if (IsEqualIID(riid, &IID_IVideoWindow)) *ppv = &This->baseControlWindow.IVideoWindow_iface; else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags)) *ppv = &This->IAMFilterMiscFlags_iface; else { HRESULT hr; hr = BaseRendererImpl_QueryInterface(&This->renderer.filter.IBaseFilter_iface, riid, ppv); if (SUCCEEDED(hr)) return hr; } if (*ppv) { IUnknown_AddRef((IUnknown *)*ppv); return S_OK; } if (!IsEqualIID(riid, &IID_IPin)) FIXME("No interface for %s!\n", qzdebugstr_guid(riid)); return E_NOINTERFACE; }
static ULONG WINAPI unknown_inner_Release(IUnknown *iface) { VfwCapture *This = impl_from_IUnknown(iface); ULONG ref = InterlockedDecrement(&This->filter.refCount); TRACE("(%p) ref=%d\n", This, ref); if (!ref) { IPin *conn = NULL; TRACE("destroying everything\n"); if (This->init) { if (This->filter.state != State_Stopped) qcap_driver_stop(This->driver_info, &This->filter.state); qcap_driver_destroy(This->driver_info); } IPin_ConnectedTo(This->pOutputPin, &conn); if (conn) { IPin_Disconnect(conn); IPin_Disconnect(This->pOutputPin); IPin_Release(conn); } IPin_Release(This->pOutputPin); BaseFilter_Destroy(&This->filter); CoTaskMemFree(This); ObjectRefCount(FALSE); } return ref; }
static HRESULT WINAPI ITextServicesImpl_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { ITextServicesImpl *This = impl_from_IUnknown(iface); TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv); if (IsEqualIID(riid, &IID_IUnknown)) *ppv = &This->IUnknown_inner; else if (IsEqualIID(riid, &IID_ITextServices)) *ppv = &This->ITextServices_iface; else if (IsEqualIID(riid, &IID_IRichEditOle) || IsEqualIID(riid, &IID_ITextDocument)) { if (!This->editor->reOle) if (!CreateIRichEditOle(This->outer_unk, This->editor, (void **)(&This->editor->reOle))) return E_OUTOFMEMORY; if (IsEqualIID(riid, &IID_ITextDocument)) ME_GetITextDocumentInterface(This->editor->reOle, ppv); else *ppv = This->editor->reOle; } else { *ppv = NULL; FIXME("Unknown interface: %s\n", debugstr_guid(riid)); return E_NOINTERFACE; } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
/* VfwCapture inner IUnknown */ static HRESULT WINAPI unknown_inner_QueryInterface(IUnknown *iface, REFIID riid, void **ret_iface) { VfwCapture *This = impl_from_IUnknown(iface); TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ret_iface); *ret_iface = NULL; if (IsEqualIID(riid, &IID_IUnknown)) *ret_iface = &This->IUnknown_inner; else if (IsEqualIID(riid, &IID_IPersist) || IsEqualIID(riid, &IID_IMediaFilter) || IsEqualIID(riid, &IID_IBaseFilter)) *ret_iface = &This->filter.IBaseFilter_iface; else if (IsEqualIID(riid, &IID_IPersistPropertyBag)) *ret_iface = &This->IPersistPropertyBag_iface; else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags)) FIXME("IAMFilterMiscFlags not supported yet!\n"); else if (IsEqualIID(riid, &IID_ISpecifyPropertyPages)) FIXME("ISpecifyPropertyPages not supported yet!\n"); else if (IsEqualIID(riid, &IID_IAMVfwCaptureDialogs)) FIXME("IAMVfwCaptureDialogs not supported yet!\n"); else if (IsEqualIID(riid, &IID_IAMStreamConfig)) *ret_iface = &This->IAMStreamConfig_iface; else if (IsEqualIID(riid, &IID_IAMVideoProcAmp)) *ret_iface = &This->IAMVideoProcAmp_iface; else WARN("(%p, %s, %p): not found\n", This, debugstr_guid(riid), ret_iface); if (!*ret_iface) return E_NOINTERFACE; IUnknown_AddRef((IUnknown*)*ret_iface); return S_OK; }
static ULONG WINAPI IiFTMUnknown_fnAddRef (IUnknown * iface) { FTMarshalImpl *This = impl_from_IUnknown(iface); TRACE ("\n"); return InterlockedIncrement (&This->ref); }
static ULONG WINAPI Function_Release(IUnknown *iface) { func_disp_t *This = impl_from_IUnknown(iface); TRACE("(%p)\n", This); return IDispatchEx_Release(&This->obj->IDispatchEx_iface); }
static HRESULT WINAPI wrapper_QueryInterface(IUnknown *iface, REFIID riid, void **ppv) { iface_wrapper_t *This = impl_from_IUnknown(iface); TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); return IUnknown_QueryInterface(This->ref_unk, riid, ppv); }
static HRESULT STDMETHODCALLTYPE d2d_wic_render_target_QueryInterface(IUnknown *iface, REFIID iid, void **out) { struct d2d_wic_render_target *render_target = impl_from_IUnknown(iface); TRACE("iface %p, iid %s, out %p.\n", iface, debugstr_guid(iid), out); return IUnknown_QueryInterface(render_target->dxgi_inner, iid, out); }
static ULONG WINAPI VideoRendererInner_AddRef(IUnknown *iface) { VideoRendererImpl *This = impl_from_IUnknown(iface); ULONG refCount = BaseFilterImpl_AddRef(&This->renderer.filter.IBaseFilter_iface); TRACE("(%p)->(): new ref = %d\n", This, refCount); return refCount; }
static ULONG WINAPI Timeline_AddRef(IUnknown *iface) { TimelineImpl *This = impl_from_IUnknown(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) new ref = %u\n", This, ref); return ref; }
static ULONG WINAPI IUnknown_fnAddRef(IUnknown *iface) { IAVIFileImpl *This = impl_from_IUnknown(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static ULONG STDMETHODCALLTYPE d2d_wic_render_target_AddRef(IUnknown *iface) { struct d2d_wic_render_target *render_target = impl_from_IUnknown(iface); ULONG refcount = InterlockedIncrement(&render_target->refcount); TRACE("%p increasing refcount to %u.\n", iface, refcount); return refcount; }
static ULONG WINAPI MediaDet_inner_AddRef(IUnknown *iface) { MediaDetImpl *This = impl_from_IUnknown(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) new ref = %u\n", This, ref); return ref; }
static HRESULT WINAPI wrapper_AddRef(IUnknown *iface) { iface_wrapper_t *This = impl_from_IUnknown(iface); LONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static ULONG WINAPI SampleGrabber_AddRef(IUnknown *iface) { SG_Impl *This = impl_from_IUnknown(iface); ULONG ref = BaseFilterImpl_AddRef(&This->filter.IBaseFilter_iface); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static ULONG WINAPI ExtServUnk_AddRef(IUnknown *iface) { ExtensionService *This = impl_from_IUnknown(iface); LONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static ULONG STDMETHODCALLTYPE dxgi_surface_inner_AddRef(IUnknown *iface) { struct dxgi_surface *surface = impl_from_IUnknown(iface); ULONG refcount = InterlockedIncrement(&surface->refcount); TRACE("%p increasing refcount to %u.\n", surface, refcount); return refcount; }
static ULONG WINAPI Function_AddRef(IUnknown *iface) { func_disp_t *This = impl_from_IUnknown(iface); LONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static ULONG WINAPI unknown_inner_AddRef(IUnknown *iface) { VfwCapture *This = impl_from_IUnknown(iface); ULONG ref = BaseFilterImpl_AddRef(&This->filter.IBaseFilter_iface); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static ULONG WINAPI StgMedUnk_AddRef(IUnknown *iface) { stgmed_buf_t *This = impl_from_IUnknown(iface); LONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static ULONG WINAPI Internal_Release(IUnknown *iface) { ULONG ref; stillimage *This = impl_from_IUnknown(iface); ref = InterlockedDecrement(&This->ref); if (ref == 0) HeapFree(GetProcessHeap(), 0, This); return ref; }
static ULONG WINAPI IUnknownImpl_Release(IUnknown *iface) { IDirectSoundCaptureImpl *This = impl_from_IUnknown(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); if (!ref && !InterlockedDecrement(&This->numIfaces)) capture_destroy(This); return ref; }