wmp: Handle allocation failure in IWMPMedia_get_sourceURL.
[wine.git] / dlls / wmp / player.c
blob4a0d0742fde17cb7ece56164cd4666372c51bc9d
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 WMPMedia *impl_from_IWMPMedia(IWMPMedia *iface)
27 return CONTAINING_RECORD(iface, WMPMedia, IWMPMedia_iface);
30 static inline WindowsMediaPlayer *impl_from_IWMPNetwork(IWMPNetwork *iface)
32 return CONTAINING_RECORD(iface, WindowsMediaPlayer, IWMPNetwork_iface);
35 static inline WindowsMediaPlayer *impl_from_IWMPPlayer4(IWMPPlayer4 *iface)
37 return CONTAINING_RECORD(iface, WindowsMediaPlayer, IWMPPlayer4_iface);
40 static inline WindowsMediaPlayer *impl_from_IWMPPlayer(IWMPPlayer *iface)
42 return CONTAINING_RECORD(iface, WindowsMediaPlayer, IWMPPlayer_iface);
45 static inline WindowsMediaPlayer *impl_from_IWMPControls(IWMPControls *iface)
47 return CONTAINING_RECORD(iface, WindowsMediaPlayer, IWMPControls_iface);
50 static HRESULT WINAPI WMPPlayer4_QueryInterface(IWMPPlayer4 *iface, REFIID riid, void **ppv)
52 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
53 return IOleObject_QueryInterface(&This->IOleObject_iface, riid, ppv);
56 static ULONG WINAPI WMPPlayer4_AddRef(IWMPPlayer4 *iface)
58 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
59 return IOleObject_AddRef(&This->IOleObject_iface);
62 static ULONG WINAPI WMPPlayer4_Release(IWMPPlayer4 *iface)
64 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
65 return IOleObject_Release(&This->IOleObject_iface);
68 static HRESULT WINAPI WMPPlayer4_GetTypeInfoCount(IWMPPlayer4 *iface, UINT *pctinfo)
70 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
71 FIXME("(%p)->(%p)\n", This, pctinfo);
72 return E_NOTIMPL;
75 static HRESULT WINAPI WMPPlayer4_GetTypeInfo(IWMPPlayer4 *iface, UINT iTInfo,
76 LCID lcid, ITypeInfo **ppTInfo)
78 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
79 FIXME("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
80 return E_NOTIMPL;
83 static HRESULT WINAPI WMPPlayer4_GetIDsOfNames(IWMPPlayer4 *iface, REFIID riid,
84 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
86 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
87 FIXME("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
88 return E_NOTIMPL;
91 static HRESULT WINAPI WMPPlayer4_Invoke(IWMPPlayer4 *iface, DISPID dispIdMember,
92 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
93 EXCEPINFO *pExcepInfo, UINT *puArgErr)
95 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
96 FIXME("(%p)->(%d %s %d %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid,
97 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
98 return E_NOTIMPL;
101 static HRESULT WINAPI WMPPlayer4_close(IWMPPlayer4 *iface)
103 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
104 FIXME("(%p)\n", This);
105 return E_NOTIMPL;
108 static HRESULT WINAPI WMPPlayer4_get_URL(IWMPPlayer4 *iface, BSTR *pbstrURL)
110 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
111 TRACE("(%p)->(%p)\n", This, pbstrURL);
112 if(This->wmpmedia == NULL) {
113 return S_FALSE;
115 return IWMPMedia_get_sourceURL(This->wmpmedia, pbstrURL);
118 static HRESULT WINAPI WMPPlayer4_put_URL(IWMPPlayer4 *iface, BSTR url)
120 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
121 IWMPMedia *media;
122 TRACE("(%p)->(%s)\n", This, debugstr_w(url));
123 if(url == NULL) {
124 return E_POINTER;
126 media = create_media_from_url(url);
127 return IWMPPlayer4_put_currentMedia(iface, media);
130 static HRESULT WINAPI WMPPlayer4_get_openState(IWMPPlayer4 *iface, WMPOpenState *pwmpos)
132 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
133 FIXME("(%p)->(%p)\n", This, pwmpos);
134 return E_NOTIMPL;
137 static HRESULT WINAPI WMPPlayer4_get_playState(IWMPPlayer4 *iface, WMPPlayState *pwmpps)
139 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
140 FIXME("(%p)->(%p)\n", This, pwmpps);
141 return E_NOTIMPL;
144 static HRESULT WINAPI WMPPlayer4_get_controls(IWMPPlayer4 *iface, IWMPControls **ppControl)
146 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
148 TRACE("(%p)->(%p)\n", This, ppControl);
150 IWMPControls_AddRef(&This->IWMPControls_iface);
151 *ppControl = &This->IWMPControls_iface;
152 return S_OK;
155 static HRESULT WINAPI WMPPlayer4_get_settings(IWMPPlayer4 *iface, IWMPSettings **ppSettings)
157 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
159 TRACE("(%p)->(%p)\n", This, ppSettings);
161 IWMPSettings_AddRef(&This->IWMPSettings_iface);
162 *ppSettings = &This->IWMPSettings_iface;
163 return S_OK;
166 static HRESULT WINAPI WMPPlayer4_get_currentMedia(IWMPPlayer4 *iface, IWMPMedia **ppMedia)
168 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
169 TRACE("(%p)->(%p)\n", This, ppMedia);
170 if(This->wmpmedia == NULL) {
171 return S_FALSE;
173 IWMPMedia_AddRef(This->wmpmedia);
174 *ppMedia = This->wmpmedia;
175 return S_OK;
178 static HRESULT WINAPI WMPPlayer4_put_currentMedia(IWMPPlayer4 *iface, IWMPMedia *pMedia)
180 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
181 TRACE("(%p)->(%p)\n", This, pMedia);
182 if(pMedia == NULL) {
183 return E_POINTER;
185 if(This->wmpmedia != NULL) {
186 IWMPMedia_Release(This->wmpmedia);
188 This->wmpmedia = pMedia;
189 IWMPMedia_AddRef(This->wmpmedia);
190 return S_OK;
193 static HRESULT WINAPI WMPPlayer4_get_mediaCollection(IWMPPlayer4 *iface, IWMPMediaCollection **ppMediaCollection)
195 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
196 FIXME("(%p)->(%p)\n", This, ppMediaCollection);
197 return E_NOTIMPL;
200 static HRESULT WINAPI WMPPlayer4_get_playlistCollection(IWMPPlayer4 *iface, IWMPPlaylistCollection **ppPlaylistCollection)
202 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
203 FIXME("(%p)->(%p)\n", This, ppPlaylistCollection);
204 return E_NOTIMPL;
207 static HRESULT WINAPI WMPPlayer4_get_versionInfo(IWMPPlayer4 *iface, BSTR *version)
209 static const WCHAR versionW[] = {'1','2','.','0','.','7','6','0','1','.','1','6','9','8','2',0};
210 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
212 TRACE("(%p)->(%p)\n", This, version);
214 if (!version)
215 return E_POINTER;
217 *version = SysAllocString(versionW);
218 return *version ? S_OK : E_OUTOFMEMORY;
221 static HRESULT WINAPI WMPPlayer4_launchURL(IWMPPlayer4 *iface, BSTR url)
223 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
224 FIXME("(%p)->(%s)\n", This, debugstr_w(url));
225 return E_NOTIMPL;
228 static HRESULT WINAPI WMPPlayer4_get_network(IWMPPlayer4 *iface, IWMPNetwork **ppQNI)
230 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
231 TRACE("(%p)->(%p)\n", This, ppQNI);
233 IWMPNetwork_AddRef(&This->IWMPNetwork_iface);
234 *ppQNI = &This->IWMPNetwork_iface;
235 return S_OK;
238 static HRESULT WINAPI WMPPlayer4_get_currentPlaylist(IWMPPlayer4 *iface, IWMPPlaylist **ppPL)
240 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
241 FIXME("(%p)->(%p)\n", This, ppPL);
242 return E_NOTIMPL;
245 static HRESULT WINAPI WMPPlayer4_put_currentPlaylist(IWMPPlayer4 *iface, IWMPPlaylist *pPL)
247 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
248 FIXME("(%p)->(%p)\n", This, pPL);
249 return E_NOTIMPL;
252 static HRESULT WINAPI WMPPlayer4_get_cdromCollection(IWMPPlayer4 *iface, IWMPCdromCollection **ppCdromCollection)
254 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
255 FIXME("(%p)->(%p)\n", This, ppCdromCollection);
256 return E_NOTIMPL;
259 static HRESULT WINAPI WMPPlayer4_get_closedCaption(IWMPPlayer4 *iface, IWMPClosedCaption **ppClosedCaption)
261 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
262 FIXME("(%p)->(%p)\n", This, ppClosedCaption);
263 return E_NOTIMPL;
266 static HRESULT WINAPI WMPPlayer4_get_isOnline(IWMPPlayer4 *iface, VARIANT_BOOL *pfOnline)
268 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
269 FIXME("(%p)->(%p)\n", This, pfOnline);
270 return E_NOTIMPL;
273 static HRESULT WINAPI WMPPlayer4_get_Error(IWMPPlayer4 *iface, IWMPError **ppError)
275 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
276 FIXME("(%p)->(%p)\n", This, ppError);
277 return E_NOTIMPL;
280 static HRESULT WINAPI WMPPlayer4_get_Status(IWMPPlayer4 *iface, BSTR *pbstrStatus)
282 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
283 FIXME("(%p)->(%p)\n", This, pbstrStatus);
284 return E_NOTIMPL;
287 static HRESULT WINAPI WMPPlayer4_get_dvd(IWMPPlayer4 *iface, IWMPDVD **ppDVD)
289 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
290 FIXME("(%p)->(%p)\n", This, ppDVD);
291 return E_NOTIMPL;
294 static HRESULT WINAPI WMPPlayer4_newPlaylist(IWMPPlayer4 *iface, BSTR name, BSTR url, IWMPPlaylist **ppPlaylist)
296 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
297 FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(name), debugstr_w(url), ppPlaylist);
298 return E_NOTIMPL;
301 static HRESULT WINAPI WMPPlayer4_newMedia(IWMPPlayer4 *iface, BSTR url, IWMPMedia **ppMedia)
303 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
304 FIXME("(%p)->(%p)\n", This, ppMedia);
305 return E_NOTIMPL;
308 static HRESULT WINAPI WMPPlayer4_get_enabled(IWMPPlayer4 *iface, VARIANT_BOOL *pbEnabled)
310 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
311 FIXME("(%p)->(%p)\n", This, pbEnabled);
312 return E_NOTIMPL;
315 static HRESULT WINAPI WMPPlayer4_put_enabled(IWMPPlayer4 *iface, VARIANT_BOOL enabled)
317 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
318 FIXME("(%p)->(%x)\n", This, enabled);
319 return E_NOTIMPL;
322 static HRESULT WINAPI WMPPlayer4_get_fullScreen(IWMPPlayer4 *iface, VARIANT_BOOL *pbFullScreen)
324 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
325 FIXME("(%p)->(%p)\n", This, pbFullScreen);
326 return E_NOTIMPL;
329 static HRESULT WINAPI WMPPlayer4_put_fullScreen(IWMPPlayer4 *iface, VARIANT_BOOL fullscreen)
331 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
332 FIXME("(%p)->(%x)\n", This, fullscreen);
333 return E_NOTIMPL;
336 static HRESULT WINAPI WMPPlayer4_get_enableContextMenu(IWMPPlayer4 *iface, VARIANT_BOOL *pbEnableContextMenu)
338 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
339 FIXME("(%p)->(%p)\n", This, pbEnableContextMenu);
340 return E_NOTIMPL;
343 static HRESULT WINAPI WMPPlayer4_put_enableContextMenu(IWMPPlayer4 *iface, VARIANT_BOOL enable)
345 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
346 FIXME("(%p)->(%x)\n", This, enable);
347 return E_NOTIMPL;
350 static HRESULT WINAPI WMPPlayer4_put_uiMode(IWMPPlayer4 *iface, BSTR mode)
352 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
353 FIXME("(%p)->(%s)\n", This, debugstr_w(mode));
354 return E_NOTIMPL;
357 static HRESULT WINAPI WMPPlayer4_get_uiMode(IWMPPlayer4 *iface, BSTR *pbstrMode)
359 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
360 FIXME("(%p)->(%p)\n", This, pbstrMode);
361 return E_NOTIMPL;
364 static HRESULT WINAPI WMPPlayer4_get_stretchToFit(IWMPPlayer4 *iface, VARIANT_BOOL *enabled)
366 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
367 FIXME("(%p)->(%p)\n", This, enabled);
368 return E_NOTIMPL;
371 static HRESULT WINAPI WMPPlayer4_put_stretchToFit(IWMPPlayer4 *iface, VARIANT_BOOL enabled)
373 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
374 FIXME("(%p)->(%x)\n", This, enabled);
375 return E_NOTIMPL;
378 static HRESULT WINAPI WMPPlayer4_get_windowlessVideo(IWMPPlayer4 *iface, VARIANT_BOOL *enabled)
380 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
381 FIXME("(%p)->(%p)\n", This, enabled);
382 return E_NOTIMPL;
385 static HRESULT WINAPI WMPPlayer4_put_windowlessVideo(IWMPPlayer4 *iface, VARIANT_BOOL enabled)
387 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
388 FIXME("(%p)->(%x)\n", This, enabled);
389 return E_NOTIMPL;
392 static HRESULT WINAPI WMPPlayer4_get_isRemote(IWMPPlayer4 *iface, VARIANT_BOOL *pvarfIsRemote)
394 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
395 FIXME("(%p)->(%p)\n", This, pvarfIsRemote);
396 return E_NOTIMPL;
399 static HRESULT WINAPI WMPPlayer4_get_playerApplication(IWMPPlayer4 *iface, IWMPPlayerApplication **ppIWMPPlayerApplication)
401 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
402 FIXME("(%p)->(%p)\n", This, ppIWMPPlayerApplication);
403 return E_NOTIMPL;
406 static HRESULT WINAPI WMPPlayer4_openPlayer(IWMPPlayer4 *iface, BSTR url)
408 WindowsMediaPlayer *This = impl_from_IWMPPlayer4(iface);
409 FIXME("(%p)->(%s)\n", This, debugstr_w(url));
410 return E_NOTIMPL;
413 static HRESULT WINAPI WMPPlayer_QueryInterface(IWMPPlayer *iface, REFIID riid, void **ppv)
415 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
416 return WMPPlayer4_QueryInterface(&This->IWMPPlayer4_iface, riid, ppv);
419 static ULONG WINAPI WMPPlayer_AddRef(IWMPPlayer *iface)
421 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
422 return WMPPlayer4_AddRef(&This->IWMPPlayer4_iface);
425 static ULONG WINAPI WMPPlayer_Release(IWMPPlayer *iface)
427 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
428 return WMPPlayer4_Release(&This->IWMPPlayer4_iface);
431 static HRESULT WINAPI WMPPlayer_GetTypeInfoCount(IWMPPlayer *iface, UINT *pctinfo)
433 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
434 return WMPPlayer4_GetTypeInfoCount(&This->IWMPPlayer4_iface, pctinfo);
437 static HRESULT WINAPI WMPPlayer_GetTypeInfo(IWMPPlayer *iface, UINT iTInfo,
438 LCID lcid, ITypeInfo **ppTInfo)
440 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
442 return WMPPlayer4_GetTypeInfo(&This->IWMPPlayer4_iface, iTInfo,
443 lcid, ppTInfo);
446 static HRESULT WINAPI WMPPlayer_GetIDsOfNames(IWMPPlayer *iface, REFIID riid,
447 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
449 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
450 return WMPPlayer4_GetIDsOfNames(&This->IWMPPlayer4_iface, riid,
451 rgszNames, cNames, lcid, rgDispId);
454 static HRESULT WINAPI WMPPlayer_Invoke(IWMPPlayer *iface, DISPID dispIdMember,
455 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
456 EXCEPINFO *pExcepInfo, UINT *puArgErr)
458 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
459 return WMPPlayer4_Invoke(&This->IWMPPlayer4_iface, dispIdMember,
460 riid, lcid, wFlags, pDispParams, pVarResult,
461 pExcepInfo, puArgErr);
464 static HRESULT WINAPI WMPPlayer_close(IWMPPlayer *iface)
466 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
467 return WMPPlayer4_close(&This->IWMPPlayer4_iface);
470 static HRESULT WINAPI WMPPlayer_get_URL(IWMPPlayer *iface, BSTR *pbstrURL)
472 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
473 return WMPPlayer4_get_URL(&This->IWMPPlayer4_iface, pbstrURL);
476 static HRESULT WINAPI WMPPlayer_put_URL(IWMPPlayer *iface, BSTR url)
478 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
479 return WMPPlayer4_put_URL(&This->IWMPPlayer4_iface, url);
482 static HRESULT WINAPI WMPPlayer_get_openState(IWMPPlayer *iface, WMPOpenState *pwmpos)
484 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
485 return WMPPlayer4_get_openState(&This->IWMPPlayer4_iface, pwmpos);
488 static HRESULT WINAPI WMPPlayer_get_playState(IWMPPlayer *iface, WMPPlayState *pwmpps)
490 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
491 return WMPPlayer4_get_playState(&This->IWMPPlayer4_iface, pwmpps);
494 static HRESULT WINAPI WMPPlayer_get_controls(IWMPPlayer *iface, IWMPControls **ppControl)
496 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
497 return WMPPlayer4_get_controls(&This->IWMPPlayer4_iface, ppControl);
500 static HRESULT WINAPI WMPPlayer_get_settings(IWMPPlayer *iface, IWMPSettings **ppSettings)
502 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
503 return WMPPlayer4_get_settings(&This->IWMPPlayer4_iface, ppSettings);
506 static HRESULT WINAPI WMPPlayer_get_currentMedia(IWMPPlayer *iface, IWMPMedia **ppMedia)
508 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
509 return WMPPlayer4_get_currentMedia(&This->IWMPPlayer4_iface, ppMedia);
512 static HRESULT WINAPI WMPPlayer_put_currentMedia(IWMPPlayer *iface, IWMPMedia *pMedia)
514 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
515 return WMPPlayer4_put_currentMedia(&This->IWMPPlayer4_iface, pMedia);
518 static HRESULT WINAPI WMPPlayer_get_mediaCollection(IWMPPlayer *iface, IWMPMediaCollection **ppMediaCollection)
520 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
521 return WMPPlayer4_get_mediaCollection(&This->IWMPPlayer4_iface, ppMediaCollection);
524 static HRESULT WINAPI WMPPlayer_get_playlistCollection(IWMPPlayer *iface, IWMPPlaylistCollection **ppPlaylistCollection)
526 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
527 return WMPPlayer4_get_playlistCollection(&This->IWMPPlayer4_iface, ppPlaylistCollection);
530 static HRESULT WINAPI WMPPlayer_get_versionInfo(IWMPPlayer *iface, BSTR *version)
532 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
533 return WMPPlayer4_get_versionInfo(&This->IWMPPlayer4_iface, version);
536 static HRESULT WINAPI WMPPlayer_launchURL(IWMPPlayer *iface, BSTR url)
538 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
539 return WMPPlayer4_launchURL(&This->IWMPPlayer4_iface, url);
542 static HRESULT WINAPI WMPPlayer_get_network(IWMPPlayer *iface, IWMPNetwork **ppQNI)
544 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
545 return WMPPlayer4_get_network(&This->IWMPPlayer4_iface, ppQNI);
548 static HRESULT WINAPI WMPPlayer_get_currentPlaylist(IWMPPlayer *iface, IWMPPlaylist **ppPL)
550 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
551 return WMPPlayer4_get_currentPlaylist(&This->IWMPPlayer4_iface, ppPL);
554 static HRESULT WINAPI WMPPlayer_put_currentPlaylist(IWMPPlayer *iface, IWMPPlaylist *pPL)
556 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
557 return WMPPlayer4_put_currentPlaylist(&This->IWMPPlayer4_iface, pPL);
560 static HRESULT WINAPI WMPPlayer_get_cdromCollection(IWMPPlayer *iface, IWMPCdromCollection **ppCdromCollection)
562 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
563 return WMPPlayer4_get_cdromCollection(&This->IWMPPlayer4_iface, ppCdromCollection);
566 static HRESULT WINAPI WMPPlayer_get_closedCaption(IWMPPlayer *iface, IWMPClosedCaption **ppClosedCaption)
568 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
569 return WMPPlayer4_get_closedCaption(&This->IWMPPlayer4_iface, ppClosedCaption);
572 static HRESULT WINAPI WMPPlayer_get_isOnline(IWMPPlayer *iface, VARIANT_BOOL *pfOnline)
574 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
575 return WMPPlayer4_get_isOnline(&This->IWMPPlayer4_iface, pfOnline);
578 static HRESULT WINAPI WMPPlayer_get_Error(IWMPPlayer *iface, IWMPError **ppError)
580 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
581 return WMPPlayer4_get_Error(&This->IWMPPlayer4_iface, ppError);
584 static HRESULT WINAPI WMPPlayer_get_Status(IWMPPlayer *iface, BSTR *pbstrStatus)
586 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
587 return WMPPlayer4_get_Status(&This->IWMPPlayer4_iface, pbstrStatus);
590 static HRESULT WINAPI WMPPlayer_get_enabled(IWMPPlayer *iface, VARIANT_BOOL *pbEnabled)
592 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
593 return WMPPlayer4_get_enabled(&This->IWMPPlayer4_iface, pbEnabled);
596 static HRESULT WINAPI WMPPlayer_put_enabled(IWMPPlayer *iface, VARIANT_BOOL enabled)
598 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
599 return WMPPlayer4_put_enabled(&This->IWMPPlayer4_iface, enabled);
602 static HRESULT WINAPI WMPPlayer_get_fullScreen(IWMPPlayer *iface, VARIANT_BOOL *pbFullScreen)
604 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
605 return WMPPlayer4_get_fullScreen(&This->IWMPPlayer4_iface, pbFullScreen);
608 static HRESULT WINAPI WMPPlayer_put_fullScreen(IWMPPlayer *iface, VARIANT_BOOL fullscreen)
610 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
611 return WMPPlayer4_put_fullScreen(&This->IWMPPlayer4_iface, fullscreen);
614 static HRESULT WINAPI WMPPlayer_get_enableContextMenu(IWMPPlayer *iface, VARIANT_BOOL *pbEnableContextMenu)
616 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
617 return WMPPlayer4_get_enableContextMenu(&This->IWMPPlayer4_iface, pbEnableContextMenu);
620 static HRESULT WINAPI WMPPlayer_put_enableContextMenu(IWMPPlayer *iface, VARIANT_BOOL enable)
622 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
623 return WMPPlayer4_put_enableContextMenu(&This->IWMPPlayer4_iface, enable);
626 static HRESULT WINAPI WMPPlayer_put_uiMode(IWMPPlayer *iface, BSTR mode)
628 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
629 return WMPPlayer4_put_uiMode(&This->IWMPPlayer4_iface, mode);
632 static HRESULT WINAPI WMPPlayer_get_uiMode(IWMPPlayer *iface, BSTR *pbstrMode)
634 WindowsMediaPlayer *This = impl_from_IWMPPlayer(iface);
635 return WMPPlayer4_get_uiMode(&This->IWMPPlayer4_iface, pbstrMode);
638 static IWMPPlayerVtbl WMPPlayerVtbl = {
639 WMPPlayer_QueryInterface,
640 WMPPlayer_AddRef,
641 WMPPlayer_Release,
642 WMPPlayer_GetTypeInfoCount,
643 WMPPlayer_GetTypeInfo,
644 WMPPlayer_GetIDsOfNames,
645 WMPPlayer_Invoke,
646 WMPPlayer_close,
647 WMPPlayer_get_URL,
648 WMPPlayer_put_URL,
649 WMPPlayer_get_openState,
650 WMPPlayer_get_playState,
651 WMPPlayer_get_controls,
652 WMPPlayer_get_settings,
653 WMPPlayer_get_currentMedia,
654 WMPPlayer_put_currentMedia,
655 WMPPlayer_get_mediaCollection,
656 WMPPlayer_get_playlistCollection,
657 WMPPlayer_get_versionInfo,
658 WMPPlayer_launchURL,
659 WMPPlayer_get_network,
660 WMPPlayer_get_currentPlaylist,
661 WMPPlayer_put_currentPlaylist,
662 WMPPlayer_get_cdromCollection,
663 WMPPlayer_get_closedCaption,
664 WMPPlayer_get_isOnline,
665 WMPPlayer_get_Error,
666 WMPPlayer_get_Status,
667 WMPPlayer_get_enabled,
668 WMPPlayer_put_enabled,
669 WMPPlayer_get_fullScreen,
670 WMPPlayer_put_fullScreen,
671 WMPPlayer_get_enableContextMenu,
672 WMPPlayer_put_enableContextMenu,
673 WMPPlayer_put_uiMode,
674 WMPPlayer_get_uiMode,
678 static IWMPPlayer4Vtbl WMPPlayer4Vtbl = {
679 WMPPlayer4_QueryInterface,
680 WMPPlayer4_AddRef,
681 WMPPlayer4_Release,
682 WMPPlayer4_GetTypeInfoCount,
683 WMPPlayer4_GetTypeInfo,
684 WMPPlayer4_GetIDsOfNames,
685 WMPPlayer4_Invoke,
686 WMPPlayer4_close,
687 WMPPlayer4_get_URL,
688 WMPPlayer4_put_URL,
689 WMPPlayer4_get_openState,
690 WMPPlayer4_get_playState,
691 WMPPlayer4_get_controls,
692 WMPPlayer4_get_settings,
693 WMPPlayer4_get_currentMedia,
694 WMPPlayer4_put_currentMedia,
695 WMPPlayer4_get_mediaCollection,
696 WMPPlayer4_get_playlistCollection,
697 WMPPlayer4_get_versionInfo,
698 WMPPlayer4_launchURL,
699 WMPPlayer4_get_network,
700 WMPPlayer4_get_currentPlaylist,
701 WMPPlayer4_put_currentPlaylist,
702 WMPPlayer4_get_cdromCollection,
703 WMPPlayer4_get_closedCaption,
704 WMPPlayer4_get_isOnline,
705 WMPPlayer4_get_Error,
706 WMPPlayer4_get_Status,
707 WMPPlayer4_get_dvd,
708 WMPPlayer4_newPlaylist,
709 WMPPlayer4_newMedia,
710 WMPPlayer4_get_enabled,
711 WMPPlayer4_put_enabled,
712 WMPPlayer4_get_fullScreen,
713 WMPPlayer4_put_fullScreen,
714 WMPPlayer4_get_enableContextMenu,
715 WMPPlayer4_put_enableContextMenu,
716 WMPPlayer4_put_uiMode,
717 WMPPlayer4_get_uiMode,
718 WMPPlayer4_get_stretchToFit,
719 WMPPlayer4_put_stretchToFit,
720 WMPPlayer4_get_windowlessVideo,
721 WMPPlayer4_put_windowlessVideo,
722 WMPPlayer4_get_isRemote,
723 WMPPlayer4_get_playerApplication,
724 WMPPlayer4_openPlayer
727 static inline WindowsMediaPlayer *impl_from_IWMPSettings(IWMPSettings *iface)
729 return CONTAINING_RECORD(iface, WindowsMediaPlayer, IWMPSettings_iface);
732 static HRESULT WINAPI WMPSettings_QueryInterface(IWMPSettings *iface, REFIID riid, void **ppv)
734 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
735 return IOleObject_QueryInterface(&This->IOleObject_iface, riid, ppv);
738 static ULONG WINAPI WMPSettings_AddRef(IWMPSettings *iface)
740 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
741 return IOleObject_AddRef(&This->IOleObject_iface);
744 static ULONG WINAPI WMPSettings_Release(IWMPSettings *iface)
746 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
747 return IOleObject_Release(&This->IOleObject_iface);
750 static HRESULT WINAPI WMPSettings_GetTypeInfoCount(IWMPSettings *iface, UINT *pctinfo)
752 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
753 FIXME("(%p)->(%p)\n", This, pctinfo);
754 return E_NOTIMPL;
757 static HRESULT WINAPI WMPSettings_GetTypeInfo(IWMPSettings *iface, UINT iTInfo,
758 LCID lcid, ITypeInfo **ppTInfo)
760 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
761 FIXME("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
762 return E_NOTIMPL;
765 static HRESULT WINAPI WMPSettings_GetIDsOfNames(IWMPSettings *iface, REFIID riid,
766 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
768 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
769 FIXME("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
770 return E_NOTIMPL;
773 static HRESULT WINAPI WMPSettings_Invoke(IWMPSettings *iface, DISPID dispIdMember,
774 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
775 EXCEPINFO *pExcepInfo, UINT *puArgErr)
777 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
778 FIXME("(%p)->(%d %s %d %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid,
779 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
780 return E_NOTIMPL;
783 static HRESULT WINAPI WMPSettings_get_isAvailable(IWMPSettings *iface, BSTR item, VARIANT_BOOL *p)
785 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
786 FIXME("(%p)->(%s %p)\n", This, debugstr_w(item), p);
787 return E_NOTIMPL;
790 static HRESULT WINAPI WMPSettings_get_autoStart(IWMPSettings *iface, VARIANT_BOOL *p)
792 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
793 TRACE("(%p)->(%p)\n", This, p);
794 if (!p)
795 return E_POINTER;
796 *p = This->auto_start;
797 return S_OK;
800 static HRESULT WINAPI WMPSettings_put_autoStart(IWMPSettings *iface, VARIANT_BOOL v)
802 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
803 TRACE("(%p)->(%x)\n", This, v);
804 This->auto_start = v;
805 return S_OK;
808 static HRESULT WINAPI WMPSettings_get_baseURL(IWMPSettings *iface, BSTR *p)
810 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
811 FIXME("(%p)->(%p)\n", This, p);
812 return E_NOTIMPL;
815 static HRESULT WINAPI WMPSettings_put_baseURL(IWMPSettings *iface, BSTR v)
817 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
818 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
819 return E_NOTIMPL;
822 static HRESULT WINAPI WMPSettings_get_defaultFrame(IWMPSettings *iface, BSTR *p)
824 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
825 FIXME("(%p)->(%p)\n", This, p);
826 return E_NOTIMPL;
829 static HRESULT WINAPI WMPSettings_put_defaultFrame(IWMPSettings *iface, BSTR v)
831 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
832 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
833 return E_NOTIMPL;
836 static HRESULT WINAPI WMPSettings_get_invokeURLs(IWMPSettings *iface, VARIANT_BOOL *p)
838 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
840 TRACE("(%p)->(%p)\n", This, p);
842 if (!p)
843 return E_POINTER;
844 *p = This->invoke_urls;
845 return S_OK;
848 static HRESULT WINAPI WMPSettings_put_invokeURLs(IWMPSettings *iface, VARIANT_BOOL v)
850 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
851 /* Leaving as FIXME as we don't currently use this */
852 FIXME("(%p)->(%x)\n", This, v);
853 This->invoke_urls = v;
854 return S_OK;
857 static HRESULT WINAPI WMPSettings_get_mute(IWMPSettings *iface, VARIANT_BOOL *p)
859 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
860 FIXME("(%p)->(%p)\n", This, p);
861 return E_NOTIMPL;
864 static HRESULT WINAPI WMPSettings_put_mute(IWMPSettings *iface, VARIANT_BOOL v)
866 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
867 FIXME("(%p)->(%x)\n", This, v);
868 return E_NOTIMPL;
871 static HRESULT WINAPI WMPSettings_get_playCount(IWMPSettings *iface, LONG *p)
873 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
874 FIXME("(%p)->(%p)\n", This, p);
875 return E_NOTIMPL;
878 static HRESULT WINAPI WMPSettings_put_playCount(IWMPSettings *iface, LONG v)
880 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
881 FIXME("(%p)->(%d)\n", This, v);
882 return E_NOTIMPL;
885 static HRESULT WINAPI WMPSettings_get_rate(IWMPSettings *iface, double *p)
887 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
888 FIXME("(%p)->(%p)\n", This, p);
889 return E_NOTIMPL;
892 static HRESULT WINAPI WMPSettings_put_rate(IWMPSettings *iface, double v)
894 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
895 FIXME("(%p)->(%lf)\n", This, v);
896 return E_NOTIMPL;
899 static HRESULT WINAPI WMPSettings_get_balance(IWMPSettings *iface, LONG *p)
901 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
902 FIXME("(%p)->(%p)\n", This, p);
903 return E_NOTIMPL;
906 static HRESULT WINAPI WMPSettings_put_balance(IWMPSettings *iface, LONG v)
908 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
909 FIXME("(%p)->(%d)\n", This, v);
910 return E_NOTIMPL;
913 static HRESULT WINAPI WMPSettings_get_volume(IWMPSettings *iface, LONG *p)
915 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
916 FIXME("(%p)->(%p)\n", This, p);
917 return E_NOTIMPL;
920 static HRESULT WINAPI WMPSettings_put_volume(IWMPSettings *iface, LONG v)
922 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
923 FIXME("(%p)->(%d)\n", This, v);
924 return E_NOTIMPL;
927 static HRESULT WINAPI WMPSettings_getMode(IWMPSettings *iface, BSTR mode, VARIANT_BOOL *p)
929 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
930 FIXME("(%p)->(%s %p)\n", This, debugstr_w(mode), p);
931 return E_NOTIMPL;
934 static HRESULT WINAPI WMPSettings_setMode(IWMPSettings *iface, BSTR mode, VARIANT_BOOL v)
936 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
937 FIXME("(%p)->(%s %x)\n", This, debugstr_w(mode), v);
938 return E_NOTIMPL;
941 static HRESULT WINAPI WMPSettings_get_enableErrorDialogs(IWMPSettings *iface, VARIANT_BOOL *p)
943 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
945 TRACE("(%p)->(%p)\n", This, p);
947 if (!p)
948 return E_POINTER;
949 *p = This->enable_error_dialogs;
950 return S_OK;
953 static HRESULT WINAPI WMPSettings_put_enableErrorDialogs(IWMPSettings *iface, VARIANT_BOOL v)
955 WindowsMediaPlayer *This = impl_from_IWMPSettings(iface);
956 /* Leaving as FIXME as we don't currently use this */
957 FIXME("(%p)->(%x)\n", This, v);
958 This->enable_error_dialogs = v;
959 return S_OK;
962 static const IWMPSettingsVtbl WMPSettingsVtbl = {
963 WMPSettings_QueryInterface,
964 WMPSettings_AddRef,
965 WMPSettings_Release,
966 WMPSettings_GetTypeInfoCount,
967 WMPSettings_GetTypeInfo,
968 WMPSettings_GetIDsOfNames,
969 WMPSettings_Invoke,
970 WMPSettings_get_isAvailable,
971 WMPSettings_get_autoStart,
972 WMPSettings_put_autoStart,
973 WMPSettings_get_baseURL,
974 WMPSettings_put_baseURL,
975 WMPSettings_get_defaultFrame,
976 WMPSettings_put_defaultFrame,
977 WMPSettings_get_invokeURLs,
978 WMPSettings_put_invokeURLs,
979 WMPSettings_get_mute,
980 WMPSettings_put_mute,
981 WMPSettings_get_playCount,
982 WMPSettings_put_playCount,
983 WMPSettings_get_rate,
984 WMPSettings_put_rate,
985 WMPSettings_get_balance,
986 WMPSettings_put_balance,
987 WMPSettings_get_volume,
988 WMPSettings_put_volume,
989 WMPSettings_getMode,
990 WMPSettings_setMode,
991 WMPSettings_get_enableErrorDialogs,
992 WMPSettings_put_enableErrorDialogs
995 static HRESULT WINAPI WMPNetwork_QueryInterface(IWMPNetwork *iface, REFIID riid, void **ppv)
997 if(IsEqualGUID(riid, &IID_IDispatch)) {
998 *ppv = iface;
999 }else if(IsEqualGUID(riid, &IID_IWMPNetwork)) {
1000 *ppv = iface;
1001 }else {
1002 WARN("Unsupported interface (%s)\n", wine_dbgstr_guid(riid));
1003 *ppv = NULL;
1004 return E_NOINTERFACE;
1007 IUnknown_AddRef((IUnknown*)*ppv);
1008 return S_OK;
1011 static ULONG WINAPI WMPNetwork_AddRef(IWMPNetwork *iface)
1013 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1014 return IOleObject_AddRef(&This->IOleObject_iface);
1017 static ULONG WINAPI WMPNetwork_Release(IWMPNetwork *iface)
1019 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1020 return IOleObject_Release(&This->IOleObject_iface);
1023 static HRESULT WINAPI WMPNetwork_GetTypeInfoCount(IWMPNetwork *iface, UINT *pctinfo)
1025 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1026 FIXME("(%p)->(%p)\n", This, pctinfo);
1027 return E_NOTIMPL;
1030 static HRESULT WINAPI WMPNetwork_GetTypeInfo(IWMPNetwork *iface, UINT iTInfo,
1031 LCID lcid, ITypeInfo **ppTInfo)
1033 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1034 FIXME("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
1035 return E_NOTIMPL;
1038 static HRESULT WINAPI WMPNetwork_GetIDsOfNames(IWMPNetwork *iface, REFIID riid,
1039 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
1041 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1042 FIXME("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
1043 return E_NOTIMPL;
1046 static HRESULT WINAPI WMPNetwork_Invoke(IWMPNetwork *iface, DISPID dispIdMember,
1047 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
1048 EXCEPINFO *pExcepInfo, UINT *puArgErr)
1050 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1051 FIXME("(%p)->(%d %s %d %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid,
1052 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1053 return E_NOTIMPL;
1056 static HRESULT WINAPI WMPNetwork_get_bandWidth(IWMPNetwork *iface, LONG *plBandwidth)
1058 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1059 FIXME("(%p)->(%p)\n", This, plBandwidth);
1060 return E_NOTIMPL;
1063 static HRESULT WINAPI WMPNetwork_get_recoveredPackets(IWMPNetwork *iface, LONG *plRecoveredPackets)
1065 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1066 FIXME("(%p)->(%p)\n", This, plRecoveredPackets);
1067 return E_NOTIMPL;
1070 static HRESULT WINAPI WMPNetwork_get_sourceProtocol(IWMPNetwork *iface, BSTR *pbstrSourceProtocol)
1072 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1073 FIXME("(%p)->(%p)\n", This, pbstrSourceProtocol);
1074 return E_NOTIMPL;
1077 static HRESULT WINAPI WMPNetwork_get_receivedPackets(IWMPNetwork *iface, LONG *plReceivedPackets)
1079 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1080 FIXME("(%p)->(%p)\n", This, plReceivedPackets);
1081 return E_NOTIMPL;
1084 static HRESULT WINAPI WMPNetwork_get_lostPackets(IWMPNetwork *iface, LONG *plLostPackets)
1086 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1087 FIXME("(%p)->(%p)\n", This, plLostPackets);
1088 return E_NOTIMPL;
1091 static HRESULT WINAPI WMPNetwork_get_receptionQuality(IWMPNetwork *iface, LONG *plReceptionQuality)
1093 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1094 FIXME("(%p)->(%p)\n", This, plReceptionQuality);
1095 return E_NOTIMPL;
1098 static HRESULT WINAPI WMPNetwork_get_bufferingCount(IWMPNetwork *iface, LONG *plBufferingCount)
1100 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1101 FIXME("(%p)->(%p)\n", This, plBufferingCount);
1102 return E_NOTIMPL;
1105 static HRESULT WINAPI WMPNetwork_get_bufferingProgress(IWMPNetwork *iface, LONG *plBufferingProgress)
1107 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1108 FIXME("(%p)->(%p)\n", This, plBufferingProgress);
1109 return E_NOTIMPL;
1112 static HRESULT WINAPI WMPNetwork_get_bufferingTime(IWMPNetwork *iface, LONG *plBufferingTime)
1114 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1115 FIXME("(%p)->(%p)\n", This, plBufferingTime);
1116 return E_NOTIMPL;
1119 static HRESULT WINAPI WMPNetwork_put_bufferingTime(IWMPNetwork *iface, LONG lBufferingTime)
1121 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1122 FIXME("(%p)->(%d)\n", This, lBufferingTime);
1123 return E_NOTIMPL;
1126 static HRESULT WINAPI WMPNetwork_get_frameRate(IWMPNetwork *iface, LONG *plFrameRate)
1128 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1129 FIXME("(%p)->(%p)\n", This, plFrameRate);
1130 return E_NOTIMPL;
1133 static HRESULT WINAPI WMPNetwork_get_maxBitRate(IWMPNetwork *iface, LONG *plBitRate)
1135 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1136 FIXME("(%p)->(%p)\n", This, plBitRate);
1137 return E_NOTIMPL;
1140 static HRESULT WINAPI WMPNetwork_get_bitRate(IWMPNetwork *iface, LONG *plBitRate)
1142 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1143 FIXME("(%p)->(%p)\n", This, plBitRate);
1144 return E_NOTIMPL;
1147 static HRESULT WINAPI WMPNetwork_getProxySettings(IWMPNetwork *iface, BSTR bstrProtocol, LONG *plProxySetting)
1149 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1150 FIXME("(%p)->(%s, %p)\n", This, debugstr_w(bstrProtocol), plProxySetting);
1151 return E_NOTIMPL;
1154 static HRESULT WINAPI WMPNetwork_setProxySettings(IWMPNetwork *iface, BSTR bstrProtocol, LONG lProxySetting)
1156 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1157 FIXME("(%p)->(%s, %d)\n", This, debugstr_w(bstrProtocol), lProxySetting);
1158 return E_NOTIMPL;
1161 static HRESULT WINAPI WMPNetwork_getProxyName(IWMPNetwork *iface, BSTR bstrProtocol, BSTR *pbstrProxyName)
1163 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1164 FIXME("(%p)->(%s, %p)\n", This, debugstr_w(bstrProtocol), pbstrProxyName);
1165 return E_NOTIMPL;
1168 static HRESULT WINAPI WMPNetwork_setProxyName(IWMPNetwork *iface, BSTR bstrProtocol, BSTR bstrProxyName)
1170 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1171 FIXME("(%p)->(%s, %s)\n", This, debugstr_w(bstrProtocol), debugstr_w(bstrProxyName));
1172 return E_NOTIMPL;
1175 static HRESULT WINAPI WMPNetwork_getProxyPort(IWMPNetwork *iface, BSTR bstrProtocol, LONG *plProxyPort)
1177 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1178 FIXME("(%p)->(%s, %p)\n", This, debugstr_w(bstrProtocol), plProxyPort);
1179 return E_NOTIMPL;
1182 static HRESULT WINAPI WMPNetwork_setProxyPort(IWMPNetwork *iface, BSTR bstrProtocol, LONG lProxyPort)
1184 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1185 FIXME("(%p)->(%s, %d)\n", This, debugstr_w(bstrProtocol), lProxyPort);
1186 return E_NOTIMPL;
1189 static HRESULT WINAPI WMPNetwork_getProxyExceptionList(IWMPNetwork *iface, BSTR bstrProtocol, BSTR *pbstrExceptionList)
1191 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1192 FIXME("(%p)->(%s, %p)\n", This, debugstr_w(bstrProtocol), pbstrExceptionList);
1193 return E_NOTIMPL;
1196 static HRESULT WINAPI WMPNetwork_setProxyExceptionList(IWMPNetwork *iface, BSTR bstrProtocol, BSTR bstrExceptionList)
1198 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1199 FIXME("(%p)->(%s, %s)\n", This, debugstr_w(bstrProtocol), debugstr_w(bstrExceptionList));
1200 return E_NOTIMPL;
1203 static HRESULT WINAPI WMPNetwork_getProxyBypassForLocal(IWMPNetwork *iface, BSTR bstrProtocol, VARIANT_BOOL *pfBypassForLocal)
1205 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1206 FIXME("(%p)->(%s, %p)\n", This, debugstr_w(bstrProtocol), pfBypassForLocal);
1207 return E_NOTIMPL;
1210 static HRESULT WINAPI WMPNetwork_setProxyBypassForLocal(IWMPNetwork *iface, BSTR bstrProtocol, VARIANT_BOOL fBypassForLocal)
1212 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1213 FIXME("(%p)->(%s, %d)\n", This, debugstr_w(bstrProtocol), fBypassForLocal);
1214 return E_NOTIMPL;
1217 static HRESULT WINAPI WMPNetwork_get_maxBandwidth(IWMPNetwork *iface, LONG *plMaxBandwidth)
1219 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1220 FIXME("(%p)->(%p)\n", This, plMaxBandwidth);
1221 return E_NOTIMPL;
1224 static HRESULT WINAPI WMPNetwork_put_maxBandwidth(IWMPNetwork *iface, LONG lMaxBandwidth)
1226 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1227 FIXME("(%p)->(%d)\n", This, lMaxBandwidth);
1228 return E_NOTIMPL;
1231 static HRESULT WINAPI WMPNetwork_get_downloadProgress(IWMPNetwork *iface, LONG *plDownloadProgress)
1233 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1234 FIXME("(%p)->(%p)\n", This, plDownloadProgress);
1235 return E_NOTIMPL;
1238 static HRESULT WINAPI WMPNetwork_get_encodedFrameRate(IWMPNetwork *iface, LONG *plFrameRate)
1240 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1241 FIXME("(%p)->(%p)\n", This, plFrameRate);
1242 return E_NOTIMPL;
1245 static HRESULT WINAPI WMPNetwork_get_framesSkipped(IWMPNetwork *iface, LONG *plFrames)
1247 WindowsMediaPlayer *This = impl_from_IWMPNetwork(iface);
1248 FIXME("(%p)->(%p)\n", This, plFrames);
1249 return E_NOTIMPL;
1252 static const IWMPNetworkVtbl WMPNetworkVtbl = {
1253 WMPNetwork_QueryInterface,
1254 WMPNetwork_AddRef,
1255 WMPNetwork_Release,
1256 WMPNetwork_GetTypeInfoCount,
1257 WMPNetwork_GetTypeInfo,
1258 WMPNetwork_GetIDsOfNames,
1259 WMPNetwork_Invoke,
1260 WMPNetwork_get_bandWidth,
1261 WMPNetwork_get_recoveredPackets,
1262 WMPNetwork_get_sourceProtocol,
1263 WMPNetwork_get_receivedPackets,
1264 WMPNetwork_get_lostPackets,
1265 WMPNetwork_get_receptionQuality,
1266 WMPNetwork_get_bufferingCount,
1267 WMPNetwork_get_bufferingProgress,
1268 WMPNetwork_get_bufferingTime,
1269 WMPNetwork_put_bufferingTime,
1270 WMPNetwork_get_frameRate,
1271 WMPNetwork_get_maxBitRate,
1272 WMPNetwork_get_bitRate,
1273 WMPNetwork_getProxySettings,
1274 WMPNetwork_setProxySettings,
1275 WMPNetwork_getProxyName,
1276 WMPNetwork_setProxyName,
1277 WMPNetwork_getProxyPort,
1278 WMPNetwork_setProxyPort,
1279 WMPNetwork_getProxyExceptionList,
1280 WMPNetwork_setProxyExceptionList,
1281 WMPNetwork_getProxyBypassForLocal,
1282 WMPNetwork_setProxyBypassForLocal,
1283 WMPNetwork_get_maxBandwidth,
1284 WMPNetwork_put_maxBandwidth,
1285 WMPNetwork_get_downloadProgress,
1286 WMPNetwork_get_encodedFrameRate,
1287 WMPNetwork_get_framesSkipped,
1290 static HRESULT WINAPI WMPControls_QueryInterface(IWMPControls *iface, REFIID riid, void **ppv)
1292 if(IsEqualGUID(riid, &IID_IDispatch)) {
1293 *ppv = iface;
1294 }else if(IsEqualGUID(riid, &IID_IWMPControls)) {
1295 *ppv = iface;
1296 }else {
1297 WARN("Unsupported interface (%s)\n", wine_dbgstr_guid(riid));
1298 *ppv = NULL;
1299 return E_NOINTERFACE;
1302 IUnknown_AddRef((IUnknown*)*ppv);
1303 return S_OK;
1306 static ULONG WINAPI WMPControls_AddRef(IWMPControls *iface)
1308 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1309 return IOleObject_AddRef(&This->IOleObject_iface);
1312 static ULONG WINAPI WMPControls_Release(IWMPControls *iface)
1314 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1315 return IOleObject_Release(&This->IOleObject_iface);
1318 static HRESULT WINAPI WMPControls_GetTypeInfoCount(IWMPControls *iface, UINT *pctinfo)
1320 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1321 FIXME("(%p)->(%p)\n", This, pctinfo);
1322 return E_NOTIMPL;
1325 static HRESULT WINAPI WMPControls_GetTypeInfo(IWMPControls *iface, UINT iTInfo,
1326 LCID lcid, ITypeInfo **ppTInfo)
1328 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1329 FIXME("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
1330 return E_NOTIMPL;
1333 static HRESULT WINAPI WMPControls_GetIDsOfNames(IWMPControls *iface, REFIID riid,
1334 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
1336 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1337 FIXME("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
1338 return E_NOTIMPL;
1341 static HRESULT WINAPI WMPControls_Invoke(IWMPControls *iface, DISPID dispIdMember,
1342 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
1343 EXCEPINFO *pExcepInfo, UINT *puArgErr)
1345 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1346 FIXME("(%p)->(%d %s %d %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid,
1347 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1348 return E_NOTIMPL;
1351 static HRESULT WINAPI WMPControls_get_isAvailable(IWMPControls *iface, BSTR bstrItem, VARIANT_BOOL *pIsAvailable)
1353 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1354 FIXME("(%p)->(%s)\n", This, debugstr_w(bstrItem));
1355 return E_NOTIMPL;
1358 static HRESULT WINAPI WMPControls_play(IWMPControls *iface)
1360 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1361 FIXME("(%p)\n", This);
1362 return E_NOTIMPL;
1365 static HRESULT WINAPI WMPControls_stop(IWMPControls *iface)
1367 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1368 FIXME("(%p)\n", This);
1369 return E_NOTIMPL;
1372 static HRESULT WINAPI WMPControls_pause(IWMPControls *iface)
1374 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1375 FIXME("(%p)\n", This);
1376 return E_NOTIMPL;
1379 static HRESULT WINAPI WMPControls_fastForward(IWMPControls *iface)
1381 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1382 FIXME("(%p)\n", This);
1383 return E_NOTIMPL;
1386 static HRESULT WINAPI WMPControls_fastReverse(IWMPControls *iface)
1388 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1389 FIXME("(%p)\n", This);
1390 return E_NOTIMPL;
1393 static HRESULT WINAPI WMPControls_get_currentPosition(IWMPControls *iface, DOUBLE *pdCurrentPosition)
1395 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1396 FIXME("(%p)->(%p)\n", This, pdCurrentPosition);
1397 return E_NOTIMPL;
1400 static HRESULT WINAPI WMPControls_put_currentPosition(IWMPControls *iface, DOUBLE dCurrentPosition)
1402 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1403 FIXME("(%p)->(%f)\n", This, dCurrentPosition);
1404 return E_NOTIMPL;
1407 static HRESULT WINAPI WMPControls_get_currentPositionString(IWMPControls *iface, BSTR *pbstrCurrentPosition)
1409 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1410 FIXME("(%p)->(%p)\n", This, pbstrCurrentPosition);
1411 return E_NOTIMPL;
1414 static HRESULT WINAPI WMPControls_next(IWMPControls *iface)
1416 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1417 FIXME("(%p)\n", This);
1418 return E_NOTIMPL;
1421 static HRESULT WINAPI WMPControls_previous(IWMPControls *iface)
1423 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1424 FIXME("(%p)\n", This);
1425 return E_NOTIMPL;
1428 static HRESULT WINAPI WMPControls_get_currentItem(IWMPControls *iface, IWMPMedia **ppIWMPMedia)
1430 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1431 FIXME("(%p)->(%p)\n", This, ppIWMPMedia);
1432 return E_NOTIMPL;
1435 static HRESULT WINAPI WMPControls_put_currentItem(IWMPControls *iface, IWMPMedia *pIWMPMedia)
1437 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1438 FIXME("(%p)->(%p)\n", This, pIWMPMedia);
1439 return E_NOTIMPL;
1442 static HRESULT WINAPI WMPControls_get_currentMarker(IWMPControls *iface, LONG *plMarker)
1444 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1445 FIXME("(%p)->(%p)\n", This, plMarker);
1446 return E_NOTIMPL;
1449 static HRESULT WINAPI WMPControls_put_currentMarker(IWMPControls *iface, LONG lMarker)
1451 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1452 FIXME("(%p)->(%d)\n", This, lMarker);
1453 return E_NOTIMPL;
1456 static HRESULT WINAPI WMPControls_playItem(IWMPControls *iface, IWMPMedia *pIWMPMedia)
1458 WindowsMediaPlayer *This = impl_from_IWMPControls(iface);
1459 FIXME("(%p)->(%p)\n", This, pIWMPMedia);
1460 return E_NOTIMPL;
1463 static const IWMPControlsVtbl WMPControlsVtbl = {
1464 WMPControls_QueryInterface,
1465 WMPControls_AddRef,
1466 WMPControls_Release,
1467 WMPControls_GetTypeInfoCount,
1468 WMPControls_GetTypeInfo,
1469 WMPControls_GetIDsOfNames,
1470 WMPControls_Invoke,
1471 WMPControls_get_isAvailable,
1472 WMPControls_play,
1473 WMPControls_stop,
1474 WMPControls_pause,
1475 WMPControls_fastForward,
1476 WMPControls_fastReverse,
1477 WMPControls_get_currentPosition,
1478 WMPControls_put_currentPosition,
1479 WMPControls_get_currentPositionString,
1480 WMPControls_next,
1481 WMPControls_previous,
1482 WMPControls_get_currentItem,
1483 WMPControls_put_currentItem,
1484 WMPControls_get_currentMarker,
1485 WMPControls_put_currentMarker,
1486 WMPControls_playItem,
1489 static HRESULT WINAPI WMPMedia_QueryInterface(IWMPMedia *iface, REFIID riid, void **ppv)
1491 WMPMedia *This = impl_from_IWMPMedia(iface);
1492 TRACE("(%p)\n", This);
1493 if(IsEqualGUID(&IID_IUnknown, riid)) {
1494 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
1495 *ppv = &This->IWMPMedia_iface;
1496 }else if(IsEqualGUID(&IID_IDispatch, riid)) {
1497 TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
1498 *ppv = &This->IWMPMedia_iface;
1499 }else if(IsEqualGUID(&IID_IWMPMedia, riid)) {
1500 TRACE("(%p)->(IID_IWMPMedia %p)\n", This, ppv);
1501 *ppv = &This->IWMPMedia_iface;
1502 }else {
1503 WARN("Unsupported interface %s\n", debugstr_guid(riid));
1504 *ppv = NULL;
1505 return E_NOINTERFACE;
1508 IUnknown_AddRef((IUnknown*)*ppv);
1509 return S_OK;
1512 static ULONG WINAPI WMPMedia_AddRef(IWMPMedia *iface)
1514 WMPMedia *This = impl_from_IWMPMedia(iface);
1515 LONG ref = InterlockedIncrement(&This->ref);
1517 TRACE("(%p) ref=%d\n", This, ref);
1519 return ref;
1522 static ULONG WINAPI WMPMedia_Release(IWMPMedia *iface)
1524 WMPMedia *This = impl_from_IWMPMedia(iface);
1525 LONG ref = InterlockedDecrement(&This->ref);
1527 TRACE("(%p) ref=%d\n", This, ref);
1529 if(!ref) {
1530 heap_free(This->url);
1531 heap_free(This);
1534 return ref;
1537 static HRESULT WINAPI WMPMedia_GetTypeInfoCount(IWMPMedia *iface, UINT *pctinfo)
1539 WMPMedia *This = impl_from_IWMPMedia(iface);
1540 FIXME("(%p)->(%p)\n", This, pctinfo);
1541 return E_NOTIMPL;
1544 static HRESULT WINAPI WMPMedia_GetTypeInfo(IWMPMedia *iface, UINT iTInfo,
1545 LCID lcid, ITypeInfo **ppTInfo)
1547 WMPMedia *This = impl_from_IWMPMedia(iface);
1548 FIXME("(%p)->(%u %d %p)\n", This, iTInfo, lcid, ppTInfo);
1549 return E_NOTIMPL;
1552 static HRESULT WINAPI WMPMedia_GetIDsOfNames(IWMPMedia *iface, REFIID riid,
1553 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
1555 WMPMedia *This = impl_from_IWMPMedia(iface);
1556 FIXME("(%p)->(%s %p %u %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
1557 return E_NOTIMPL;
1560 static HRESULT WINAPI WMPMedia_Invoke(IWMPMedia *iface, DISPID dispIdMember,
1561 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
1562 EXCEPINFO *pExcepInfo, UINT *puArgErr)
1564 WMPMedia *This = impl_from_IWMPMedia(iface);
1565 FIXME("(%p)->(%d %s %d %x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), lcid,
1566 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1567 return E_NOTIMPL;
1570 static HRESULT WINAPI WMPMedia_get_isIdentical(IWMPMedia *iface, IWMPMedia *other, VARIANT_BOOL *pvBool)
1572 WMPMedia *This = impl_from_IWMPMedia(iface);
1573 FIXME("(%p)->(%p, %p)\n", This, other, pvBool);
1574 return E_NOTIMPL;
1577 static HRESULT WINAPI WMPMedia_get_sourceURL(IWMPMedia *iface, BSTR *pbstrSourceUrl)
1579 WMPMedia *This = impl_from_IWMPMedia(iface);
1580 BSTR url;
1581 TRACE("(%p)->(%p)\n", This, pbstrSourceUrl);
1582 url = SysAllocString(This->url);
1583 if (url) {
1584 *pbstrSourceUrl = url;
1585 return S_OK;
1587 return E_OUTOFMEMORY;
1590 static HRESULT WINAPI WMPMedia_get_name(IWMPMedia *iface, BSTR *pbstrName)
1592 WMPMedia *This = impl_from_IWMPMedia(iface);
1593 FIXME("(%p)->(%p)\n", This, pbstrName);
1594 return E_NOTIMPL;
1597 static HRESULT WINAPI WMPMedia_put_name(IWMPMedia *iface, BSTR pbstrName)
1599 WMPMedia *This = impl_from_IWMPMedia(iface);
1600 FIXME("(%p)->(%s)\n", This, debugstr_w(pbstrName));
1601 return E_NOTIMPL;
1604 static HRESULT WINAPI WMPMedia_get_imageSourceWidth(IWMPMedia *iface, LONG *pWidth)
1606 WMPMedia *This = impl_from_IWMPMedia(iface);
1607 FIXME("(%p)->(%p)\n", This, pWidth);
1608 return E_NOTIMPL;
1611 static HRESULT WINAPI WMPMedia_get_imageSourceHeight(IWMPMedia *iface, LONG *pHeight)
1613 WMPMedia *This = impl_from_IWMPMedia(iface);
1614 FIXME("(%p)->(%p)\n", This, pHeight);
1615 return E_NOTIMPL;
1618 static HRESULT WINAPI WMPMedia_get_markerCount(IWMPMedia *iface, LONG* pMarkerCount)
1620 WMPMedia *This = impl_from_IWMPMedia(iface);
1621 FIXME("(%p)->(%p)\n", This, pMarkerCount);
1622 return E_NOTIMPL;
1625 static HRESULT WINAPI WMPMedia_getMarkerTime(IWMPMedia *iface, LONG MarkerNum, DOUBLE *pMarkerTime)
1627 WMPMedia *This = impl_from_IWMPMedia(iface);
1628 FIXME("(%p)->(%d, %p)\n", This, MarkerNum, pMarkerTime);
1629 return E_NOTIMPL;
1632 static HRESULT WINAPI WMPMedia_getMarkerName(IWMPMedia *iface, LONG MarkerNum, BSTR *pbstrMarkerName)
1634 WMPMedia *This = impl_from_IWMPMedia(iface);
1635 FIXME("(%p)->(%d, %p)\n", This, MarkerNum, pbstrMarkerName);
1636 return E_NOTIMPL;
1639 static HRESULT WINAPI WMPMedia_get_duration(IWMPMedia *iface, DOUBLE *pDuration)
1641 WMPMedia *This = impl_from_IWMPMedia(iface);
1642 FIXME("(%p)->(%p)\n", This, pDuration);
1643 return E_NOTIMPL;
1646 static HRESULT WINAPI WMPMedia_get_durationString(IWMPMedia *iface, BSTR *pbstrDuration)
1648 WMPMedia *This = impl_from_IWMPMedia(iface);
1649 FIXME("(%p)->(%p)\n", This, pbstrDuration);
1650 return E_NOTIMPL;
1653 static HRESULT WINAPI WMPMedia_get_attributeCount(IWMPMedia *iface, LONG *plCount)
1655 WMPMedia *This = impl_from_IWMPMedia(iface);
1656 FIXME("(%p)->(%p)\n", This, plCount);
1657 return E_NOTIMPL;
1660 static HRESULT WINAPI WMPMedia_getAttributeName(IWMPMedia *iface, LONG lIndex, BSTR *pbstrItemName)
1662 WMPMedia *This = impl_from_IWMPMedia(iface);
1663 FIXME("(%p)->(%d, %p)\n", This, lIndex, pbstrItemName);
1664 return E_NOTIMPL;
1667 static HRESULT WINAPI WMPMedia_getItemInfo(IWMPMedia *iface, BSTR bstrItemName, BSTR *pbstrVal)
1669 WMPMedia *This = impl_from_IWMPMedia(iface);
1670 FIXME("(%p)->(%s, %p)\n", This, debugstr_w(bstrItemName), pbstrVal);
1671 return E_NOTIMPL;
1674 static HRESULT WINAPI WMPMedia_setItemInfo(IWMPMedia *iface, BSTR bstrItemName, BSTR bstrVal)
1676 WMPMedia *This = impl_from_IWMPMedia(iface);
1677 FIXME("(%p)->(%s, %s)\n", This, debugstr_w(bstrItemName), debugstr_w(bstrVal));
1678 return E_NOTIMPL;
1681 static HRESULT WINAPI WMPMedia_getItemInfoByAtom(IWMPMedia *iface, LONG lAtom, BSTR *pbstrVal)
1683 WMPMedia *This = impl_from_IWMPMedia(iface);
1684 FIXME("(%p)->(%d, %p)\n", This, lAtom, pbstrVal);
1685 return E_NOTIMPL;
1688 static HRESULT WINAPI WMPMedia_isMemberOf(IWMPMedia *iface, IWMPPlaylist *pPlaylist, VARIANT_BOOL *pvarfIsMemberOf)
1690 WMPMedia *This = impl_from_IWMPMedia(iface);
1691 FIXME("(%p)->(%p, %p)\n", This, pPlaylist, pvarfIsMemberOf);
1692 return E_NOTIMPL;
1695 static HRESULT WINAPI WMPMedia_isReadOnlyItem(IWMPMedia *iface, BSTR bstrItemName, VARIANT_BOOL *pvarfIsReadOnly)
1697 WMPMedia *This = impl_from_IWMPMedia(iface);
1698 FIXME("(%p)->(%s, %p)\n", This, debugstr_w(bstrItemName), pvarfIsReadOnly);
1699 return E_NOTIMPL;
1702 static const IWMPMediaVtbl WMPMediaVtbl = {
1703 WMPMedia_QueryInterface,
1704 WMPMedia_AddRef,
1705 WMPMedia_Release,
1706 WMPMedia_GetTypeInfoCount,
1707 WMPMedia_GetTypeInfo,
1708 WMPMedia_GetIDsOfNames,
1709 WMPMedia_Invoke,
1710 WMPMedia_get_isIdentical,
1711 WMPMedia_get_sourceURL,
1712 WMPMedia_get_name,
1713 WMPMedia_put_name,
1714 WMPMedia_get_imageSourceWidth,
1715 WMPMedia_get_imageSourceHeight,
1716 WMPMedia_get_markerCount,
1717 WMPMedia_getMarkerTime,
1718 WMPMedia_getMarkerName,
1719 WMPMedia_get_duration,
1720 WMPMedia_get_durationString,
1721 WMPMedia_get_attributeCount,
1722 WMPMedia_getAttributeName,
1723 WMPMedia_getItemInfo,
1724 WMPMedia_setItemInfo,
1725 WMPMedia_getItemInfoByAtom,
1726 WMPMedia_isMemberOf,
1727 WMPMedia_isReadOnlyItem
1730 void init_player(WindowsMediaPlayer *wmp)
1732 wmp->IWMPPlayer4_iface.lpVtbl = &WMPPlayer4Vtbl;
1733 wmp->IWMPPlayer_iface.lpVtbl = &WMPPlayerVtbl;
1734 wmp->IWMPSettings_iface.lpVtbl = &WMPSettingsVtbl;
1735 wmp->IWMPControls_iface.lpVtbl = &WMPControlsVtbl;
1736 wmp->IWMPNetwork_iface.lpVtbl = &WMPNetworkVtbl;
1738 wmp->invoke_urls = VARIANT_TRUE;
1739 wmp->auto_start = VARIANT_TRUE;
1742 void destroy_player(WindowsMediaPlayer *wmp)
1744 if(wmp->wmpmedia)
1745 IWMPMedia_Release(wmp->wmpmedia);
1748 IWMPMedia* create_media_from_url(BSTR url){
1750 WMPMedia *media = heap_alloc_zero(sizeof(WMPMedia));
1751 media->IWMPMedia_iface.lpVtbl = &WMPMediaVtbl;
1752 media->url = heap_strdupW(url);
1753 media->ref = 1;
1755 return &media->IWMPMedia_iface;