Module: wine Branch: master Commit: 1f7683777babab98197c39e5965ba6f70c01c8d0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1f7683777babab98197c39e596...
Author: Aidan Thornton makosoft@gmail.com Date: Tue Dec 16 18:49:34 2014 +0000
quartz: Implement IFilterGraph2::AddSourceFilterForMoniker.
---
dlls/quartz/filtergraph.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c index 3d495db..fcdd05b 100644 --- a/dlls/quartz/filtergraph.c +++ b/dlls/quartz/filtergraph.c @@ -1737,8 +1737,27 @@ static HRESULT WINAPI FilterGraph2_AddSourceFilterForMoniker(IFilterGraph2 *ifac IMoniker *pMoniker, IBindCtx *pCtx, LPCWSTR lpcwstrFilterName, IBaseFilter **ppFilter) { IFilterGraphImpl *This = impl_from_IFilterGraph2(iface); + HRESULT hr; + IBaseFilter* pfilter; + + TRACE("(%p/%p)->(%p %p %s %p)\n", This, iface, pMoniker, pCtx, debugstr_w(lpcwstrFilterName), ppFilter); + + hr = IMoniker_BindToObject(pMoniker, pCtx, NULL, &IID_IBaseFilter, (void**)&pfilter); + if(FAILED(hr)) { + WARN("Unable to bind moniker to filter object (%x)\n", hr); + return hr; + } + + hr = IFilterGraph2_AddFilter(iface, pfilter, lpcwstrFilterName); + if (FAILED(hr)) { + WARN("Unable to add filter (%x)\n", hr); + IBaseFilter_Release(pfilter); + return hr; + }
- TRACE("(%p/%p)->(%p %p %s %p): stub !!!\n", This, iface, pMoniker, pCtx, debugstr_w(lpcwstrFilterName), ppFilter); + if(ppFilter) + *ppFilter = pfilter; + else IBaseFilter_Release(pfilter);
return S_OK; }