/* * Implementation of IMediaSeeking for FilterGraph. * * FIXME - stub. * FIXME - this interface should be allocated as a plug-in(?) * * hidenori@a2.ctktv.ne.jp */ #include "config.h" #include "windef.h" #include "winbase.h" #include "wingdi.h" #include "winuser.h" #include "winerror.h" #include "wine/obj_base.h" #include "wine/obj_oleaut.h" #include "strmif.h" #include "control.h" #include "uuids.h" #include "debugtools.h" DEFAULT_DEBUG_CHANNEL(quartz); #include "quartz_private.h" #include "fgraph.h" static HRESULT WINAPI IMediaSeeking_fnQueryInterface(IMediaSeeking* iface,REFIID riid,void** ppobj) { CFilterGraph_THIS(iface,mediaseeking); TRACE("(%p)->()\n",This); return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj); } static ULONG WINAPI IMediaSeeking_fnAddRef(IMediaSeeking* iface) { CFilterGraph_THIS(iface,mediaseeking); TRACE("(%p)->()\n",This); return IUnknown_AddRef(This->unk.punkControl); } static ULONG WINAPI IMediaSeeking_fnRelease(IMediaSeeking* iface) { CFilterGraph_THIS(iface,mediaseeking); TRACE("(%p)->()\n",This); return IUnknown_Release(This->unk.punkControl); } static HRESULT WINAPI IMediaSeeking_fnGetCapabilities(IMediaSeeking* iface,DWORD* pdwCaps) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnCheckCapabilities(IMediaSeeking* iface,DWORD* pdwCaps) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnIsFormatSupported(IMediaSeeking* iface,const GUID* pidFormat) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnQueryPreferredFormat(IMediaSeeking* iface,GUID* pidFormat) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetTimeFormat(IMediaSeeking* iface,GUID* pidFormat) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnIsUsingTimeFormat(IMediaSeeking* iface,const GUID* pidFormat) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnSetTimeFormat(IMediaSeeking* iface,const GUID* pidFormat) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetDuration(IMediaSeeking* iface,LONGLONG* pllDuration) { CFilterGraph_THIS(iface,mediaseeking); /* the following line may produce too many FIXMEs... */ FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetStopPosition(IMediaSeeking* iface,LONGLONG* pllPos) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetCurrentPosition(IMediaSeeking* iface,LONGLONG* pllPos) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnConvertTimeFormat(IMediaSeeking* iface,LONGLONG* pllOut,const GUID* pidFmtOut,LONGLONG llIn,const GUID* pidFmtIn) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnSetPositions(IMediaSeeking* iface,LONGLONG* pllCur,DWORD dwCurFlags,LONGLONG* pllStop,DWORD dwStopFlags) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetPositions(IMediaSeeking* iface,LONGLONG* pllCur,LONGLONG* pllStop) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetAvailable(IMediaSeeking* iface,LONGLONG* pllFirst,LONGLONG* pllLast) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnSetRate(IMediaSeeking* iface,double dblRate) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetRate(IMediaSeeking* iface,double* pdblRate) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static HRESULT WINAPI IMediaSeeking_fnGetPreroll(IMediaSeeking* iface,LONGLONG* pllPreroll) { CFilterGraph_THIS(iface,mediaseeking); FIXME("(%p)->() stub!\n",This); return E_NOTIMPL; } static ICOM_VTABLE(IMediaSeeking) imediaseeking = { ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE /* IUnknown fields */ IMediaSeeking_fnQueryInterface, IMediaSeeking_fnAddRef, IMediaSeeking_fnRelease, /* IMediaSeeking fields */ IMediaSeeking_fnGetCapabilities, IMediaSeeking_fnCheckCapabilities, IMediaSeeking_fnIsFormatSupported, IMediaSeeking_fnQueryPreferredFormat, IMediaSeeking_fnGetTimeFormat, IMediaSeeking_fnIsUsingTimeFormat, IMediaSeeking_fnSetTimeFormat, IMediaSeeking_fnGetDuration, IMediaSeeking_fnGetStopPosition, IMediaSeeking_fnGetCurrentPosition, IMediaSeeking_fnConvertTimeFormat, IMediaSeeking_fnSetPositions, IMediaSeeking_fnGetPositions, IMediaSeeking_fnGetAvailable, IMediaSeeking_fnSetRate, IMediaSeeking_fnGetRate, IMediaSeeking_fnGetPreroll, }; HRESULT CFilterGraph_InitIMediaSeeking( CFilterGraph* pfg ) { TRACE("(%p)\n",pfg); ICOM_VTBL(&pfg->mediaseeking) = &imediaseeking; return NOERROR; } void CFilterGraph_UninitIMediaSeeking( CFilterGraph* pfg ) { TRACE("(%p)\n",pfg); }