Added SystemParametersInfo unit test.
[wine] / dlls / quartz / impos.c
1 /*
2  * Implementation of IMediaPosition for FilterGraph.
3  *
4  * FIXME - stub.
5  *
6  * hidenori@a2.ctktv.ne.jp
7  */
8
9 #include "config.h"
10
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"
19
20 #include "debugtools.h"
21 DEFAULT_DEBUG_CHANNEL(quartz);
22
23 #include "quartz_private.h"
24 #include "fgraph.h"
25
26
27 static HRESULT WINAPI
28 IMediaPosition_fnQueryInterface(IMediaPosition* iface,REFIID riid,void** ppobj)
29 {
30         CFilterGraph_THIS(iface,mediaposition);
31
32         TRACE("(%p)->()\n",This);
33
34         return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
35 }
36
37 static ULONG WINAPI
38 IMediaPosition_fnAddRef(IMediaPosition* iface)
39 {
40         CFilterGraph_THIS(iface,mediaposition);
41
42         TRACE("(%p)->()\n",This);
43
44         return IUnknown_AddRef(This->unk.punkControl);
45 }
46
47 static ULONG WINAPI
48 IMediaPosition_fnRelease(IMediaPosition* iface)
49 {
50         CFilterGraph_THIS(iface,mediaposition);
51
52         TRACE("(%p)->()\n",This);
53
54         return IUnknown_Release(This->unk.punkControl);
55 }
56
57 static HRESULT WINAPI
58 IMediaPosition_fnGetTypeInfoCount(IMediaPosition* iface,UINT* pcTypeInfo)
59 {
60         CFilterGraph_THIS(iface,mediaposition);
61
62         TRACE("(%p)->()\n",This);
63
64         return IDispatch_GetTypeInfoCount(
65                 CFilterGraph_IDispatch(This),pcTypeInfo);
66 }
67
68 static HRESULT WINAPI
69 IMediaPosition_fnGetTypeInfo(IMediaPosition* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
70 {
71         CFilterGraph_THIS(iface,mediaposition);
72
73         TRACE("(%p)->()\n",This);
74
75         return IDispatch_GetTypeInfo(
76                 CFilterGraph_IDispatch(This),iTypeInfo,lcid,ppobj);
77 }
78
79 static HRESULT WINAPI
80 IMediaPosition_fnGetIDsOfNames(IMediaPosition* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
81 {
82         CFilterGraph_THIS(iface,mediaposition);
83
84         TRACE("(%p)->()\n",This);
85
86         return IDispatch_GetIDsOfNames(
87                 CFilterGraph_IDispatch(This),riid,ppwszName,cNames,lcid,pDispId);
88 }
89
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)
92 {
93         CFilterGraph_THIS(iface,mediaposition);
94
95         TRACE("(%p)->()\n",This);
96
97         return IDispatch_Invoke(
98                 CFilterGraph_IDispatch(This),
99                 DispId,riid,lcid,wFlags,pDispParams,pVarRes,pExcepInfo,puArgErr);
100 }
101
102
103 static HRESULT WINAPI
104 IMediaPosition_fnget_Duration(IMediaPosition* iface,REFTIME* prefTime)
105 {
106         CFilterGraph_THIS(iface,mediaposition);
107
108         FIXME("(%p)->() stub!\n",This);
109
110         return E_NOTIMPL;
111 }
112
113 static HRESULT WINAPI
114 IMediaPosition_fnput_CurrentPosition(IMediaPosition* iface,REFTIME refTime)
115 {
116         CFilterGraph_THIS(iface,mediaposition);
117
118         FIXME("(%p)->() stub!\n",This);
119
120         return E_NOTIMPL;
121 }
122
123 static HRESULT WINAPI
124 IMediaPosition_fnget_CurrentPosition(IMediaPosition* iface,REFTIME* prefTime)
125 {
126         CFilterGraph_THIS(iface,mediaposition);
127
128         FIXME("(%p)->() stub!\n",This);
129
130         return E_NOTIMPL;
131 }
132
133 static HRESULT WINAPI
134 IMediaPosition_fnget_StopTime(IMediaPosition* iface,REFTIME* prefTime)
135 {
136         CFilterGraph_THIS(iface,mediaposition);
137
138         FIXME("(%p)->() stub!\n",This);
139
140         return E_NOTIMPL;
141 }
142
143 static HRESULT WINAPI
144 IMediaPosition_fnput_StopTime(IMediaPosition* iface,REFTIME refTime)
145 {
146         CFilterGraph_THIS(iface,mediaposition);
147
148         FIXME("(%p)->() stub!\n",This);
149
150         return E_NOTIMPL;
151 }
152
153 static HRESULT WINAPI
154 IMediaPosition_fnget_PrerollTime(IMediaPosition* iface,REFTIME* prefTime)
155 {
156         CFilterGraph_THIS(iface,mediaposition);
157
158         FIXME("(%p)->() stub!\n",This);
159
160         return E_NOTIMPL;
161 }
162
163 static HRESULT WINAPI
164 IMediaPosition_fnput_PrerollTime(IMediaPosition* iface,REFTIME refTime)
165 {
166         CFilterGraph_THIS(iface,mediaposition);
167
168         FIXME("(%p)->() stub!\n",This);
169
170         return E_NOTIMPL;
171 }
172
173 static HRESULT WINAPI
174 IMediaPosition_fnput_Rate(IMediaPosition* iface,double dblRate)
175 {
176         CFilterGraph_THIS(iface,mediaposition);
177
178         FIXME("(%p)->() stub!\n",This);
179
180         return E_NOTIMPL;
181 }
182
183 static HRESULT WINAPI
184 IMediaPosition_fnget_Rate(IMediaPosition* iface,double* pdblRate)
185 {
186         CFilterGraph_THIS(iface,mediaposition);
187
188         FIXME("(%p)->() stub!\n",This);
189
190         return E_NOTIMPL;
191 }
192
193 static HRESULT WINAPI
194 IMediaPosition_fnCanSeekForward(IMediaPosition* iface,LONG* pCanSeek)
195 {
196         CFilterGraph_THIS(iface,mediaposition);
197
198         FIXME("(%p)->() stub!\n",This);
199
200         return E_NOTIMPL;
201 }
202
203 static HRESULT WINAPI
204 IMediaPosition_fnCanSeekBackward(IMediaPosition* iface,LONG* pCanSeek)
205 {
206         CFilterGraph_THIS(iface,mediaposition);
207
208         FIXME("(%p)->() stub!\n",This);
209
210         return E_NOTIMPL;
211 }
212
213
214 static ICOM_VTABLE(IMediaPosition) imediaposition =
215 {
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,
238 };
239
240
241 HRESULT CFilterGraph_InitIMediaPosition( CFilterGraph* pfg )
242 {
243         TRACE("(%p)\n",pfg);
244         ICOM_VTBL(&pfg->mediaposition) = &imediaposition;
245
246         return NOERROR;
247 }
248
249 void CFilterGraph_UninitIMediaPosition( CFilterGraph* pfg )
250 {
251         TRACE("(%p)\n",pfg);
252 }