1 /* IDirectMusicSegment Implementation
2 * IDirectMusicSegment8 Implementation
3 * IDirectMusicSegmentState Implementation
4 * IDirectMusicSegmentState8 Implementation
5 * IDirectMusicPatternTrack Implementation
7 * Copyright (C) 2003 Rok Mandeljc
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Library General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 #include "wine/debug.h"
30 #include "dmusic_private.h"
32 WINE_DEFAULT_DEBUG_CHANNEL(dmusic);
34 /* IDirectMusicSegment IUnknown parts follow: */
35 HRESULT WINAPI IDirectMusicSegmentImpl_QueryInterface (LPDIRECTMUSICSEGMENT iface, REFIID riid, LPVOID *ppobj)
37 ICOM_THIS(IDirectMusicSegmentImpl,iface);
39 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegment))
41 IDirectMusicSegmentImpl_AddRef(iface);
45 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
49 ULONG WINAPI IDirectMusicSegmentImpl_AddRef (LPDIRECTMUSICSEGMENT iface)
51 ICOM_THIS(IDirectMusicSegmentImpl,iface);
52 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
56 ULONG WINAPI IDirectMusicSegmentImpl_Release (LPDIRECTMUSICSEGMENT iface)
58 ICOM_THIS(IDirectMusicSegmentImpl,iface);
59 ULONG ref = --This->ref;
60 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
63 HeapFree(GetProcessHeap(), 0, This);
68 /* IDirectMusicSegment Interface follow: */
69 HRESULT WINAPI IDirectMusicSegmentImpl_GetLength (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME* pmtLength)
75 HRESULT WINAPI IDirectMusicSegmentImpl_SetLength (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtLength)
81 HRESULT WINAPI IDirectMusicSegmentImpl_GetRepeats (LPDIRECTMUSICSEGMENT iface, DWORD* pdwRepeats)
87 HRESULT WINAPI IDirectMusicSegmentImpl_SetRepeats (LPDIRECTMUSICSEGMENT iface, DWORD dwRepeats)
93 HRESULT WINAPI IDirectMusicSegmentImpl_GetDefaultResolution (LPDIRECTMUSICSEGMENT iface, DWORD* pdwResolution)
99 HRESULT WINAPI IDirectMusicSegmentImpl_SetDefaultResolution (LPDIRECTMUSICSEGMENT iface, DWORD dwResolution)
105 HRESULT WINAPI IDirectMusicSegmentImpl_GetTrack (LPDIRECTMUSICSEGMENT iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, IDirectMusicTrack** ppTrack)
111 HRESULT WINAPI IDirectMusicSegmentImpl_GetTrackGroup (LPDIRECTMUSICSEGMENT iface, IDirectMusicTrack* pTrack, DWORD* pdwGroupBits)
117 HRESULT WINAPI IDirectMusicSegmentImpl_InsertTrack (LPDIRECTMUSICSEGMENT iface, IDirectMusicTrack* pTrack, DWORD dwGroupBits)
123 HRESULT WINAPI IDirectMusicSegmentImpl_RemoveTrack (LPDIRECTMUSICSEGMENT iface, IDirectMusicTrack* pTrack)
129 HRESULT WINAPI IDirectMusicSegmentImpl_InitPlay (LPDIRECTMUSICSEGMENT iface, IDirectMusicSegmentState** ppSegState, IDirectMusicPerformance* pPerformance, DWORD dwFlags)
135 HRESULT WINAPI IDirectMusicSegmentImpl_GetGraph (LPDIRECTMUSICSEGMENT iface, IDirectMusicGraph** ppGraph)
141 HRESULT WINAPI IDirectMusicSegmentImpl_SetGraph (LPDIRECTMUSICSEGMENT iface, IDirectMusicGraph* pGraph)
147 HRESULT WINAPI IDirectMusicSegmentImpl_AddNotificationType (LPDIRECTMUSICSEGMENT iface, REFGUID rguidNotificationType)
153 HRESULT WINAPI IDirectMusicSegmentImpl_RemoveNotificationType (LPDIRECTMUSICSEGMENT iface, REFGUID rguidNotificationType)
159 HRESULT WINAPI IDirectMusicSegmentImpl_GetParam (LPDIRECTMUSICSEGMENT iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam)
165 HRESULT WINAPI IDirectMusicSegmentImpl_SetParam (LPDIRECTMUSICSEGMENT iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void* pParam)
171 HRESULT WINAPI IDirectMusicSegmentImpl_Clone (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicSegment** ppSegment)
177 HRESULT WINAPI IDirectMusicSegmentImpl_SetStartPoint (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtStart)
183 HRESULT WINAPI IDirectMusicSegmentImpl_GetStartPoint (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME* pmtStart)
189 HRESULT WINAPI IDirectMusicSegmentImpl_SetLoopPoints (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd)
195 HRESULT WINAPI IDirectMusicSegmentImpl_GetLoopPoints (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME* pmtStart, MUSIC_TIME* pmtEnd)
201 HRESULT WINAPI IDirectMusicSegmentImpl_SetPChannelsUsed (LPDIRECTMUSICSEGMENT iface, DWORD dwNumPChannels, DWORD* paPChannels)
207 ICOM_VTABLE(IDirectMusicSegment) DirectMusicSegment_Vtbl =
209 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
210 IDirectMusicSegmentImpl_QueryInterface,
211 IDirectMusicSegmentImpl_AddRef,
212 IDirectMusicSegmentImpl_Release,
213 IDirectMusicSegmentImpl_GetLength,
214 IDirectMusicSegmentImpl_SetLength,
215 IDirectMusicSegmentImpl_GetRepeats,
216 IDirectMusicSegmentImpl_SetRepeats,
217 IDirectMusicSegmentImpl_GetDefaultResolution,
218 IDirectMusicSegmentImpl_SetDefaultResolution,
219 IDirectMusicSegmentImpl_GetTrack,
220 IDirectMusicSegmentImpl_GetTrackGroup,
221 IDirectMusicSegmentImpl_InsertTrack,
222 IDirectMusicSegmentImpl_RemoveTrack,
223 IDirectMusicSegmentImpl_InitPlay,
224 IDirectMusicSegmentImpl_GetGraph,
225 IDirectMusicSegmentImpl_SetGraph,
226 IDirectMusicSegmentImpl_AddNotificationType,
227 IDirectMusicSegmentImpl_RemoveNotificationType,
228 IDirectMusicSegmentImpl_GetParam,
229 IDirectMusicSegmentImpl_SetParam,
230 IDirectMusicSegmentImpl_Clone,
231 IDirectMusicSegmentImpl_SetStartPoint,
232 IDirectMusicSegmentImpl_GetStartPoint,
233 IDirectMusicSegmentImpl_SetLoopPoints,
234 IDirectMusicSegmentImpl_GetLoopPoints,
235 IDirectMusicSegmentImpl_SetPChannelsUsed
239 /* IDirectMusicSegment8 IUnknown parts follow: */
240 HRESULT WINAPI IDirectMusicSegment8Impl_QueryInterface (LPDIRECTMUSICSEGMENT8 iface, REFIID riid, LPVOID *ppobj)
242 ICOM_THIS(IDirectMusicSegment8Impl,iface);
244 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegment8))
246 IDirectMusicSegment8Impl_AddRef(iface);
250 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
251 return E_NOINTERFACE;
254 ULONG WINAPI IDirectMusicSegment8Impl_AddRef (LPDIRECTMUSICSEGMENT8 iface)
256 ICOM_THIS(IDirectMusicSegment8Impl,iface);
257 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
258 return ++(This->ref);
261 ULONG WINAPI IDirectMusicSegment8Impl_Release (LPDIRECTMUSICSEGMENT8 iface)
263 ICOM_THIS(IDirectMusicSegment8Impl,iface);
264 ULONG ref = --This->ref;
265 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
268 HeapFree(GetProcessHeap(), 0, This);
273 /* IDirectMusicSegment Interface part follow: */
274 HRESULT WINAPI IDirectMusicSegment8Impl_GetLength (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtLength)
280 HRESULT WINAPI IDirectMusicSegment8Impl_SetLength (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtLength)
286 HRESULT WINAPI IDirectMusicSegment8Impl_GetRepeats (LPDIRECTMUSICSEGMENT8 iface, DWORD* pdwRepeats)
292 HRESULT WINAPI IDirectMusicSegment8Impl_SetRepeats (LPDIRECTMUSICSEGMENT8 iface, DWORD dwRepeats)
298 HRESULT WINAPI IDirectMusicSegment8Impl_GetDefaultResolution (LPDIRECTMUSICSEGMENT8 iface, DWORD* pdwResolution)
304 HRESULT WINAPI IDirectMusicSegment8Impl_SetDefaultResolution (LPDIRECTMUSICSEGMENT8 iface, DWORD dwResolution)
310 HRESULT WINAPI IDirectMusicSegment8Impl_GetTrack (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, IDirectMusicTrack** ppTrack)
316 HRESULT WINAPI IDirectMusicSegment8Impl_GetTrackGroup (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack, DWORD* pdwGroupBits)
322 HRESULT WINAPI IDirectMusicSegment8Impl_InsertTrack (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack, DWORD dwGroupBits)
328 HRESULT WINAPI IDirectMusicSegment8Impl_RemoveTrack (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack)
334 HRESULT WINAPI IDirectMusicSegment8Impl_InitPlay (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicSegmentState** ppSegState, IDirectMusicPerformance* pPerformance, DWORD dwFlags)
340 HRESULT WINAPI IDirectMusicSegment8Impl_GetGraph (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicGraph** ppGraph)
346 HRESULT WINAPI IDirectMusicSegment8Impl_SetGraph (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicGraph* pGraph)
352 HRESULT WINAPI IDirectMusicSegment8Impl_AddNotificationType (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidNotificationType)
358 HRESULT WINAPI IDirectMusicSegment8Impl_RemoveNotificationType (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidNotificationType)
364 HRESULT WINAPI IDirectMusicSegment8Impl_GetParam (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam)
370 HRESULT WINAPI IDirectMusicSegment8Impl_SetParam (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void* pParam)
376 HRESULT WINAPI IDirectMusicSegment8Impl_Clone (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicSegment** ppSegment)
382 HRESULT WINAPI IDirectMusicSegment8Impl_SetStartPoint (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart)
388 HRESULT WINAPI IDirectMusicSegment8Impl_GetStartPoint (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtStart)
394 HRESULT WINAPI IDirectMusicSegment8Impl_SetLoopPoints (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd)
400 HRESULT WINAPI IDirectMusicSegment8Impl_GetLoopPoints (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtStart, MUSIC_TIME* pmtEnd)
406 HRESULT WINAPI IDirectMusicSegment8Impl_SetPChannelsUsed (LPDIRECTMUSICSEGMENT8 iface, DWORD dwNumPChannels, DWORD* paPChannels)
412 /* IDirectMusicSegment Interface part follow: */
413 HRESULT WINAPI IDirectMusicSegment8Impl_SetTrackConfig (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn, DWORD dwFlagsOff)
419 HRESULT WINAPI IDirectMusicSegment8Impl_GetAudioPathConfig (LPDIRECTMUSICSEGMENT8 iface, IUnknown** ppAudioPathConfig)
425 HRESULT WINAPI IDirectMusicSegment8Impl_Compose (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtTime, IDirectMusicSegment* pFromSegment, IDirectMusicSegment* pToSegment, IDirectMusicSegment** ppComposedSegment)
431 HRESULT WINAPI IDirectMusicSegment8Impl_Download (LPDIRECTMUSICSEGMENT8 iface, IUnknown *pAudioPath)
437 HRESULT WINAPI IDirectMusicSegment8Impl_Unload (LPDIRECTMUSICSEGMENT8 iface, IUnknown *pAudioPath)
443 ICOM_VTABLE(IDirectMusicSegment8) DirectMusicSegment8_Vtbl =
445 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
446 IDirectMusicSegment8Impl_QueryInterface,
447 IDirectMusicSegment8Impl_AddRef,
448 IDirectMusicSegment8Impl_Release,
449 IDirectMusicSegment8Impl_GetLength,
450 IDirectMusicSegment8Impl_SetLength,
451 IDirectMusicSegment8Impl_GetRepeats,
452 IDirectMusicSegment8Impl_SetRepeats,
453 IDirectMusicSegment8Impl_GetDefaultResolution,
454 IDirectMusicSegment8Impl_SetDefaultResolution,
455 IDirectMusicSegment8Impl_GetTrack,
456 IDirectMusicSegment8Impl_GetTrackGroup,
457 IDirectMusicSegment8Impl_InsertTrack,
458 IDirectMusicSegment8Impl_RemoveTrack,
459 IDirectMusicSegment8Impl_InitPlay,
460 IDirectMusicSegment8Impl_GetGraph,
461 IDirectMusicSegment8Impl_SetGraph,
462 IDirectMusicSegment8Impl_AddNotificationType,
463 IDirectMusicSegment8Impl_RemoveNotificationType,
464 IDirectMusicSegment8Impl_GetParam,
465 IDirectMusicSegment8Impl_SetParam,
466 IDirectMusicSegment8Impl_Clone,
467 IDirectMusicSegment8Impl_SetStartPoint,
468 IDirectMusicSegment8Impl_GetStartPoint,
469 IDirectMusicSegment8Impl_SetLoopPoints,
470 IDirectMusicSegment8Impl_GetLoopPoints,
471 IDirectMusicSegment8Impl_SetPChannelsUsed,
472 IDirectMusicSegment8Impl_SetTrackConfig,
473 IDirectMusicSegment8Impl_GetAudioPathConfig,
474 IDirectMusicSegment8Impl_Compose,
475 IDirectMusicSegment8Impl_Download,
476 IDirectMusicSegment8Impl_Unload
480 /* IDirectMusicSegmentState IUnknown parts follow: */
481 HRESULT WINAPI IDirectMusicSegmentStateImpl_QueryInterface (LPDIRECTMUSICSEGMENTSTATE iface, REFIID riid, LPVOID *ppobj)
483 ICOM_THIS(IDirectMusicSegmentStateImpl,iface);
485 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegmentState))
487 IDirectMusicSegmentStateImpl_AddRef(iface);
491 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
492 return E_NOINTERFACE;
495 ULONG WINAPI IDirectMusicSegmentStateImpl_AddRef (LPDIRECTMUSICSEGMENTSTATE iface)
497 ICOM_THIS(IDirectMusicSegmentStateImpl,iface);
498 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
499 return ++(This->ref);
502 ULONG WINAPI IDirectMusicSegmentStateImpl_Release (LPDIRECTMUSICSEGMENTSTATE iface)
504 ICOM_THIS(IDirectMusicSegmentStateImpl,iface);
505 ULONG ref = --This->ref;
506 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
509 HeapFree(GetProcessHeap(), 0, This);
514 /* IDirectMusicSegmentState Interface follow: */
515 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetRepeats (LPDIRECTMUSICSEGMENTSTATE iface, DWORD* pdwRepeats)
521 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetSegment (LPDIRECTMUSICSEGMENTSTATE iface, IDirectMusicSegment** ppSegment)
527 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetStartTime (LPDIRECTMUSICSEGMENTSTATE iface, MUSIC_TIME* pmtStart)
533 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetSeek (LPDIRECTMUSICSEGMENTSTATE iface, MUSIC_TIME* pmtSeek)
539 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetStartPoint (LPDIRECTMUSICSEGMENTSTATE iface, MUSIC_TIME* pmtStart)
545 ICOM_VTABLE(IDirectMusicSegmentState) DirectMusicSegmentState_Vtbl =
547 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
548 IDirectMusicSegmentStateImpl_QueryInterface,
549 IDirectMusicSegmentStateImpl_AddRef,
550 IDirectMusicSegmentStateImpl_Release,
551 IDirectMusicSegmentStateImpl_GetRepeats,
552 IDirectMusicSegmentStateImpl_GetSegment,
553 IDirectMusicSegmentStateImpl_GetStartTime,
554 IDirectMusicSegmentStateImpl_GetSeek,
555 IDirectMusicSegmentStateImpl_GetStartPoint
558 /* IDirectMusicSegmentState8 IUnknown parts follow: */
559 HRESULT WINAPI IDirectMusicSegmentState8Impl_QueryInterface (LPDIRECTMUSICSEGMENTSTATE8 iface, REFIID riid, LPVOID *ppobj)
561 ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
563 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegmentState8))
565 IDirectMusicSegmentState8Impl_AddRef(iface);
569 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
570 return E_NOINTERFACE;
573 ULONG WINAPI IDirectMusicSegmentState8Impl_AddRef (LPDIRECTMUSICSEGMENTSTATE8 iface)
575 ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
576 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
577 return ++(This->ref);
580 ULONG WINAPI IDirectMusicSegmentState8Impl_Release (LPDIRECTMUSICSEGMENTSTATE8 iface)
582 ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
583 ULONG ref = --This->ref;
584 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
587 HeapFree(GetProcessHeap(), 0, This);
592 /* IDirectMusicSegmentState Interface part follow: */
593 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetRepeats (LPDIRECTMUSICSEGMENTSTATE8 iface, DWORD* pdwRepeats)
599 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSegment (LPDIRECTMUSICSEGMENTSTATE8 iface, IDirectMusicSegment** ppSegment)
605 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartTime (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart)
611 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSeek (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtSeek)
617 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartPoint (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart)
623 /* IDirectMusicSegmentState8 Interface part follow: */
624 HRESULT WINAPI IDirectMusicSegmentState8Impl_SetTrackConfig (LPDIRECTMUSICSEGMENTSTATE8 iface, REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn, DWORD dwFlagsOff)
630 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetObjectInPath (LPDIRECTMUSICSEGMENTSTATE8 iface, DWORD dwPChannel, DWORD dwStage, DWORD dwBuffer, REFGUID guidObject, DWORD dwIndex, REFGUID iidInterface, void** ppObject)
636 ICOM_VTABLE(IDirectMusicSegmentState8) DirectMusicSegmentState8_Vtbl =
638 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
639 IDirectMusicSegmentState8Impl_QueryInterface,
640 IDirectMusicSegmentState8Impl_AddRef,
641 IDirectMusicSegmentState8Impl_Release,
642 IDirectMusicSegmentState8Impl_GetRepeats,
643 IDirectMusicSegmentState8Impl_GetSegment,
644 IDirectMusicSegmentState8Impl_GetStartTime,
645 IDirectMusicSegmentState8Impl_GetSeek,
646 IDirectMusicSegmentState8Impl_GetStartPoint,
647 IDirectMusicSegmentState8Impl_SetTrackConfig,
648 IDirectMusicSegmentState8Impl_GetObjectInPath
652 /* IDirectMusicPatternTrack IUnknown parts follow: */
653 HRESULT WINAPI IDirectMusicPatternTrackImpl_QueryInterface (LPDIRECTMUSICPATTERNTRACK iface, REFIID riid, LPVOID *ppobj)
655 ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
657 if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicPatternTrack))
659 IDirectMusicPatternTrackImpl_AddRef(iface);
663 WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
664 return E_NOINTERFACE;
667 ULONG WINAPI IDirectMusicPatternTrackImpl_AddRef (LPDIRECTMUSICPATTERNTRACK iface)
669 ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
670 TRACE("(%p) : AddRef from %ld\n", This, This->ref);
671 return ++(This->ref);
674 ULONG WINAPI IDirectMusicPatternTrackImpl_Release (LPDIRECTMUSICPATTERNTRACK iface)
676 ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
677 ULONG ref = --This->ref;
678 TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
681 HeapFree(GetProcessHeap(), 0, This);
686 /* IDirectMusicPatternTrack Interface follow: */
687 HRESULT WINAPI IDirectMusicPatternTrackImpl_CreateSegment (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicStyle* pStyle, IDirectMusicSegment** ppSegment)
693 HRESULT WINAPI IDirectMusicPatternTrackImpl_SetVariation (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, DWORD dwVariationFlags, DWORD dwPart)
699 HRESULT WINAPI IDirectMusicPatternTrackImpl_SetPatternByName (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, WCHAR* wszName, IDirectMusicStyle* pStyle, DWORD dwPatternType, DWORD* pdwLength)
705 ICOM_VTABLE(IDirectMusicPatternTrack) DirectMusicPatternTrack_Vtbl =
707 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
708 IDirectMusicPatternTrackImpl_QueryInterface,
709 IDirectMusicPatternTrackImpl_AddRef,
710 IDirectMusicPatternTrackImpl_Release,
711 IDirectMusicPatternTrackImpl_CreateSegment,
712 IDirectMusicPatternTrackImpl_SetVariation,
713 IDirectMusicPatternTrackImpl_SetPatternByName