Started implementing AVI splitter.
[wine.git] / dlls / quartz / impos.c
blob24bf13e74d8284fdd7247f54f06fd5dd7810252e
1 /*
2 * Implementation of IMediaPosition for FilterGraph.
4 * FIXME - stub.
6 * hidenori@a2.ctktv.ne.jp
7 */
9 #include "config.h"
11 #include "windef.h"
12 #include "winbase.h"
13 #include "wingdi.h"
14 #include "winuser.h"
15 #include "winerror.h"
16 #include "strmif.h"
17 #include "control.h"
18 #include "uuids.h"
20 #include "debugtools.h"
21 DEFAULT_DEBUG_CHANNEL(quartz);
23 #include "quartz_private.h"
24 #include "fgraph.h"
27 static HRESULT WINAPI
28 IMediaPosition_fnQueryInterface(IMediaPosition* iface,REFIID riid,void** ppobj)
30 CFilterGraph_THIS(iface,mediaposition);
32 TRACE("(%p)->()\n",This);
34 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
37 static ULONG WINAPI
38 IMediaPosition_fnAddRef(IMediaPosition* iface)
40 CFilterGraph_THIS(iface,mediaposition);
42 TRACE("(%p)->()\n",This);
44 return IUnknown_AddRef(This->unk.punkControl);
47 static ULONG WINAPI
48 IMediaPosition_fnRelease(IMediaPosition* iface)
50 CFilterGraph_THIS(iface,mediaposition);
52 TRACE("(%p)->()\n",This);
54 return IUnknown_Release(This->unk.punkControl);
57 static HRESULT WINAPI
58 IMediaPosition_fnGetTypeInfoCount(IMediaPosition* iface,UINT* pcTypeInfo)
60 CFilterGraph_THIS(iface,mediaposition);
62 TRACE("(%p)->()\n",This);
64 return IDispatch_GetTypeInfoCount(
65 CFilterGraph_IDispatch(This),pcTypeInfo);
68 static HRESULT WINAPI
69 IMediaPosition_fnGetTypeInfo(IMediaPosition* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
71 CFilterGraph_THIS(iface,mediaposition);
73 TRACE("(%p)->()\n",This);
75 return IDispatch_GetTypeInfo(
76 CFilterGraph_IDispatch(This),iTypeInfo,lcid,ppobj);
79 static HRESULT WINAPI
80 IMediaPosition_fnGetIDsOfNames(IMediaPosition* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
82 CFilterGraph_THIS(iface,mediaposition);
84 TRACE("(%p)->()\n",This);
86 return IDispatch_GetIDsOfNames(
87 CFilterGraph_IDispatch(This),riid,ppwszName,cNames,lcid,pDispId);
90 static HRESULT WINAPI
91 IMediaPosition_fnInvoke(IMediaPosition* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
93 CFilterGraph_THIS(iface,mediaposition);
95 TRACE("(%p)->()\n",This);
97 return IDispatch_Invoke(
98 CFilterGraph_IDispatch(This),
99 DispId,riid,lcid,wFlags,pDispParams,pVarRes,pExcepInfo,puArgErr);
103 static HRESULT WINAPI
104 IMediaPosition_fnget_Duration(IMediaPosition* iface,REFTIME* prefTime)
106 CFilterGraph_THIS(iface,mediaposition);
108 FIXME("(%p)->() stub!\n",This);
110 return E_NOTIMPL;
113 static HRESULT WINAPI
114 IMediaPosition_fnput_CurrentPosition(IMediaPosition* iface,REFTIME refTime)
116 CFilterGraph_THIS(iface,mediaposition);
118 FIXME("(%p)->() stub!\n",This);
120 return E_NOTIMPL;
123 static HRESULT WINAPI
124 IMediaPosition_fnget_CurrentPosition(IMediaPosition* iface,REFTIME* prefTime)
126 CFilterGraph_THIS(iface,mediaposition);
128 FIXME("(%p)->() stub!\n",This);
130 return E_NOTIMPL;
133 static HRESULT WINAPI
134 IMediaPosition_fnget_StopTime(IMediaPosition* iface,REFTIME* prefTime)
136 CFilterGraph_THIS(iface,mediaposition);
138 FIXME("(%p)->() stub!\n",This);
140 return E_NOTIMPL;
143 static HRESULT WINAPI
144 IMediaPosition_fnput_StopTime(IMediaPosition* iface,REFTIME refTime)
146 CFilterGraph_THIS(iface,mediaposition);
148 FIXME("(%p)->() stub!\n",This);
150 return E_NOTIMPL;
153 static HRESULT WINAPI
154 IMediaPosition_fnget_PrerollTime(IMediaPosition* iface,REFTIME* prefTime)
156 CFilterGraph_THIS(iface,mediaposition);
158 FIXME("(%p)->() stub!\n",This);
160 return E_NOTIMPL;
163 static HRESULT WINAPI
164 IMediaPosition_fnput_PrerollTime(IMediaPosition* iface,REFTIME refTime)
166 CFilterGraph_THIS(iface,mediaposition);
168 FIXME("(%p)->() stub!\n",This);
170 return E_NOTIMPL;
173 static HRESULT WINAPI
174 IMediaPosition_fnput_Rate(IMediaPosition* iface,double dblRate)
176 CFilterGraph_THIS(iface,mediaposition);
178 FIXME("(%p)->() stub!\n",This);
180 return E_NOTIMPL;
183 static HRESULT WINAPI
184 IMediaPosition_fnget_Rate(IMediaPosition* iface,double* pdblRate)
186 CFilterGraph_THIS(iface,mediaposition);
188 FIXME("(%p)->() stub!\n",This);
190 return E_NOTIMPL;
193 static HRESULT WINAPI
194 IMediaPosition_fnCanSeekForward(IMediaPosition* iface,LONG* pCanSeek)
196 CFilterGraph_THIS(iface,mediaposition);
198 FIXME("(%p)->() stub!\n",This);
200 return E_NOTIMPL;
203 static HRESULT WINAPI
204 IMediaPosition_fnCanSeekBackward(IMediaPosition* iface,LONG* pCanSeek)
206 CFilterGraph_THIS(iface,mediaposition);
208 FIXME("(%p)->() stub!\n",This);
210 return E_NOTIMPL;
214 static ICOM_VTABLE(IMediaPosition) imediaposition =
216 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
217 /* IUnknown fields */
218 IMediaPosition_fnQueryInterface,
219 IMediaPosition_fnAddRef,
220 IMediaPosition_fnRelease,
221 /* IDispatch fields */
222 IMediaPosition_fnGetTypeInfoCount,
223 IMediaPosition_fnGetTypeInfo,
224 IMediaPosition_fnGetIDsOfNames,
225 IMediaPosition_fnInvoke,
226 /* IMediaPosition fields */
227 IMediaPosition_fnget_Duration,
228 IMediaPosition_fnput_CurrentPosition,
229 IMediaPosition_fnget_CurrentPosition,
230 IMediaPosition_fnget_StopTime,
231 IMediaPosition_fnput_StopTime,
232 IMediaPosition_fnget_PrerollTime,
233 IMediaPosition_fnput_PrerollTime,
234 IMediaPosition_fnput_Rate,
235 IMediaPosition_fnget_Rate,
236 IMediaPosition_fnCanSeekForward,
237 IMediaPosition_fnCanSeekBackward,
241 HRESULT CFilterGraph_InitIMediaPosition( CFilterGraph* pfg )
243 TRACE("(%p)\n",pfg);
244 ICOM_VTBL(&pfg->mediaposition) = &imediaposition;
246 return NOERROR;
249 void CFilterGraph_UninitIMediaPosition( CFilterGraph* pfg )
251 TRACE("(%p)\n",pfg);