2 * Implementation of IMediaSeeking for FilterGraph.
5 * FIXME - this interface should be allocated as a plug-in(?)
7 * hidenori@a2.ctktv.ne.jp
17 #include "wine/obj_base.h"
18 #include "wine/obj_oleaut.h"
23 #include "debugtools.h"
24 DEFAULT_DEBUG_CHANNEL(quartz
);
26 #include "quartz_private.h"
32 IMediaSeeking_fnQueryInterface(IMediaSeeking
* iface
,REFIID riid
,void** ppobj
)
34 CFilterGraph_THIS(iface
,mediaseeking
);
36 TRACE("(%p)->()\n",This
);
38 return IUnknown_QueryInterface(This
->unk
.punkControl
,riid
,ppobj
);
42 IMediaSeeking_fnAddRef(IMediaSeeking
* iface
)
44 CFilterGraph_THIS(iface
,mediaseeking
);
46 TRACE("(%p)->()\n",This
);
48 return IUnknown_AddRef(This
->unk
.punkControl
);
52 IMediaSeeking_fnRelease(IMediaSeeking
* iface
)
54 CFilterGraph_THIS(iface
,mediaseeking
);
56 TRACE("(%p)->()\n",This
);
58 return IUnknown_Release(This
->unk
.punkControl
);
63 IMediaSeeking_fnGetCapabilities(IMediaSeeking
* iface
,DWORD
* pdwCaps
)
65 CFilterGraph_THIS(iface
,mediaseeking
);
67 FIXME("(%p)->() stub!\n",This
);
73 IMediaSeeking_fnCheckCapabilities(IMediaSeeking
* iface
,DWORD
* pdwCaps
)
75 CFilterGraph_THIS(iface
,mediaseeking
);
77 FIXME("(%p)->() stub!\n",This
);
83 IMediaSeeking_fnIsFormatSupported(IMediaSeeking
* iface
,const GUID
* pidFormat
)
85 CFilterGraph_THIS(iface
,mediaseeking
);
87 FIXME("(%p)->() stub!\n",This
);
93 IMediaSeeking_fnQueryPreferredFormat(IMediaSeeking
* iface
,GUID
* pidFormat
)
95 CFilterGraph_THIS(iface
,mediaseeking
);
97 FIXME("(%p)->() stub!\n",This
);
102 static HRESULT WINAPI
103 IMediaSeeking_fnGetTimeFormat(IMediaSeeking
* iface
,GUID
* pidFormat
)
105 CFilterGraph_THIS(iface
,mediaseeking
);
107 FIXME("(%p)->() stub!\n",This
);
112 static HRESULT WINAPI
113 IMediaSeeking_fnIsUsingTimeFormat(IMediaSeeking
* iface
,const GUID
* pidFormat
)
115 CFilterGraph_THIS(iface
,mediaseeking
);
117 FIXME("(%p)->() stub!\n",This
);
122 static HRESULT WINAPI
123 IMediaSeeking_fnSetTimeFormat(IMediaSeeking
* iface
,const GUID
* pidFormat
)
125 CFilterGraph_THIS(iface
,mediaseeking
);
127 FIXME("(%p)->() stub!\n",This
);
132 static HRESULT WINAPI
133 IMediaSeeking_fnGetDuration(IMediaSeeking
* iface
,LONGLONG
* pllDuration
)
135 CFilterGraph_THIS(iface
,mediaseeking
);
137 /* the following line may produce too many FIXMEs... */
138 FIXME("(%p)->() stub!\n",This
);
143 static HRESULT WINAPI
144 IMediaSeeking_fnGetStopPosition(IMediaSeeking
* iface
,LONGLONG
* pllPos
)
146 CFilterGraph_THIS(iface
,mediaseeking
);
148 FIXME("(%p)->() stub!\n",This
);
153 static HRESULT WINAPI
154 IMediaSeeking_fnGetCurrentPosition(IMediaSeeking
* iface
,LONGLONG
* pllPos
)
156 CFilterGraph_THIS(iface
,mediaseeking
);
158 FIXME("(%p)->() stub!\n",This
);
163 static HRESULT WINAPI
164 IMediaSeeking_fnConvertTimeFormat(IMediaSeeking
* iface
,LONGLONG
* pllOut
,const GUID
* pidFmtOut
,LONGLONG llIn
,const GUID
* pidFmtIn
)
166 CFilterGraph_THIS(iface
,mediaseeking
);
168 FIXME("(%p)->() stub!\n",This
);
173 static HRESULT WINAPI
174 IMediaSeeking_fnSetPositions(IMediaSeeking
* iface
,LONGLONG
* pllCur
,DWORD dwCurFlags
,LONGLONG
* pllStop
,DWORD dwStopFlags
)
176 CFilterGraph_THIS(iface
,mediaseeking
);
178 FIXME("(%p)->() stub!\n",This
);
183 static HRESULT WINAPI
184 IMediaSeeking_fnGetPositions(IMediaSeeking
* iface
,LONGLONG
* pllCur
,LONGLONG
* pllStop
)
186 CFilterGraph_THIS(iface
,mediaseeking
);
188 FIXME("(%p)->() stub!\n",This
);
193 static HRESULT WINAPI
194 IMediaSeeking_fnGetAvailable(IMediaSeeking
* iface
,LONGLONG
* pllFirst
,LONGLONG
* pllLast
)
196 CFilterGraph_THIS(iface
,mediaseeking
);
198 FIXME("(%p)->() stub!\n",This
);
203 static HRESULT WINAPI
204 IMediaSeeking_fnSetRate(IMediaSeeking
* iface
,double dblRate
)
206 CFilterGraph_THIS(iface
,mediaseeking
);
208 FIXME("(%p)->() stub!\n",This
);
213 static HRESULT WINAPI
214 IMediaSeeking_fnGetRate(IMediaSeeking
* iface
,double* pdblRate
)
216 CFilterGraph_THIS(iface
,mediaseeking
);
218 FIXME("(%p)->() stub!\n",This
);
223 static HRESULT WINAPI
224 IMediaSeeking_fnGetPreroll(IMediaSeeking
* iface
,LONGLONG
* pllPreroll
)
226 CFilterGraph_THIS(iface
,mediaseeking
);
228 FIXME("(%p)->() stub!\n",This
);
236 static ICOM_VTABLE(IMediaSeeking
) imediaseeking
=
238 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
239 /* IUnknown fields */
240 IMediaSeeking_fnQueryInterface
,
241 IMediaSeeking_fnAddRef
,
242 IMediaSeeking_fnRelease
,
243 /* IMediaSeeking fields */
244 IMediaSeeking_fnGetCapabilities
,
245 IMediaSeeking_fnCheckCapabilities
,
246 IMediaSeeking_fnIsFormatSupported
,
247 IMediaSeeking_fnQueryPreferredFormat
,
248 IMediaSeeking_fnGetTimeFormat
,
249 IMediaSeeking_fnIsUsingTimeFormat
,
250 IMediaSeeking_fnSetTimeFormat
,
251 IMediaSeeking_fnGetDuration
,
252 IMediaSeeking_fnGetStopPosition
,
253 IMediaSeeking_fnGetCurrentPosition
,
254 IMediaSeeking_fnConvertTimeFormat
,
255 IMediaSeeking_fnSetPositions
,
256 IMediaSeeking_fnGetPositions
,
257 IMediaSeeking_fnGetAvailable
,
258 IMediaSeeking_fnSetRate
,
259 IMediaSeeking_fnGetRate
,
260 IMediaSeeking_fnGetPreroll
,
263 HRESULT
CFilterGraph_InitIMediaSeeking( CFilterGraph
* pfg
)
266 ICOM_VTBL(&pfg
->mediaseeking
) = &imediaseeking
;
271 void CFilterGraph_UninitIMediaSeeking( CFilterGraph
* pfg
)