Make sure to return an error if the file generation fails.
[wine.git] / dlls / dmusic / dmusic_synth.c
blob94ad6cd17e1b5652544429779b6155e98b34465a
1 /* IDirectMusicSynth Implementation
2 * IDirectMusicSynth8 Implementation
3 * IDirectMusicSynthSink Implementation
5 * Copyright (C) 2003 Rok Mandeljc
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Library General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 #include "windef.h"
23 #include "winbase.h"
24 #include "winuser.h"
25 #include "wingdi.h"
26 #include "wine/debug.h"
28 #include "dmusic_private.h"
30 WINE_DEFAULT_DEBUG_CHANNEL(dmusic);
32 /* IDirectMusicSynth IUnknown parts follow: */
33 HRESULT WINAPI IDirectMusicSynthImpl_QueryInterface (LPDIRECTMUSICSYNTH iface, REFIID riid, LPVOID *ppobj)
35 ICOM_THIS(IDirectMusicSynthImpl,iface);
37 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSynth))
39 IDirectMusicSynthImpl_AddRef(iface);
40 *ppobj = This;
41 return S_OK;
43 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
44 return E_NOINTERFACE;
47 ULONG WINAPI IDirectMusicSynthImpl_AddRef (LPDIRECTMUSICSYNTH iface)
49 ICOM_THIS(IDirectMusicSynthImpl,iface);
50 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
51 return ++(This->ref);
54 ULONG WINAPI IDirectMusicSynthImpl_Release (LPDIRECTMUSICSYNTH iface)
56 ICOM_THIS(IDirectMusicSynthImpl,iface);
57 ULONG ref = --This->ref;
58 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
59 if (ref == 0)
61 HeapFree(GetProcessHeap(), 0, This);
63 return ref;
66 /* IDirectMusicSynth Interface follow: */
67 HRESULT WINAPI IDirectMusicSynthImpl_Open (LPDIRECTMUSICSYNTH iface, LPDMUS_PORTPARAMS pPortParams)
69 ICOM_THIS(IDirectMusicSynthImpl,iface);
71 FIXME("(%p, %p): stub\n", This, pPortParams);
73 return S_OK;
76 HRESULT WINAPI IDirectMusicSynthImpl_Close (LPDIRECTMUSICSYNTH iface)
78 ICOM_THIS(IDirectMusicSynthImpl,iface);
80 FIXME("(%p): stub\n", This);
82 return S_OK;
85 HRESULT WINAPI IDirectMusicSynthImpl_SetNumChannelGroups (LPDIRECTMUSICSYNTH iface, DWORD dwGroups)
87 ICOM_THIS(IDirectMusicSynthImpl,iface);
89 FIXME("(%p, %ld): stub\n", This, dwGroups);
91 return S_OK;
94 HRESULT WINAPI IDirectMusicSynthImpl_Download (LPDIRECTMUSICSYNTH iface, LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree)
96 ICOM_THIS(IDirectMusicSynthImpl,iface);
98 FIXME("(%p, %p, %p, %p): stub\n", This, phDownload, pvData, pbFree);
100 return S_OK;
103 HRESULT WINAPI IDirectMusicSynthImpl_Unload (LPDIRECTMUSICSYNTH iface, HANDLE hDownload, HRESULT (CALLBACK* lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData)
105 ICOM_THIS(IDirectMusicSynthImpl,iface);
107 FIXME("(%p, %p, %p): stub\n", This, hDownload, hUserData);
109 return S_OK;
112 HRESULT WINAPI IDirectMusicSynthImpl_PlayBuffer (LPDIRECTMUSICSYNTH iface, REFERENCE_TIME rt, LPBYTE pbBuffer, DWORD cbBuffer)
114 ICOM_THIS(IDirectMusicSynthImpl,iface);
116 FIXME("(%p, FIXME, %p, %ld): stub\n", This/*, rt*/, pbBuffer, cbBuffer);
118 return S_OK;
121 HRESULT WINAPI IDirectMusicSynthImpl_GetRunningStats (LPDIRECTMUSICSYNTH iface, LPDMUS_SYNTHSTATS pStats)
123 ICOM_THIS(IDirectMusicSynthImpl,iface);
125 FIXME("(%p, %p): stub\n", This, pStats);
127 return S_OK;
130 HRESULT WINAPI IDirectMusicSynthImpl_GetPortCaps (LPDIRECTMUSICSYNTH iface, LPDMUS_PORTCAPS pCaps)
132 ICOM_THIS(IDirectMusicSynthImpl,iface);
134 FIXME("(%p, %p): stub\n", This, pCaps);
136 return S_OK;
139 HRESULT WINAPI IDirectMusicSynthImpl_SetMasterClock (LPDIRECTMUSICSYNTH iface, IReferenceClock* pClock)
141 ICOM_THIS(IDirectMusicSynthImpl,iface);
143 FIXME("(%p, %p): stub\n", This, pClock);
145 return S_OK;
148 HRESULT WINAPI IDirectMusicSynthImpl_GetLatencyClock (LPDIRECTMUSICSYNTH iface, IReferenceClock** ppClock)
150 ICOM_THIS(IDirectMusicSynthImpl,iface);
152 FIXME("(%p, %p): stub\n", This, ppClock);
154 return S_OK;
157 HRESULT WINAPI IDirectMusicSynthImpl_Activate (LPDIRECTMUSICSYNTH iface, BOOL fEnable)
159 ICOM_THIS(IDirectMusicSynthImpl,iface);
161 FIXME("(%p, %d): stub\n", This, fEnable);
163 return S_OK;
166 HRESULT WINAPI IDirectMusicSynthImpl_SetSynthSink (LPDIRECTMUSICSYNTH iface, IDirectMusicSynthSink* pSynthSink)
168 ICOM_THIS(IDirectMusicSynthImpl,iface);
170 FIXME("(%p, %p): stub\n", This, pSynthSink);
172 return S_OK;
175 HRESULT WINAPI IDirectMusicSynthImpl_Render (LPDIRECTMUSICSYNTH iface, short* pBuffer, DWORD dwLength, LONGLONG llPosition)
177 ICOM_THIS(IDirectMusicSynthImpl,iface);
179 FIXME("(%p, %p, %ld, FIXME): stub\n", This, pBuffer, dwLength/*, llPosition*/);
181 return S_OK;
184 HRESULT WINAPI IDirectMusicSynthImpl_SetChannelPriority (LPDIRECTMUSICSYNTH iface, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority)
186 ICOM_THIS(IDirectMusicSynthImpl,iface);
188 FIXME("(%p, %ld, %ld, %ld): stub\n", This, dwChannelGroup, dwChannel, dwPriority);
190 return S_OK;
193 HRESULT WINAPI IDirectMusicSynthImpl_GetChannelPriority (LPDIRECTMUSICSYNTH iface, DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority)
195 ICOM_THIS(IDirectMusicSynthImpl,iface);
197 FIXME("(%p, %ld, %ld, %p): stub\n", This, dwChannelGroup, dwChannel, pdwPriority);
199 return S_OK;
202 HRESULT WINAPI IDirectMusicSynthImpl_GetFormat (LPDIRECTMUSICSYNTH iface, LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSiz)
204 ICOM_THIS(IDirectMusicSynthImpl,iface);
206 FIXME("(%p, %p, %p): stub\n", This, pWaveFormatEx, pdwWaveFormatExSiz);
208 return S_OK;
211 HRESULT WINAPI IDirectMusicSynthImpl_GetAppend (LPDIRECTMUSICSYNTH iface, DWORD* pdwAppend)
213 ICOM_THIS(IDirectMusicSynthImpl,iface);
215 FIXME("(%p, %p): stub\n", This, pdwAppend);
217 return S_OK;
220 ICOM_VTABLE(IDirectMusicSynth) DirectMusicSynth_Vtbl =
222 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
223 IDirectMusicSynthImpl_QueryInterface,
224 IDirectMusicSynthImpl_AddRef,
225 IDirectMusicSynthImpl_Release,
226 IDirectMusicSynthImpl_Open,
227 IDirectMusicSynthImpl_Close,
228 IDirectMusicSynthImpl_SetNumChannelGroups,
229 IDirectMusicSynthImpl_Download,
230 IDirectMusicSynthImpl_Unload,
231 IDirectMusicSynthImpl_PlayBuffer,
232 IDirectMusicSynthImpl_GetRunningStats,
233 IDirectMusicSynthImpl_GetPortCaps,
234 IDirectMusicSynthImpl_SetMasterClock,
235 IDirectMusicSynthImpl_GetLatencyClock,
236 IDirectMusicSynthImpl_Activate,
237 IDirectMusicSynthImpl_SetSynthSink,
238 IDirectMusicSynthImpl_Render,
239 IDirectMusicSynthImpl_SetChannelPriority,
240 IDirectMusicSynthImpl_GetChannelPriority,
241 IDirectMusicSynthImpl_GetFormat,
242 IDirectMusicSynthImpl_GetAppend
246 /* IDirectMusicSynth8 IUnknown parts follow: */
247 HRESULT WINAPI IDirectMusicSynth8Impl_QueryInterface (LPDIRECTMUSICSYNTH8 iface, REFIID riid, LPVOID *ppobj)
249 ICOM_THIS(IDirectMusicSynth8Impl,iface);
251 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSynth8))
253 IDirectMusicSynth8Impl_AddRef(iface);
254 *ppobj = This;
255 return S_OK;
257 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
258 return E_NOINTERFACE;
261 ULONG WINAPI IDirectMusicSynth8Impl_AddRef (LPDIRECTMUSICSYNTH8 iface)
263 ICOM_THIS(IDirectMusicSynth8Impl,iface);
264 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
265 return ++(This->ref);
268 ULONG WINAPI IDirectMusicSynth8Impl_Release (LPDIRECTMUSICSYNTH8 iface)
270 ICOM_THIS(IDirectMusicSynth8Impl,iface);
271 ULONG ref = --This->ref;
272 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
273 if (ref == 0)
275 HeapFree(GetProcessHeap(), 0, This);
277 return ref;
280 /* IDirectMusicSynth Interface parts follow: */
281 HRESULT WINAPI IDirectMusicSynth8Impl_Open (LPDIRECTMUSICSYNTH8 iface, LPDMUS_PORTPARAMS pPortParams)
283 ICOM_THIS(IDirectMusicSynth8Impl,iface);
285 FIXME("(%p, %p): stub\n", This, pPortParams);
287 return S_OK;
290 HRESULT WINAPI IDirectMusicSynth8Impl_Close (LPDIRECTMUSICSYNTH8 iface)
292 ICOM_THIS(IDirectMusicSynth8Impl,iface);
294 FIXME("(%p): stub\n", This);
296 return S_OK;
299 HRESULT WINAPI IDirectMusicSynth8Impl_SetNumChannelGroups (LPDIRECTMUSICSYNTH8 iface, DWORD dwGroups)
301 ICOM_THIS(IDirectMusicSynth8Impl,iface);
303 FIXME("(%p, %ld): stub\n", This, dwGroups);
305 return S_OK;
308 HRESULT WINAPI IDirectMusicSynth8Impl_Download (LPDIRECTMUSICSYNTH8 iface, LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree)
310 ICOM_THIS(IDirectMusicSynth8Impl,iface);
312 FIXME("(%p, %p, %p, %p): stub\n", This, phDownload, pvData, pbFree);
314 return S_OK;
317 HRESULT WINAPI IDirectMusicSynth8Impl_Unload (LPDIRECTMUSICSYNTH8 iface, HANDLE hDownload, HRESULT (CALLBACK* lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData)
319 ICOM_THIS(IDirectMusicSynth8Impl,iface);
321 FIXME("(%p, %p, %p): stub\n", This, hDownload, hUserData);
323 return S_OK;
326 HRESULT WINAPI IDirectMusicSynth8Impl_PlayBuffer (LPDIRECTMUSICSYNTH8 iface, REFERENCE_TIME rt, LPBYTE pbBuffer, DWORD cbBuffer)
328 ICOM_THIS(IDirectMusicSynth8Impl,iface);
330 FIXME("(%p, FIXME, %p, %ld): stub\n", This/*, rt*/, pbBuffer, cbBuffer);
332 return S_OK;
335 HRESULT WINAPI IDirectMusicSynth8Impl_GetRunningStats (LPDIRECTMUSICSYNTH8 iface, LPDMUS_SYNTHSTATS pStats)
337 ICOM_THIS(IDirectMusicSynth8Impl,iface);
339 FIXME("(%p, %p): stub\n", This, pStats);
341 return S_OK;
344 HRESULT WINAPI IDirectMusicSynth8Impl_GetPortCaps (LPDIRECTMUSICSYNTH8 iface, LPDMUS_PORTCAPS pCaps)
346 ICOM_THIS(IDirectMusicSynth8Impl,iface);
348 FIXME("(%p, %p): stub\n", This, pCaps);
350 return S_OK;
353 HRESULT WINAPI IDirectMusicSynth8Impl_SetMasterClock (LPDIRECTMUSICSYNTH8 iface, IReferenceClock* pClock)
355 ICOM_THIS(IDirectMusicSynth8Impl,iface);
357 FIXME("(%p, %p): stub\n", This, pClock);
359 return S_OK;
362 HRESULT WINAPI IDirectMusicSynth8Impl_GetLatencyClock (LPDIRECTMUSICSYNTH8 iface, IReferenceClock** ppClock)
364 ICOM_THIS(IDirectMusicSynth8Impl,iface);
366 FIXME("(%p, %p): stub\n", This, ppClock);
368 return S_OK;
371 HRESULT WINAPI IDirectMusicSynth8Impl_Activate (LPDIRECTMUSICSYNTH8 iface, BOOL fEnable)
373 ICOM_THIS(IDirectMusicSynth8Impl,iface);
375 FIXME("(%p, %d): stub\n", This, fEnable);
377 return S_OK;
380 HRESULT WINAPI IDirectMusicSynth8Impl_SetSynthSink (LPDIRECTMUSICSYNTH8 iface, IDirectMusicSynthSink* pSynthSink)
382 ICOM_THIS(IDirectMusicSynth8Impl,iface);
384 FIXME("(%p, %p): stub\n", This, pSynthSink);
386 return S_OK;
389 HRESULT WINAPI IDirectMusicSynth8Impl_Render (LPDIRECTMUSICSYNTH8 iface, short* pBuffer, DWORD dwLength, LONGLONG llPosition)
391 ICOM_THIS(IDirectMusicSynth8Impl,iface);
393 FIXME("(%p, %p, %ld, FIXME): stub\n", This, pBuffer, dwLength/*, llPosition*/);
395 return S_OK;
398 HRESULT WINAPI IDirectMusicSynth8Impl_SetChannelPriority (LPDIRECTMUSICSYNTH8 iface, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority)
400 ICOM_THIS(IDirectMusicSynth8Impl,iface);
402 FIXME("(%p, %ld, %ld, %ld): stub\n", This, dwChannelGroup, dwChannel, dwPriority);
404 return S_OK;
407 HRESULT WINAPI IDirectMusicSynth8Impl_GetChannelPriority (LPDIRECTMUSICSYNTH8 iface, DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority)
409 ICOM_THIS(IDirectMusicSynth8Impl,iface);
411 FIXME("(%p, %ld, %ld, %p): stub\n", This, dwChannelGroup, dwChannel, pdwPriority);
413 return S_OK;
416 HRESULT WINAPI IDirectMusicSynth8Impl_GetFormat (LPDIRECTMUSICSYNTH8 iface, LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSiz)
418 ICOM_THIS(IDirectMusicSynth8Impl,iface);
420 FIXME("(%p, %p, %p): stub\n", This, pWaveFormatEx, pdwWaveFormatExSiz);
422 return S_OK;
425 HRESULT WINAPI IDirectMusicSynth8Impl_GetAppend (LPDIRECTMUSICSYNTH8 iface, DWORD* pdwAppend)
427 ICOM_THIS(IDirectMusicSynth8Impl,iface);
429 FIXME("(%p, %p): stub\n", This, pdwAppend);
431 return S_OK;
434 /* IDirectMusicSynth8 Interface parts follow: */
435 HRESULT WINAPI IDirectMusicSynth8Impl_PlayVoice (LPDIRECTMUSICSYNTH8 iface, REFERENCE_TIME rt, DWORD dwVoiceId, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwDLId, long prPitch, long vrVolume, SAMPLE_TIME stVoiceStart, SAMPLE_TIME stLoopStart, SAMPLE_TIME stLoopEnd)
437 ICOM_THIS(IDirectMusicSynth8Impl,iface);
439 FIXME("(%p, FIXME, %ld, %ld, %ld, %ld, %li, %li, FIXME, FIXME, FIXME): stub\n", This/*, rt*/, dwVoiceId, dwChannelGroup, dwChannel, dwDLId, prPitch, vrVolume/*, stVoiceStart, stLoopStart, stLoopEnd*/);
441 return S_OK;
444 HRESULT WINAPI IDirectMusicSynth8Impl_StopVoice (LPDIRECTMUSICSYNTH8 iface, REFERENCE_TIME rt, DWORD dwVoiceId)
446 ICOM_THIS(IDirectMusicSynth8Impl,iface);
448 FIXME("(%p, FIXME, %ld): stub\n", This/*, rt*/, dwVoiceId);
450 return S_OK;
453 HRESULT WINAPI IDirectMusicSynth8Impl_GetVoiceState (LPDIRECTMUSICSYNTH8 iface, DWORD dwVoice[], DWORD cbVoice, DMUS_VOICE_STATE dwVoiceState[])
455 ICOM_THIS(IDirectMusicSynth8Impl,iface);
457 FIXME("(%p, %p, %ld, %p): stub\n", This, dwVoice, cbVoice, dwVoiceState);
459 return S_OK;
462 HRESULT WINAPI IDirectMusicSynth8Impl_Refresh (LPDIRECTMUSICSYNTH8 iface, DWORD dwDownloadID, DWORD dwFlags)
464 ICOM_THIS(IDirectMusicSynth8Impl,iface);
466 FIXME("(%p, %ld, %ld): stub\n", This, dwDownloadID, dwFlags);
468 return S_OK;
471 HRESULT WINAPI IDirectMusicSynth8Impl_AssignChannelToBuses (LPDIRECTMUSICSYNTH8 iface, DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwBuses, DWORD cBuses)
473 ICOM_THIS(IDirectMusicSynth8Impl,iface);
475 FIXME("(%p, %ld, %ld, %p, %ld): stub\n", This, dwChannelGroup, dwChannel, pdwBuses, cBuses);
477 return S_OK;
480 ICOM_VTABLE(IDirectMusicSynth8) DirectMusicSynth8_Vtbl =
482 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
483 IDirectMusicSynth8Impl_QueryInterface,
484 IDirectMusicSynth8Impl_AddRef,
485 IDirectMusicSynth8Impl_Release,
486 IDirectMusicSynth8Impl_Open,
487 IDirectMusicSynth8Impl_Close,
488 IDirectMusicSynth8Impl_SetNumChannelGroups,
489 IDirectMusicSynth8Impl_Download,
490 IDirectMusicSynth8Impl_Unload,
491 IDirectMusicSynth8Impl_PlayBuffer,
492 IDirectMusicSynth8Impl_GetRunningStats,
493 IDirectMusicSynth8Impl_GetPortCaps,
494 IDirectMusicSynth8Impl_SetMasterClock,
495 IDirectMusicSynth8Impl_GetLatencyClock,
496 IDirectMusicSynth8Impl_Activate,
497 IDirectMusicSynth8Impl_SetSynthSink,
498 IDirectMusicSynth8Impl_Render,
499 IDirectMusicSynth8Impl_SetChannelPriority,
500 IDirectMusicSynth8Impl_GetChannelPriority,
501 IDirectMusicSynth8Impl_GetFormat,
502 IDirectMusicSynth8Impl_GetAppend,
503 IDirectMusicSynth8Impl_PlayVoice,
504 IDirectMusicSynth8Impl_StopVoice,
505 IDirectMusicSynth8Impl_GetVoiceState,
506 IDirectMusicSynth8Impl_Refresh,
507 IDirectMusicSynth8Impl_AssignChannelToBuses
511 /* IDirectMusicSynthSink IUnknown parts follow: */
512 HRESULT WINAPI IDirectMusicSynthSinkImpl_QueryInterface (LPDIRECTMUSICSYNTHSINK iface, REFIID riid, LPVOID *ppobj)
514 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
516 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSynthSink))
518 IDirectMusicSynthSinkImpl_AddRef(iface);
519 *ppobj = This;
520 return S_OK;
522 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
523 return E_NOINTERFACE;
526 ULONG WINAPI IDirectMusicSynthSinkImpl_AddRef (LPDIRECTMUSICSYNTHSINK iface)
528 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
529 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
530 return ++(This->ref);
533 ULONG WINAPI IDirectMusicSynthSinkImpl_Release (LPDIRECTMUSICSYNTHSINK iface)
535 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
536 ULONG ref = --This->ref;
537 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
538 if (ref == 0)
540 HeapFree(GetProcessHeap(), 0, This);
542 return ref;
545 /* IDirectMusicSynth Interface follow: */
546 HRESULT WINAPI IDirectMusicSinkSynthImpl_Init (LPDIRECTMUSICSYNTHSINK iface, IDirectMusicSynth* pSynth)
548 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
550 FIXME("(%p, %p): stub\n", This, pSynth);
552 return S_OK;
555 HRESULT WINAPI IDirectMusicSinkSynthImpl_SetMasterClock (LPDIRECTMUSICSYNTHSINK iface, IReferenceClock* pClock)
557 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
559 FIXME("(%p, %p): stub\n", This, pClock);
561 return S_OK;
564 HRESULT WINAPI IDirectMusicSinkSynthImpl_GetLatencyClock (LPDIRECTMUSICSYNTHSINK iface, IReferenceClock** ppClock)
566 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
568 FIXME("(%p, %p): stub\n", This, ppClock);
570 return S_OK;
573 HRESULT WINAPI IDirectMusicSinkSynthImpl_Activate (LPDIRECTMUSICSYNTHSINK iface, BOOL fEnable)
575 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
577 FIXME("(%p, %d): stub\n", This, fEnable);
579 return S_OK;
582 HRESULT WINAPI IDirectMusicSinkSynthImpl_SampleToRefTime (LPDIRECTMUSICSYNTHSINK iface, LONGLONG llSampleTime, REFERENCE_TIME* prfTime)
584 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
586 FIXME("(%p, FIXME, %p): stub\n", This/*, llSampleTime*/, prfTime);
588 return S_OK;
591 HRESULT WINAPI IDirectMusicSinkSynthImpl_RefTimeToSample (LPDIRECTMUSICSYNTHSINK iface, REFERENCE_TIME rfTime, LONGLONG* pllSampleTime)
593 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
595 FIXME("(%p, FIXME, %p): stub\n", This/*, rfTime*/, pllSampleTime );
597 return S_OK;
600 HRESULT WINAPI IDirectMusicSinkSynthImpl_SetDirectSound (LPDIRECTMUSICSYNTHSINK iface, LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer)
602 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
604 FIXME("(%p, %p, %p): stub\n", This, pDirectSound, pDirectSoundBuffer);
606 return S_OK;
609 HRESULT WINAPI IDirectMusicSinkSynthImpl_GetDesiredBufferSize (LPDIRECTMUSICSYNTHSINK iface, LPDWORD pdwBufferSizeInSamples)
611 ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
613 FIXME("(%p, %p): stub\n", This, pdwBufferSizeInSamples);
615 return S_OK;
618 ICOM_VTABLE(IDirectMusicSynthSink) DirectMusicSynthSink_Vtbl =
620 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
621 IDirectMusicSynthSinkImpl_QueryInterface,
622 IDirectMusicSynthSinkImpl_AddRef,
623 IDirectMusicSynthSinkImpl_Release,
624 IDirectMusicSinkSynthImpl_Init,
625 IDirectMusicSinkSynthImpl_SetMasterClock,
626 IDirectMusicSinkSynthImpl_GetLatencyClock,
627 IDirectMusicSinkSynthImpl_Activate,
628 IDirectMusicSinkSynthImpl_SampleToRefTime,
629 IDirectMusicSinkSynthImpl_RefTimeToSample,
630 IDirectMusicSinkSynthImpl_SetDirectSound,
631 IDirectMusicSinkSynthImpl_GetDesiredBufferSize