2 * A pass-through class for IMediaSeeking.
4 * hidenori@a2.ctktv.ne.jp
14 #include "wine/obj_base.h"
19 #include "debugtools.h"
20 DEFAULT_DEBUG_CHANNEL(quartz
);
22 #include "quartz_private.h"
26 #define QUERYSEEKPASS \
27 IMediaSeeking* pSeek; \
29 hr = CPassThruImpl_QuerySeekPass( This, &pSeek ); \
30 if ( FAILED(hr) ) return hr;
34 IMediaSeeking_fnQueryInterface(IMediaSeeking
* iface
,REFIID riid
,void** ppobj
)
36 CPassThruImpl_THIS(iface
,mseek
);
38 TRACE("(%p)->()\n",This
);
40 return IUnknown_QueryInterface(This
->punk
,riid
,ppobj
);
44 IMediaSeeking_fnAddRef(IMediaSeeking
* iface
)
46 CPassThruImpl_THIS(iface
,mseek
);
48 TRACE("(%p)->()\n",This
);
50 return IUnknown_AddRef(This
->punk
);
54 IMediaSeeking_fnRelease(IMediaSeeking
* iface
)
56 CPassThruImpl_THIS(iface
,mseek
);
58 TRACE("(%p)->()\n",This
);
60 return IUnknown_Release(This
->punk
);
65 IMediaSeeking_fnGetCapabilities(IMediaSeeking
* iface
,DWORD
* pdwCaps
)
67 CPassThruImpl_THIS(iface
,mseek
);
70 TRACE("(%p)->()\n",This
);
72 return IMediaSeeking_GetCapabilities(pSeek
,pdwCaps
);
76 IMediaSeeking_fnCheckCapabilities(IMediaSeeking
* iface
,DWORD
* pdwCaps
)
78 CPassThruImpl_THIS(iface
,mseek
);
81 TRACE("(%p)->()\n",This
);
83 return IMediaSeeking_CheckCapabilities(pSeek
,pdwCaps
);
87 IMediaSeeking_fnIsFormatSupported(IMediaSeeking
* iface
,const GUID
* pidFormat
)
89 CPassThruImpl_THIS(iface
,mseek
);
92 TRACE("(%p)->()\n",This
);
94 return IMediaSeeking_IsFormatSupported(pSeek
,pidFormat
);
98 IMediaSeeking_fnQueryPreferredFormat(IMediaSeeking
* iface
,GUID
* pidFormat
)
100 CPassThruImpl_THIS(iface
,mseek
);
103 TRACE("(%p)->()\n",This
);
105 return IMediaSeeking_QueryPreferredFormat(pSeek
,pidFormat
);
108 static HRESULT WINAPI
109 IMediaSeeking_fnGetTimeFormat(IMediaSeeking
* iface
,GUID
* pidFormat
)
111 CPassThruImpl_THIS(iface
,mseek
);
114 TRACE("(%p)->()\n",This
);
116 return IMediaSeeking_GetTimeFormat(pSeek
,pidFormat
);
119 static HRESULT WINAPI
120 IMediaSeeking_fnIsUsingTimeFormat(IMediaSeeking
* iface
,const GUID
* pidFormat
)
122 CPassThruImpl_THIS(iface
,mseek
);
125 TRACE("(%p)->()\n",This
);
127 return IMediaSeeking_IsUsingTimeFormat(pSeek
,pidFormat
);
130 static HRESULT WINAPI
131 IMediaSeeking_fnSetTimeFormat(IMediaSeeking
* iface
,const GUID
* pidFormat
)
133 CPassThruImpl_THIS(iface
,mseek
);
136 TRACE("(%p)->()\n",This
);
138 return IMediaSeeking_SetTimeFormat(pSeek
,pidFormat
);
141 static HRESULT WINAPI
142 IMediaSeeking_fnGetDuration(IMediaSeeking
* iface
,LONGLONG
* pllDuration
)
144 CPassThruImpl_THIS(iface
,mseek
);
147 TRACE("(%p)->()\n",This
);
149 return IMediaSeeking_GetDuration(pSeek
,pllDuration
);
152 static HRESULT WINAPI
153 IMediaSeeking_fnGetStopPosition(IMediaSeeking
* iface
,LONGLONG
* pllPos
)
155 CPassThruImpl_THIS(iface
,mseek
);
158 TRACE("(%p)->()\n",This
);
160 return IMediaSeeking_GetStopPosition(pSeek
,pllPos
);
163 static HRESULT WINAPI
164 IMediaSeeking_fnGetCurrentPosition(IMediaSeeking
* iface
,LONGLONG
* pllPos
)
166 CPassThruImpl_THIS(iface
,mseek
);
169 TRACE("(%p)->()\n",This
);
171 return IMediaSeeking_GetCurrentPosition(pSeek
,pllPos
);
174 static HRESULT WINAPI
175 IMediaSeeking_fnConvertTimeFormat(IMediaSeeking
* iface
,LONGLONG
* pllOut
,const GUID
* pidFmtOut
,LONGLONG llIn
,const GUID
* pidFmtIn
)
177 CPassThruImpl_THIS(iface
,mseek
);
180 TRACE("(%p)->()\n",This
);
182 return IMediaSeeking_ConvertTimeFormat(pSeek
,pllOut
,pidFmtOut
,llIn
,pidFmtIn
);
185 static HRESULT WINAPI
186 IMediaSeeking_fnSetPositions(IMediaSeeking
* iface
,LONGLONG
* pllCur
,DWORD dwCurFlags
,LONGLONG
* pllStop
,DWORD dwStopFlags
)
188 CPassThruImpl_THIS(iface
,mseek
);
191 TRACE("(%p)->()\n",This
);
193 return IMediaSeeking_SetPositions(pSeek
,pllCur
,dwCurFlags
,pllStop
,dwStopFlags
);
196 static HRESULT WINAPI
197 IMediaSeeking_fnGetPositions(IMediaSeeking
* iface
,LONGLONG
* pllCur
,LONGLONG
* pllStop
)
199 CPassThruImpl_THIS(iface
,mseek
);
202 TRACE("(%p)->()\n",This
);
204 return IMediaSeeking_GetPositions(pSeek
,pllCur
,pllStop
);
207 static HRESULT WINAPI
208 IMediaSeeking_fnGetAvailable(IMediaSeeking
* iface
,LONGLONG
* pllFirst
,LONGLONG
* pllLast
)
210 CPassThruImpl_THIS(iface
,mseek
);
213 TRACE("(%p)->()\n",This
);
215 return IMediaSeeking_GetAvailable(pSeek
,pllFirst
,pllLast
);
218 static HRESULT WINAPI
219 IMediaSeeking_fnSetRate(IMediaSeeking
* iface
,double dblRate
)
221 CPassThruImpl_THIS(iface
,mseek
);
224 TRACE("(%p)->()\n",This
);
226 return IMediaSeeking_SetRate(pSeek
,dblRate
);
229 static HRESULT WINAPI
230 IMediaSeeking_fnGetRate(IMediaSeeking
* iface
,double* pdblRate
)
232 CPassThruImpl_THIS(iface
,mseek
);
235 TRACE("(%p)->()\n",This
);
237 return IMediaSeeking_GetRate(pSeek
,pdblRate
);
240 static HRESULT WINAPI
241 IMediaSeeking_fnGetPreroll(IMediaSeeking
* iface
,LONGLONG
* pllPreroll
)
243 CPassThruImpl_THIS(iface
,mseek
);
246 TRACE("(%p)->()\n",This
);
248 return IMediaSeeking_GetPreroll(pSeek
,pllPreroll
);
254 static ICOM_VTABLE(IMediaSeeking
) imseek
=
256 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
257 /* IUnknown fields */
258 IMediaSeeking_fnQueryInterface
,
259 IMediaSeeking_fnAddRef
,
260 IMediaSeeking_fnRelease
,
261 /* IMediaSeeking fields */
262 IMediaSeeking_fnGetCapabilities
,
263 IMediaSeeking_fnCheckCapabilities
,
264 IMediaSeeking_fnIsFormatSupported
,
265 IMediaSeeking_fnQueryPreferredFormat
,
266 IMediaSeeking_fnGetTimeFormat
,
267 IMediaSeeking_fnIsUsingTimeFormat
,
268 IMediaSeeking_fnSetTimeFormat
,
269 IMediaSeeking_fnGetDuration
,
270 IMediaSeeking_fnGetStopPosition
,
271 IMediaSeeking_fnGetCurrentPosition
,
272 IMediaSeeking_fnConvertTimeFormat
,
273 IMediaSeeking_fnSetPositions
,
274 IMediaSeeking_fnGetPositions
,
275 IMediaSeeking_fnGetAvailable
,
276 IMediaSeeking_fnSetRate
,
277 IMediaSeeking_fnGetRate
,
278 IMediaSeeking_fnGetPreroll
,
283 HRESULT
CPassThruImpl_InitIMediaSeeking( CPassThruImpl
* pImpl
)
285 TRACE("(%p)\n",pImpl
);
286 ICOM_VTBL(&pImpl
->mseek
) = &imseek
;
291 void CPassThruImpl_UninitIMediaSeeking( CPassThruImpl
* pImpl
)
293 TRACE("(%p)\n",pImpl
);