2 * Implementation of IMediaPosition for FilterGraph.
6 * Copyright (C) Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
34 #include "wine/debug.h"
35 WINE_DEFAULT_DEBUG_CHANNEL(quartz);
37 #include "quartz_private.h"
42 IMediaPosition_fnQueryInterface(IMediaPosition* iface,REFIID riid,void** ppobj)
44 CFilterGraph_THIS(iface,mediaposition);
46 TRACE("(%p)->()\n",This);
48 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
52 IMediaPosition_fnAddRef(IMediaPosition* iface)
54 CFilterGraph_THIS(iface,mediaposition);
56 TRACE("(%p)->()\n",This);
58 return IUnknown_AddRef(This->unk.punkControl);
62 IMediaPosition_fnRelease(IMediaPosition* iface)
64 CFilterGraph_THIS(iface,mediaposition);
66 TRACE("(%p)->()\n",This);
68 return IUnknown_Release(This->unk.punkControl);
72 IMediaPosition_fnGetTypeInfoCount(IMediaPosition* iface,UINT* pcTypeInfo)
74 CFilterGraph_THIS(iface,mediaposition);
76 TRACE("(%p)->()\n",This);
78 return IDispatch_GetTypeInfoCount(
79 CFilterGraph_IDispatch(This),pcTypeInfo);
83 IMediaPosition_fnGetTypeInfo(IMediaPosition* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
85 CFilterGraph_THIS(iface,mediaposition);
87 TRACE("(%p)->()\n",This);
89 return IDispatch_GetTypeInfo(
90 CFilterGraph_IDispatch(This),iTypeInfo,lcid,ppobj);
94 IMediaPosition_fnGetIDsOfNames(IMediaPosition* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
96 CFilterGraph_THIS(iface,mediaposition);
98 TRACE("(%p)->()\n",This);
100 return IDispatch_GetIDsOfNames(
101 CFilterGraph_IDispatch(This),riid,ppwszName,cNames,lcid,pDispId);
104 static HRESULT WINAPI
105 IMediaPosition_fnInvoke(IMediaPosition* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
107 CFilterGraph_THIS(iface,mediaposition);
109 TRACE("(%p)->()\n",This);
111 return IDispatch_Invoke(
112 CFilterGraph_IDispatch(This),
113 DispId,riid,lcid,wFlags,pDispParams,pVarRes,pExcepInfo,puArgErr);
117 static HRESULT WINAPI
118 IMediaPosition_fnget_Duration(IMediaPosition* iface,REFTIME* prefTime)
120 CFilterGraph_THIS(iface,mediaposition);
122 FIXME("(%p)->() stub!\n",This);
127 static HRESULT WINAPI
128 IMediaPosition_fnput_CurrentPosition(IMediaPosition* iface,REFTIME refTime)
130 CFilterGraph_THIS(iface,mediaposition);
132 FIXME("(%p)->() stub!\n",This);
137 static HRESULT WINAPI
138 IMediaPosition_fnget_CurrentPosition(IMediaPosition* iface,REFTIME* prefTime)
140 CFilterGraph_THIS(iface,mediaposition);
142 FIXME("(%p)->() stub!\n",This);
147 static HRESULT WINAPI
148 IMediaPosition_fnget_StopTime(IMediaPosition* iface,REFTIME* prefTime)
150 CFilterGraph_THIS(iface,mediaposition);
152 FIXME("(%p)->() stub!\n",This);
157 static HRESULT WINAPI
158 IMediaPosition_fnput_StopTime(IMediaPosition* iface,REFTIME refTime)
160 CFilterGraph_THIS(iface,mediaposition);
162 FIXME("(%p)->() stub!\n",This);
167 static HRESULT WINAPI
168 IMediaPosition_fnget_PrerollTime(IMediaPosition* iface,REFTIME* prefTime)
170 CFilterGraph_THIS(iface,mediaposition);
172 FIXME("(%p)->() stub!\n",This);
177 static HRESULT WINAPI
178 IMediaPosition_fnput_PrerollTime(IMediaPosition* iface,REFTIME refTime)
180 CFilterGraph_THIS(iface,mediaposition);
182 FIXME("(%p)->() stub!\n",This);
187 static HRESULT WINAPI
188 IMediaPosition_fnput_Rate(IMediaPosition* iface,double dblRate)
190 CFilterGraph_THIS(iface,mediaposition);
192 FIXME("(%p)->() stub!\n",This);
197 static HRESULT WINAPI
198 IMediaPosition_fnget_Rate(IMediaPosition* iface,double* pdblRate)
200 CFilterGraph_THIS(iface,mediaposition);
202 FIXME("(%p)->() stub!\n",This);
207 static HRESULT WINAPI
208 IMediaPosition_fnCanSeekForward(IMediaPosition* iface,LONG* pCanSeek)
210 CFilterGraph_THIS(iface,mediaposition);
212 FIXME("(%p)->() stub!\n",This);
217 static HRESULT WINAPI
218 IMediaPosition_fnCanSeekBackward(IMediaPosition* iface,LONG* pCanSeek)
220 CFilterGraph_THIS(iface,mediaposition);
222 FIXME("(%p)->() stub!\n",This);
228 static ICOM_VTABLE(IMediaPosition) imediaposition =
230 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
231 /* IUnknown fields */
232 IMediaPosition_fnQueryInterface,
233 IMediaPosition_fnAddRef,
234 IMediaPosition_fnRelease,
235 /* IDispatch fields */
236 IMediaPosition_fnGetTypeInfoCount,
237 IMediaPosition_fnGetTypeInfo,
238 IMediaPosition_fnGetIDsOfNames,
239 IMediaPosition_fnInvoke,
240 /* IMediaPosition fields */
241 IMediaPosition_fnget_Duration,
242 IMediaPosition_fnput_CurrentPosition,
243 IMediaPosition_fnget_CurrentPosition,
244 IMediaPosition_fnget_StopTime,
245 IMediaPosition_fnput_StopTime,
246 IMediaPosition_fnget_PrerollTime,
247 IMediaPosition_fnput_PrerollTime,
248 IMediaPosition_fnput_Rate,
249 IMediaPosition_fnget_Rate,
250 IMediaPosition_fnCanSeekForward,
251 IMediaPosition_fnCanSeekBackward,
255 HRESULT CFilterGraph_InitIMediaPosition( CFilterGraph* pfg )
258 ICOM_VTBL(&pfg->mediaposition) = &imediaposition;
263 void CFilterGraph_UninitIMediaPosition( CFilterGraph* pfg )