webservices: Don't allocate an XML buffer until it is needed.
[wine.git] / dlls / wmp / player.c
blob4c11c88d74342f7d1becbe1c9bf1e5b5f876b07f
1 /*
2 * Copyright 2014 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #include "wmp_private.h"
21 #include "wine/debug.h"
23 WINE_DEFAULT_DEBUG_CHANNEL(wmp);
25 static inline WindowsMediaPlayer *impl_from_IWMPPlayer4(IWMPPlayer4 *iface)
27 return CONTAINING_RECORD(iface, WindowsMediaPlayer, IWMPPlayer4_iface);
30 static HRESULT WINAPI WMPPlayer4_QueryInterface(IWMPPlayer4 *iface, REFIID riid, void **ppv)
32 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
33 return IOleObject_QueryInterface(&This->IOleObject_iface, riid, ppv);
36 static ULONG WINAPI WMPPlayer4_AddRef(IWMPPlayer4 *iface)
38 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
39 return IOleObject_AddRef(&This->IOleObject_iface);
42 static ULONG WINAPI WMPPlayer4_Release(IWMPPlayer4 *iface)
44 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
45 return IOleObject_Release(&This->IOleObject_iface);
48 static HRESULT WINAPI WMPPlayer4_GetTypeInfoCount(IWMPPlayer4 *iface, UINT *pctinfo)
50 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
51 FIXME("(%p)->(%p)\n", This, pctinfo);
52 return E_NOTIMPL;
55 static HRESULT WINAPI WMPPlayer4_GetTypeInfo(IWMPPlayer4 *iface, UINT iTInfo,
56 LCID lcid, ITypeInfo **ppTInfo)
58 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
59 FIXME("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
60 return E_NOTIMPL;
63 static HRESULT WINAPI WMPPlayer4_GetIDsOfNames(IWMPPlayer4 *iface, REFIID riid,
64 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
66 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
67 FIXME("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
68 return E_NOTIMPL;
71 static HRESULT WINAPI WMPPlayer4_Invoke(IWMPPlayer4 *iface, DISPID dispIdMember,
72 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
73 EXCEPINFO *pExcepInfo, UINT *puArgErr)
75 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
76 FIXME("(%p)->(%d %s %d %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid,
77 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
78 return E_NOTIMPL;
81 static HRESULT WINAPI WMPPlayer4_close(IWMPPlayer4 *iface)
83 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
84 FIXME("(%p)\n", This);
85 return E_NOTIMPL;
88 static HRESULT WINAPI WMPPlayer4_get_URL(IWMPPlayer4 *iface, BSTR *pbstrURL)
90 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
91 FIXME("(%p)->(%p)\n", This, pbstrURL);
92 return E_NOTIMPL;
95 static HRESULT WINAPI WMPPlayer4_put_URL(IWMPPlayer4 *iface, BSTR url)
97 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
98 FIXME("(%p)->(%s)\n", This, debugstr_w(url));
99 return E_NOTIMPL;
102 static HRESULT WINAPI WMPPlayer4_get_openState(IWMPPlayer4 *iface, WMPOpenState *pwmpos)
104 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
105 FIXME("(%p)->(%p)\n", This, pwmpos);
106 return E_NOTIMPL;
109 static HRESULT WINAPI WMPPlayer4_get_playState(IWMPPlayer4 *iface, WMPPlayState *pwmpps)
111 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
112 FIXME("(%p)->(%p)\n", This, pwmpps);
113 return E_NOTIMPL;
116 static HRESULT WINAPI WMPPlayer4_get_controls(IWMPPlayer4 *iface, IWMPControls **ppControl)
118 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
119 FIXME("(%p)->(%p)\n", This, ppControl);
120 return E_NOTIMPL;
123 static HRESULT WINAPI WMPPlayer4_get_settings(IWMPPlayer4 *iface, IWMPSettings **ppSettings)
125 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
127 TRACE("(%p)->(%p)\n", This, ppSettings);
129 IWMPSettings_AddRef(&This->IWMPSettings_iface);
130 *ppSettings = &This->IWMPSettings_iface;
131 return S_OK;
134 static HRESULT WINAPI WMPPlayer4_get_currentMedia(IWMPPlayer4 *iface, IWMPMedia **ppMedia)
136 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
137 FIXME("(%p)->(%p)\n", This, ppMedia);
138 return E_NOTIMPL;
141 static HRESULT WINAPI WMPPlayer4_put_currentMedia(IWMPPlayer4 *iface, IWMPMedia *pMedia)
143 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
144 FIXME("(%p)->(%p)\n", This, pMedia);
145 return E_NOTIMPL;
148 static HRESULT WINAPI WMPPlayer4_get_mediaCollection(IWMPPlayer4 *iface, IWMPMediaCollection **ppMediaCollection)
150 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
151 FIXME("(%p)->(%p)\n", This, ppMediaCollection);
152 return E_NOTIMPL;
155 static HRESULT WINAPI WMPPlayer4_get_playlistCollection(IWMPPlayer4 *iface, IWMPPlaylistCollection **ppPlaylistCollection)
157 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
158 FIXME("(%p)->(%p)\n", This, ppPlaylistCollection);
159 return E_NOTIMPL;
162 static HRESULT WINAPI WMPPlayer4_get_versionInfo(IWMPPlayer4 *iface, BSTR *version)
164 static const WCHAR versionW[] = {'1','2','.','0','.','7','6','0','1','.','1','6','9','8','2',0};
165 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
167 TRACE("(%p)->(%p)\n", This, version);
169 if (!version)
170 return E_POINTER;
172 *version = SysAllocString(versionW);
173 return *version ? S_OK : E_OUTOFMEMORY;
176 static HRESULT WINAPI WMPPlayer4_launchURL(IWMPPlayer4 *iface, BSTR url)
178 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
179 FIXME("(%p)->(%s)\n", This, debugstr_w(url));
180 return E_NOTIMPL;
183 static HRESULT WINAPI WMPPlayer4_get_network(IWMPPlayer4 *iface, IWMPNetwork **ppQNI)
185 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
186 FIXME("(%p)->(%p)\n", This, ppQNI);
187 return E_NOTIMPL;
190 static HRESULT WINAPI WMPPlayer4_get_currentPlaylist(IWMPPlayer4 *iface, IWMPPlaylist **ppPL)
192 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
193 FIXME("(%p)->(%p)\n", This, ppPL);
194 return E_NOTIMPL;
197 static HRESULT WINAPI WMPPlayer4_put_currentPlaylist(IWMPPlayer4 *iface, IWMPPlaylist *pPL)
199 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
200 FIXME("(%p)->(%p)\n", This, pPL);
201 return E_NOTIMPL;
204 static HRESULT WINAPI WMPPlayer4_get_cdromCollection(IWMPPlayer4 *iface, IWMPCdromCollection **ppCdromCollection)
206 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
207 FIXME("(%p)->(%p)\n", This, ppCdromCollection);
208 return E_NOTIMPL;
211 static HRESULT WINAPI WMPPlayer4_get_closedCaption(IWMPPlayer4 *iface, IWMPClosedCaption **ppClosedCaption)
213 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
214 FIXME("(%p)->(%p)\n", This, ppClosedCaption);
215 return E_NOTIMPL;
218 static HRESULT WINAPI WMPPlayer4_get_isOnline(IWMPPlayer4 *iface, VARIANT_BOOL *pfOnline)
220 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
221 FIXME("(%p)->(%p)\n", This, pfOnline);
222 return E_NOTIMPL;
225 static HRESULT WINAPI WMPPlayer4_get_Error(IWMPPlayer4 *iface, IWMPError **ppError)
227 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
228 FIXME("(%p)->(%p)\n", This, ppError);
229 return E_NOTIMPL;
232 static HRESULT WINAPI WMPPlayer4_get_Status(IWMPPlayer4 *iface, BSTR *pbstrStatus)
234 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
235 FIXME("(%p)->(%p)\n", This, pbstrStatus);
236 return E_NOTIMPL;
239 static HRESULT WINAPI WMPPlayer4_get_dvd(IWMPPlayer4 *iface, IWMPDVD **ppDVD)
241 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
242 FIXME("(%p)->(%p)\n", This, ppDVD);
243 return E_NOTIMPL;
246 static HRESULT WINAPI WMPPlayer4_newPlaylist(IWMPPlayer4 *iface, BSTR name, BSTR url, IWMPPlaylist **ppPlaylist)
248 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
249 FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(name), debugstr_w(url), ppPlaylist);
250 return E_NOTIMPL;
253 static HRESULT WINAPI WMPPlayer4_newMedia(IWMPPlayer4 *iface, BSTR url, IWMPMedia **ppMedia)
255 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
256 FIXME("(%p)->(%p)\n", This, ppMedia);
257 return E_NOTIMPL;
260 static HRESULT WINAPI WMPPlayer4_get_enabled(IWMPPlayer4 *iface, VARIANT_BOOL *pbEnabled)
262 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
263 FIXME("(%p)->(%p)\n", This, pbEnabled);
264 return E_NOTIMPL;
267 static HRESULT WINAPI WMPPlayer4_put_enabled(IWMPPlayer4 *iface, VARIANT_BOOL enabled)
269 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
270 FIXME("(%p)->(%x)\n", This, enabled);
271 return E_NOTIMPL;
274 static HRESULT WINAPI WMPPlayer4_get_fullScreen(IWMPPlayer4 *iface, VARIANT_BOOL *pbFullScreen)
276 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
277 FIXME("(%p)->(%p)\n", This, pbFullScreen);
278 return E_NOTIMPL;
281 static HRESULT WINAPI WMPPlayer4_put_fullScreen(IWMPPlayer4 *iface, VARIANT_BOOL fullscreen)
283 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
284 FIXME("(%p)->(%x)\n", This, fullscreen);
285 return E_NOTIMPL;
288 static HRESULT WINAPI WMPPlayer4_get_enableContextMenu(IWMPPlayer4 *iface, VARIANT_BOOL *pbEnableContextMenu)
290 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
291 FIXME("(%p)->(%p)\n", This, pbEnableContextMenu);
292 return E_NOTIMPL;
295 static HRESULT WINAPI WMPPlayer4_put_enableContextMenu(IWMPPlayer4 *iface, VARIANT_BOOL enable)
297 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
298 FIXME("(%p)->(%x)\n", This, enable);
299 return E_NOTIMPL;
302 static HRESULT WINAPI WMPPlayer4_put_uiMode(IWMPPlayer4 *iface, BSTR mode)
304 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
305 FIXME("(%p)->(%s)\n", This, debugstr_w(mode));
306 return E_NOTIMPL;
309 static HRESULT WINAPI WMPPlayer4_get_uiMode(IWMPPlayer4 *iface, BSTR *pbstrMode)
311 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
312 FIXME("(%p)->(%p)\n", This, pbstrMode);
313 return E_NOTIMPL;
316 static HRESULT WINAPI WMPPlayer4_get_stretchToFit(IWMPPlayer4 *iface, VARIANT_BOOL *enabled)
318 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
319 FIXME("(%p)->(%p)\n", This, enabled);
320 return E_NOTIMPL;
323 static HRESULT WINAPI WMPPlayer4_put_stretchToFit(IWMPPlayer4 *iface, VARIANT_BOOL enabled)
325 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
326 FIXME("(%p)->(%x)\n", This, enabled);
327 return E_NOTIMPL;
330 static HRESULT WINAPI WMPPlayer4_get_windowlessVideo(IWMPPlayer4 *iface, VARIANT_BOOL *enabled)
332 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
333 FIXME("(%p)->(%p)\n", This, enabled);
334 return E_NOTIMPL;
337 static HRESULT WINAPI WMPPlayer4_put_windowlessVideo(IWMPPlayer4 *iface, VARIANT_BOOL enabled)
339 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
340 FIXME("(%p)->(%x)\n", This, enabled);
341 return E_NOTIMPL;
344 static HRESULT WINAPI WMPPlayer4_get_isRemote(IWMPPlayer4 *iface, VARIANT_BOOL *pvarfIsRemote)
346 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
347 FIXME("(%p)->(%p)\n", This, pvarfIsRemote);
348 return E_NOTIMPL;
351 static HRESULT WINAPI WMPPlayer4_get_playerApplication(IWMPPlayer4 *iface, IWMPPlayerApplication **ppIWMPPlayerApplication)
353 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
354 FIXME("(%p)->(%p)\n", This, ppIWMPPlayerApplication);
355 return E_NOTIMPL;
358 static HRESULT WINAPI WMPPlayer4_openPlayer(IWMPPlayer4 *iface, BSTR url)
360 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
361 FIXME("(%p)->(%s)\n", This, debugstr_w(url));
362 return E_NOTIMPL;
365 static IWMPPlayer4Vtbl WMPPlayer4Vtbl = {
366 WMPPlayer4_QueryInterface,
367 WMPPlayer4_AddRef,
368 WMPPlayer4_Release,
369 WMPPlayer4_GetTypeInfoCount,
370 WMPPlayer4_GetTypeInfo,
371 WMPPlayer4_GetIDsOfNames,
372 WMPPlayer4_Invoke,
373 WMPPlayer4_close,
374 WMPPlayer4_get_URL,
375 WMPPlayer4_put_URL,
376 WMPPlayer4_get_openState,
377 WMPPlayer4_get_playState,
378 WMPPlayer4_get_controls,
379 WMPPlayer4_get_settings,
380 WMPPlayer4_get_currentMedia,
381 WMPPlayer4_put_currentMedia,
382 WMPPlayer4_get_mediaCollection,
383 WMPPlayer4_get_playlistCollection,
384 WMPPlayer4_get_versionInfo,
385 WMPPlayer4_launchURL,
386 WMPPlayer4_get_network,
387 WMPPlayer4_get_currentPlaylist,
388 WMPPlayer4_put_currentPlaylist,
389 WMPPlayer4_get_cdromCollection,
390 WMPPlayer4_get_closedCaption,
391 WMPPlayer4_get_isOnline,
392 WMPPlayer4_get_Error,
393 WMPPlayer4_get_Status,
394 WMPPlayer4_get_dvd,
395 WMPPlayer4_newPlaylist,
396 WMPPlayer4_newMedia,
397 WMPPlayer4_get_enabled,
398 WMPPlayer4_put_enabled,
399 WMPPlayer4_get_fullScreen,
400 WMPPlayer4_put_fullScreen,
401 WMPPlayer4_get_enableContextMenu,
402 WMPPlayer4_put_enableContextMenu,
403 WMPPlayer4_put_uiMode,
404 WMPPlayer4_get_uiMode,
405 WMPPlayer4_get_stretchToFit,
406 WMPPlayer4_put_stretchToFit,
407 WMPPlayer4_get_windowlessVideo,
408 WMPPlayer4_put_windowlessVideo,
409 WMPPlayer4_get_isRemote,
410 WMPPlayer4_get_playerApplication,
411 WMPPlayer4_openPlayer
414 static inline WindowsMediaPlayer *impl_from_IWMPSettings(IWMPSettings *iface)
416 return CONTAINING_RECORD(iface, WindowsMediaPlayer, IWMPSettings_iface);
419 static HRESULT WINAPI WMPSettings_QueryInterface(IWMPSettings *iface, REFIID riid, void **ppv)
421 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
422 return IOleObject_QueryInterface(&This->IOleObject_iface, riid, ppv);
425 static ULONG WINAPI WMPSettings_AddRef(IWMPSettings *iface)
427 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
428 return IOleObject_AddRef(&This->IOleObject_iface);
431 static ULONG WINAPI WMPSettings_Release(IWMPSettings *iface)
433 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
434 return IOleObject_Release(&This->IOleObject_iface);
437 static HRESULT WINAPI WMPSettings_GetTypeInfoCount(IWMPSettings *iface, UINT *pctinfo)
439 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
440 FIXME("(%p)->(%p)\n", This, pctinfo);
441 return E_NOTIMPL;
444 static HRESULT WINAPI WMPSettings_GetTypeInfo(IWMPSettings *iface, UINT iTInfo,
445 LCID lcid, ITypeInfo **ppTInfo)
447 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
448 FIXME("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
449 return E_NOTIMPL;
452 static HRESULT WINAPI WMPSettings_GetIDsOfNames(IWMPSettings *iface, REFIID riid,
453 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
455 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
456 FIXME("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
457 return E_NOTIMPL;
460 static HRESULT WINAPI WMPSettings_Invoke(IWMPSettings *iface, DISPID dispIdMember,
461 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
462 EXCEPINFO *pExcepInfo, UINT *puArgErr)
464 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
465 FIXME("(%p)->(%d %s %d %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid,
466 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
467 return E_NOTIMPL;
470 static HRESULT WINAPI WMPSettings_get_isAvailable(IWMPSettings *iface, BSTR item, VARIANT_BOOL *p)
472 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
473 FIXME("(%p)->(%s %p)\n", This, debugstr_w(item), p);
474 return E_NOTIMPL;
477 static HRESULT WINAPI WMPSettings_get_autoStart(IWMPSettings *iface, VARIANT_BOOL *p)
479 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
480 FIXME("(%p)->(%p)\n", This, p);
481 return E_NOTIMPL;
484 static HRESULT WINAPI WMPSettings_put_autoStart(IWMPSettings *iface, VARIANT_BOOL v)
486 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
487 FIXME("(%p)->(%x)\n", This, v);
488 return E_NOTIMPL;
491 static HRESULT WINAPI WMPSettings_get_baseURL(IWMPSettings *iface, BSTR *p)
493 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
494 FIXME("(%p)->(%p)\n", This, p);
495 return E_NOTIMPL;
498 static HRESULT WINAPI WMPSettings_put_baseURL(IWMPSettings *iface, BSTR v)
500 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
501 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
502 return E_NOTIMPL;
505 static HRESULT WINAPI WMPSettings_get_defaultFrame(IWMPSettings *iface, BSTR *p)
507 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
508 FIXME("(%p)->(%p)\n", This, p);
509 return E_NOTIMPL;
512 static HRESULT WINAPI WMPSettings_put_defaultFrame(IWMPSettings *iface, BSTR v)
514 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
515 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
516 return E_NOTIMPL;
519 static HRESULT WINAPI WMPSettings_get_invokeURLs(IWMPSettings *iface, VARIANT_BOOL *p)
521 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
522 FIXME("(%p)->(%p)\n", This, p);
523 return E_NOTIMPL;
526 static HRESULT WINAPI WMPSettings_put_invokeURLs(IWMPSettings *iface, VARIANT_BOOL v)
528 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
529 FIXME("(%p)->(%x)\n", This, v);
530 return E_NOTIMPL;
533 static HRESULT WINAPI WMPSettings_get_mute(IWMPSettings *iface, VARIANT_BOOL *p)
535 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
536 FIXME("(%p)->(%p)\n", This, p);
537 return E_NOTIMPL;
540 static HRESULT WINAPI WMPSettings_put_mute(IWMPSettings *iface, VARIANT_BOOL v)
542 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
543 FIXME("(%p)->(%x)\n", This, v);
544 return E_NOTIMPL;
547 static HRESULT WINAPI WMPSettings_get_playCount(IWMPSettings *iface, LONG *p)
549 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
550 FIXME("(%p)->(%p)\n", This, p);
551 return E_NOTIMPL;
554 static HRESULT WINAPI WMPSettings_put_playCount(IWMPSettings *iface, LONG v)
556 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
557 FIXME("(%p)->(%d)\n", This, v);
558 return E_NOTIMPL;
561 static HRESULT WINAPI WMPSettings_get_rate(IWMPSettings *iface, double *p)
563 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
564 FIXME("(%p)->(%p)\n", This, p);
565 return E_NOTIMPL;
568 static HRESULT WINAPI WMPSettings_put_rate(IWMPSettings *iface, double v)
570 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
571 FIXME("(%p)->(%lf)\n", This, v);
572 return E_NOTIMPL;
575 static HRESULT WINAPI WMPSettings_get_balance(IWMPSettings *iface, LONG *p)
577 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
578 FIXME("(%p)->(%p)\n", This, p);
579 return E_NOTIMPL;
582 static HRESULT WINAPI WMPSettings_put_balance(IWMPSettings *iface, LONG v)
584 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
585 FIXME("(%p)->(%d)\n", This, v);
586 return E_NOTIMPL;
589 static HRESULT WINAPI WMPSettings_get_volume(IWMPSettings *iface, LONG *p)
591 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
592 FIXME("(%p)->(%p)\n", This, p);
593 return E_NOTIMPL;
596 static HRESULT WINAPI WMPSettings_put_volume(IWMPSettings *iface, LONG v)
598 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
599 FIXME("(%p)->(%d)\n", This, v);
600 return E_NOTIMPL;
603 static HRESULT WINAPI WMPSettings_getMode(IWMPSettings *iface, BSTR mode, VARIANT_BOOL *p)
605 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
606 FIXME("(%p)->(%s %p)\n", This, debugstr_w(mode), p);
607 return E_NOTIMPL;
610 static HRESULT WINAPI WMPSettings_setMode(IWMPSettings *iface, BSTR mode, VARIANT_BOOL v)
612 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
613 FIXME("(%p)->(%s %x)\n", This, debugstr_w(mode), v);
614 return E_NOTIMPL;
617 static HRESULT WINAPI WMPSettings_get_enableErrorDialogs(IWMPSettings *iface, VARIANT_BOOL *p)
619 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
620 FIXME("(%p)->(%p)\n", This, p);
621 return E_NOTIMPL;
624 static HRESULT WINAPI WMPSettings_put_enableErrorDialogs(IWMPSettings *iface, VARIANT_BOOL v)
626 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
627 FIXME("(%p)->(%x)\n", This, v);
628 return E_NOTIMPL;
631 static const IWMPSettingsVtbl WMPSettingsVtbl = {
632 WMPSettings_QueryInterface,
633 WMPSettings_AddRef,
634 WMPSettings_Release,
635 WMPSettings_GetTypeInfoCount,
636 WMPSettings_GetTypeInfo,
637 WMPSettings_GetIDsOfNames,
638 WMPSettings_Invoke,
639 WMPSettings_get_isAvailable,
640 WMPSettings_get_autoStart,
641 WMPSettings_put_autoStart,
642 WMPSettings_get_baseURL,
643 WMPSettings_put_baseURL,
644 WMPSettings_get_defaultFrame,
645 WMPSettings_put_defaultFrame,
646 WMPSettings_get_invokeURLs,
647 WMPSettings_put_invokeURLs,
648 WMPSettings_get_mute,
649 WMPSettings_put_mute,
650 WMPSettings_get_playCount,
651 WMPSettings_put_playCount,
652 WMPSettings_get_rate,
653 WMPSettings_put_rate,
654 WMPSettings_get_balance,
655 WMPSettings_put_balance,
656 WMPSettings_get_volume,
657 WMPSettings_put_volume,
658 WMPSettings_getMode,
659 WMPSettings_setMode,
660 WMPSettings_get_enableErrorDialogs,
661 WMPSettings_put_enableErrorDialogs
664 void init_player_ifaces(WindowsMediaPlayer *wmp)
666 wmp->IWMPPlayer4_iface.lpVtbl = &WMPPlayer4Vtbl;
667 wmp->IWMPSettings_iface.lpVtbl = &WMPSettingsVtbl;