2 * Implementation of IMediaSeeking for FilterGraph.
5 * FIXME - this interface should be allocated as a plug-in(?)
7 * Copyright (C) Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
35 #include "wine/debug.h"
36 WINE_DEFAULT_DEBUG_CHANNEL(quartz);
38 #include "quartz_private.h"
44 IMediaSeeking_fnQueryInterface(IMediaSeeking* iface,REFIID riid,void** ppobj)
46 CFilterGraph_THIS(iface,mediaseeking);
48 TRACE("(%p)->()\n",This);
50 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
54 IMediaSeeking_fnAddRef(IMediaSeeking* iface)
56 CFilterGraph_THIS(iface,mediaseeking);
58 TRACE("(%p)->()\n",This);
60 return IUnknown_AddRef(This->unk.punkControl);
64 IMediaSeeking_fnRelease(IMediaSeeking* iface)
66 CFilterGraph_THIS(iface,mediaseeking);
68 TRACE("(%p)->()\n",This);
70 return IUnknown_Release(This->unk.punkControl);
75 IMediaSeeking_fnGetCapabilities(IMediaSeeking* iface,DWORD* pdwCaps)
77 CFilterGraph_THIS(iface,mediaseeking);
79 FIXME("(%p)->() stub!\n",This);
85 IMediaSeeking_fnCheckCapabilities(IMediaSeeking* iface,DWORD* pdwCaps)
87 CFilterGraph_THIS(iface,mediaseeking);
89 FIXME("(%p)->() stub!\n",This);
95 IMediaSeeking_fnIsFormatSupported(IMediaSeeking* iface,const GUID* pidFormat)
97 CFilterGraph_THIS(iface,mediaseeking);
99 FIXME("(%p)->() stub!\n",This);
104 static HRESULT WINAPI
105 IMediaSeeking_fnQueryPreferredFormat(IMediaSeeking* iface,GUID* pidFormat)
107 CFilterGraph_THIS(iface,mediaseeking);
109 FIXME("(%p)->() stub!\n",This);
114 static HRESULT WINAPI
115 IMediaSeeking_fnGetTimeFormat(IMediaSeeking* iface,GUID* pidFormat)
117 CFilterGraph_THIS(iface,mediaseeking);
119 FIXME("(%p)->() stub!\n",This);
124 static HRESULT WINAPI
125 IMediaSeeking_fnIsUsingTimeFormat(IMediaSeeking* iface,const GUID* pidFormat)
127 CFilterGraph_THIS(iface,mediaseeking);
129 FIXME("(%p)->() stub!\n",This);
134 static HRESULT WINAPI
135 IMediaSeeking_fnSetTimeFormat(IMediaSeeking* iface,const GUID* pidFormat)
137 CFilterGraph_THIS(iface,mediaseeking);
139 FIXME("(%p)->() stub!\n",This);
144 static HRESULT WINAPI
145 IMediaSeeking_fnGetDuration(IMediaSeeking* iface,LONGLONG* pllDuration)
147 CFilterGraph_THIS(iface,mediaseeking);
149 /* the following line may produce too many FIXMEs... */
150 FIXME("(%p)->() stub!\n",This);
155 static HRESULT WINAPI
156 IMediaSeeking_fnGetStopPosition(IMediaSeeking* iface,LONGLONG* pllPos)
158 CFilterGraph_THIS(iface,mediaseeking);
160 FIXME("(%p)->() stub!\n",This);
165 static HRESULT WINAPI
166 IMediaSeeking_fnGetCurrentPosition(IMediaSeeking* iface,LONGLONG* pllPos)
168 CFilterGraph_THIS(iface,mediaseeking);
170 FIXME("(%p)->() stub!\n",This);
175 static HRESULT WINAPI
176 IMediaSeeking_fnConvertTimeFormat(IMediaSeeking* iface,LONGLONG* pllOut,const GUID* pidFmtOut,LONGLONG llIn,const GUID* pidFmtIn)
178 CFilterGraph_THIS(iface,mediaseeking);
180 FIXME("(%p)->() stub!\n",This);
185 static HRESULT WINAPI
186 IMediaSeeking_fnSetPositions(IMediaSeeking* iface,LONGLONG* pllCur,DWORD dwCurFlags,LONGLONG* pllStop,DWORD dwStopFlags)
188 CFilterGraph_THIS(iface,mediaseeking);
190 FIXME("(%p)->() stub!\n",This);
195 static HRESULT WINAPI
196 IMediaSeeking_fnGetPositions(IMediaSeeking* iface,LONGLONG* pllCur,LONGLONG* pllStop)
198 CFilterGraph_THIS(iface,mediaseeking);
200 FIXME("(%p)->() stub!\n",This);
205 static HRESULT WINAPI
206 IMediaSeeking_fnGetAvailable(IMediaSeeking* iface,LONGLONG* pllFirst,LONGLONG* pllLast)
208 CFilterGraph_THIS(iface,mediaseeking);
210 FIXME("(%p)->() stub!\n",This);
215 static HRESULT WINAPI
216 IMediaSeeking_fnSetRate(IMediaSeeking* iface,double dblRate)
218 CFilterGraph_THIS(iface,mediaseeking);
220 FIXME("(%p)->() stub!\n",This);
225 static HRESULT WINAPI
226 IMediaSeeking_fnGetRate(IMediaSeeking* iface,double* pdblRate)
228 CFilterGraph_THIS(iface,mediaseeking);
230 FIXME("(%p)->() stub!\n",This);
235 static HRESULT WINAPI
236 IMediaSeeking_fnGetPreroll(IMediaSeeking* iface,LONGLONG* pllPreroll)
238 CFilterGraph_THIS(iface,mediaseeking);
240 FIXME("(%p)->() stub!\n",This);
248 static ICOM_VTABLE(IMediaSeeking) imediaseeking =
250 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
251 /* IUnknown fields */
252 IMediaSeeking_fnQueryInterface,
253 IMediaSeeking_fnAddRef,
254 IMediaSeeking_fnRelease,
255 /* IMediaSeeking fields */
256 IMediaSeeking_fnGetCapabilities,
257 IMediaSeeking_fnCheckCapabilities,
258 IMediaSeeking_fnIsFormatSupported,
259 IMediaSeeking_fnQueryPreferredFormat,
260 IMediaSeeking_fnGetTimeFormat,
261 IMediaSeeking_fnIsUsingTimeFormat,
262 IMediaSeeking_fnSetTimeFormat,
263 IMediaSeeking_fnGetDuration,
264 IMediaSeeking_fnGetStopPosition,
265 IMediaSeeking_fnGetCurrentPosition,
266 IMediaSeeking_fnConvertTimeFormat,
267 IMediaSeeking_fnSetPositions,
268 IMediaSeeking_fnGetPositions,
269 IMediaSeeking_fnGetAvailable,
270 IMediaSeeking_fnSetRate,
271 IMediaSeeking_fnGetRate,
272 IMediaSeeking_fnGetPreroll,
275 HRESULT CFilterGraph_InitIMediaSeeking( CFilterGraph* pfg )
278 ICOM_VTBL(&pfg->mediaseeking) = &imediaseeking;
283 void CFilterGraph_UninitIMediaSeeking( CFilterGraph* pfg )