Added stubs for all dmusic interfaces.
[wine] / dlls / dmusic / dmusic_segment.c
1 /* IDirectMusicSegment Implementation
2  * IDirectMusicSegment8 Implementation
3  * IDirectMusicSegmentState Implementation
4  * IDirectMusicSegmentState8 Implementation
5  * IDirectMusicPatternTrack Implementation
6  *
7  * Copyright (C) 2003 Rok Mandeljc
8  *
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.
13  *
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.
18  *
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.
22  */
23
24 #include "windef.h"
25 #include "winbase.h"
26 #include "winuser.h"
27 #include "wingdi.h"
28 #include "wine/debug.h"
29
30 #include "dmusic_private.h"
31
32 WINE_DEFAULT_DEBUG_CHANNEL(dmusic);
33
34 /* IDirectMusicSegment IUnknown parts follow: */
35 HRESULT WINAPI IDirectMusicSegmentImpl_QueryInterface (LPDIRECTMUSICSEGMENT iface, REFIID riid, LPVOID *ppobj)
36 {
37         ICOM_THIS(IDirectMusicSegmentImpl,iface);
38
39         if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegment))
40         {
41                 IDirectMusicSegmentImpl_AddRef(iface);
42                 *ppobj = This;
43                 return DS_OK;
44         }
45         WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
46         return E_NOINTERFACE;
47 }
48
49 ULONG WINAPI IDirectMusicSegmentImpl_AddRef (LPDIRECTMUSICSEGMENT iface)
50 {
51         ICOM_THIS(IDirectMusicSegmentImpl,iface);
52         TRACE("(%p) : AddRef from %ld\n", This, This->ref);
53         return ++(This->ref);
54 }
55
56 ULONG WINAPI IDirectMusicSegmentImpl_Release (LPDIRECTMUSICSEGMENT iface)
57 {
58         ICOM_THIS(IDirectMusicSegmentImpl,iface);
59         ULONG ref = --This->ref;
60         TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
61         if (ref == 0)
62         {
63                 HeapFree(GetProcessHeap(), 0, This);
64         }
65         return ref;
66 }
67
68 /* IDirectMusicSegment Interface follow: */
69 HRESULT WINAPI IDirectMusicSegmentImpl_GetLength (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME* pmtLength)
70 {
71         FIXME("stub\n");
72         return DS_OK;
73 }
74
75 HRESULT WINAPI IDirectMusicSegmentImpl_SetLength (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtLength)
76 {
77         FIXME("stub\n");
78         return DS_OK;
79 }
80
81 HRESULT WINAPI IDirectMusicSegmentImpl_GetRepeats (LPDIRECTMUSICSEGMENT iface, DWORD* pdwRepeats)
82 {
83         FIXME("stub\n");
84         return DS_OK;
85 }
86
87 HRESULT WINAPI IDirectMusicSegmentImpl_SetRepeats (LPDIRECTMUSICSEGMENT iface, DWORD dwRepeats)
88 {
89         FIXME("stub\n");
90         return DS_OK;
91 }
92
93 HRESULT WINAPI IDirectMusicSegmentImpl_GetDefaultResolution (LPDIRECTMUSICSEGMENT iface, DWORD* pdwResolution)
94 {
95         FIXME("stub\n");
96         return DS_OK;
97 }
98
99 HRESULT WINAPI IDirectMusicSegmentImpl_SetDefaultResolution (LPDIRECTMUSICSEGMENT iface, DWORD dwResolution)
100 {
101         FIXME("stub\n");
102         return DS_OK;
103 }
104
105 HRESULT WINAPI IDirectMusicSegmentImpl_GetTrack (LPDIRECTMUSICSEGMENT iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, IDirectMusicTrack** ppTrack)
106 {
107         FIXME("stub\n");
108         return DS_OK;
109 }
110
111 HRESULT WINAPI IDirectMusicSegmentImpl_GetTrackGroup (LPDIRECTMUSICSEGMENT iface, IDirectMusicTrack* pTrack, DWORD* pdwGroupBits)
112 {
113         FIXME("stub\n");
114         return DS_OK;
115 }
116
117 HRESULT WINAPI IDirectMusicSegmentImpl_InsertTrack (LPDIRECTMUSICSEGMENT iface, IDirectMusicTrack* pTrack, DWORD dwGroupBits)
118 {
119         FIXME("stub\n");
120         return DS_OK;
121 }
122
123 HRESULT WINAPI IDirectMusicSegmentImpl_RemoveTrack (LPDIRECTMUSICSEGMENT iface, IDirectMusicTrack* pTrack)
124 {
125         FIXME("stub\n");
126         return DS_OK;
127 }
128
129 HRESULT WINAPI IDirectMusicSegmentImpl_InitPlay (LPDIRECTMUSICSEGMENT iface, IDirectMusicSegmentState** ppSegState, IDirectMusicPerformance* pPerformance, DWORD dwFlags)
130 {
131         FIXME("stub\n");
132         return DS_OK;
133 }
134
135 HRESULT WINAPI IDirectMusicSegmentImpl_GetGraph (LPDIRECTMUSICSEGMENT iface, IDirectMusicGraph** ppGraph)
136 {
137         FIXME("stub\n");
138         return DS_OK;
139 }
140
141 HRESULT WINAPI IDirectMusicSegmentImpl_SetGraph (LPDIRECTMUSICSEGMENT iface, IDirectMusicGraph* pGraph)
142 {
143         FIXME("stub\n");
144         return DS_OK;
145 }
146
147 HRESULT WINAPI IDirectMusicSegmentImpl_AddNotificationType (LPDIRECTMUSICSEGMENT iface, REFGUID rguidNotificationType)
148 {
149         FIXME("stub\n");
150         return DS_OK;
151 }
152
153 HRESULT WINAPI IDirectMusicSegmentImpl_RemoveNotificationType (LPDIRECTMUSICSEGMENT iface, REFGUID rguidNotificationType)
154 {
155         FIXME("stub\n");
156         return DS_OK;
157 }
158
159 HRESULT WINAPI IDirectMusicSegmentImpl_GetParam (LPDIRECTMUSICSEGMENT iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam)
160 {
161         FIXME("stub\n");
162         return DS_OK;
163 }
164
165 HRESULT WINAPI IDirectMusicSegmentImpl_SetParam (LPDIRECTMUSICSEGMENT iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void* pParam)
166 {
167         FIXME("stub\n");
168         return DS_OK;
169 }
170
171 HRESULT WINAPI IDirectMusicSegmentImpl_Clone (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicSegment** ppSegment)
172 {
173         FIXME("stub\n");
174         return DS_OK;
175 }
176
177 HRESULT WINAPI IDirectMusicSegmentImpl_SetStartPoint (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtStart)
178 {
179         FIXME("stub\n");
180         return DS_OK;
181 }
182
183 HRESULT WINAPI IDirectMusicSegmentImpl_GetStartPoint (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME* pmtStart)
184 {
185         FIXME("stub\n");
186         return DS_OK;
187 }
188
189 HRESULT WINAPI IDirectMusicSegmentImpl_SetLoopPoints (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd)
190 {
191         FIXME("stub\n");
192         return DS_OK;
193 }
194
195 HRESULT WINAPI IDirectMusicSegmentImpl_GetLoopPoints (LPDIRECTMUSICSEGMENT iface, MUSIC_TIME* pmtStart, MUSIC_TIME* pmtEnd)
196 {
197         FIXME("stub\n");
198         return DS_OK;
199 }
200
201 HRESULT WINAPI IDirectMusicSegmentImpl_SetPChannelsUsed (LPDIRECTMUSICSEGMENT iface, DWORD dwNumPChannels, DWORD* paPChannels)
202 {
203         FIXME("stub\n");
204         return DS_OK;
205 }
206
207 ICOM_VTABLE(IDirectMusicSegment) DirectMusicSegment_Vtbl =
208 {
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
236 };
237
238
239 /* IDirectMusicSegment8 IUnknown parts follow: */
240 HRESULT WINAPI IDirectMusicSegment8Impl_QueryInterface (LPDIRECTMUSICSEGMENT8 iface, REFIID riid, LPVOID *ppobj)
241 {
242         ICOM_THIS(IDirectMusicSegment8Impl,iface);
243
244         if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegment8))
245         {
246                 IDirectMusicSegment8Impl_AddRef(iface);
247                 *ppobj = This;
248                 return DS_OK;
249         }
250         WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
251         return E_NOINTERFACE;
252 }
253
254 ULONG WINAPI IDirectMusicSegment8Impl_AddRef (LPDIRECTMUSICSEGMENT8 iface)
255 {
256         ICOM_THIS(IDirectMusicSegment8Impl,iface);
257         TRACE("(%p) : AddRef from %ld\n", This, This->ref);
258         return ++(This->ref);
259 }
260
261 ULONG WINAPI IDirectMusicSegment8Impl_Release (LPDIRECTMUSICSEGMENT8 iface)
262 {
263         ICOM_THIS(IDirectMusicSegment8Impl,iface);
264         ULONG ref = --This->ref;
265         TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
266         if (ref == 0)
267         {
268                 HeapFree(GetProcessHeap(), 0, This);
269         }
270         return ref;
271 }
272
273 /* IDirectMusicSegment Interface part follow: */
274 HRESULT WINAPI IDirectMusicSegment8Impl_GetLength (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtLength)
275 {
276         FIXME("stub\n");
277         return DS_OK;
278 }
279
280 HRESULT WINAPI IDirectMusicSegment8Impl_SetLength (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtLength)
281 {
282         FIXME("stub\n");
283         return DS_OK;
284 }
285
286 HRESULT WINAPI IDirectMusicSegment8Impl_GetRepeats (LPDIRECTMUSICSEGMENT8 iface, DWORD* pdwRepeats)
287 {
288         FIXME("stub\n");
289         return DS_OK;
290 }
291
292 HRESULT WINAPI IDirectMusicSegment8Impl_SetRepeats (LPDIRECTMUSICSEGMENT8 iface, DWORD dwRepeats)
293 {
294         FIXME("stub\n");
295         return DS_OK;
296 }
297
298 HRESULT WINAPI IDirectMusicSegment8Impl_GetDefaultResolution (LPDIRECTMUSICSEGMENT8 iface, DWORD* pdwResolution)
299 {
300         FIXME("stub\n");
301         return DS_OK;
302 }
303
304 HRESULT WINAPI IDirectMusicSegment8Impl_SetDefaultResolution (LPDIRECTMUSICSEGMENT8 iface, DWORD dwResolution)
305 {
306         FIXME("stub\n");
307         return DS_OK;
308 }
309
310 HRESULT WINAPI IDirectMusicSegment8Impl_GetTrack (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, IDirectMusicTrack** ppTrack)
311 {
312         FIXME("stub\n");
313         return DS_OK;
314 }
315
316 HRESULT WINAPI IDirectMusicSegment8Impl_GetTrackGroup (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack, DWORD* pdwGroupBits)
317 {
318         FIXME("stub\n");
319         return DS_OK;
320 }
321
322 HRESULT WINAPI IDirectMusicSegment8Impl_InsertTrack (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack, DWORD dwGroupBits)
323 {
324         FIXME("stub\n");
325         return DS_OK;
326 }
327
328 HRESULT WINAPI IDirectMusicSegment8Impl_RemoveTrack (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack)
329 {
330         FIXME("stub\n");
331         return DS_OK;
332 }
333
334 HRESULT WINAPI IDirectMusicSegment8Impl_InitPlay (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicSegmentState** ppSegState, IDirectMusicPerformance* pPerformance, DWORD dwFlags)
335 {
336         FIXME("stub\n");
337         return DS_OK;
338 }
339
340 HRESULT WINAPI IDirectMusicSegment8Impl_GetGraph (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicGraph** ppGraph)
341 {
342         FIXME("stub\n");
343         return DS_OK;
344 }
345
346 HRESULT WINAPI IDirectMusicSegment8Impl_SetGraph (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicGraph* pGraph)
347 {
348         FIXME("stub\n");
349         return DS_OK;
350 }
351
352 HRESULT WINAPI IDirectMusicSegment8Impl_AddNotificationType (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidNotificationType)
353 {
354         FIXME("stub\n");
355         return DS_OK;
356 }
357
358 HRESULT WINAPI IDirectMusicSegment8Impl_RemoveNotificationType (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidNotificationType)
359 {
360         FIXME("stub\n");
361         return DS_OK;
362 }
363
364 HRESULT WINAPI IDirectMusicSegment8Impl_GetParam (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam)
365 {
366         FIXME("stub\n");
367         return DS_OK;
368 }
369
370 HRESULT WINAPI IDirectMusicSegment8Impl_SetParam (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void* pParam)
371 {
372         FIXME("stub\n");
373         return DS_OK;
374 }
375
376 HRESULT WINAPI IDirectMusicSegment8Impl_Clone (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicSegment** ppSegment)
377 {
378         FIXME("stub\n");
379         return DS_OK;
380 }
381
382 HRESULT WINAPI IDirectMusicSegment8Impl_SetStartPoint (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart)
383 {
384         FIXME("stub\n");
385         return DS_OK;
386 }
387
388 HRESULT WINAPI IDirectMusicSegment8Impl_GetStartPoint (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtStart)
389 {
390         FIXME("stub\n");
391         return DS_OK;
392 }
393
394 HRESULT WINAPI IDirectMusicSegment8Impl_SetLoopPoints (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd)
395 {
396         FIXME("stub\n");
397         return DS_OK;
398 }
399
400 HRESULT WINAPI IDirectMusicSegment8Impl_GetLoopPoints (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtStart, MUSIC_TIME* pmtEnd)
401 {
402         FIXME("stub\n");
403         return DS_OK;
404 }
405
406 HRESULT WINAPI IDirectMusicSegment8Impl_SetPChannelsUsed (LPDIRECTMUSICSEGMENT8 iface, DWORD dwNumPChannels, DWORD* paPChannels)
407 {
408         FIXME("stub\n");
409         return DS_OK;
410 }
411
412 /* IDirectMusicSegment Interface part follow: */
413 HRESULT WINAPI IDirectMusicSegment8Impl_SetTrackConfig (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn, DWORD dwFlagsOff)
414 {
415         FIXME("stub\n");
416         return DS_OK;
417 }
418
419 HRESULT WINAPI IDirectMusicSegment8Impl_GetAudioPathConfig (LPDIRECTMUSICSEGMENT8 iface, IUnknown** ppAudioPathConfig)
420 {
421         FIXME("stub\n");
422         return DS_OK;
423 }
424
425 HRESULT WINAPI IDirectMusicSegment8Impl_Compose (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtTime, IDirectMusicSegment* pFromSegment, IDirectMusicSegment* pToSegment, IDirectMusicSegment** ppComposedSegment)
426 {
427         FIXME("stub\n");
428         return DS_OK;
429 }
430
431 HRESULT WINAPI IDirectMusicSegment8Impl_Download (LPDIRECTMUSICSEGMENT8 iface, IUnknown *pAudioPath)
432 {
433         FIXME("stub\n");
434         return DS_OK;
435 }
436
437 HRESULT WINAPI IDirectMusicSegment8Impl_Unload (LPDIRECTMUSICSEGMENT8 iface, IUnknown *pAudioPath)
438 {
439         FIXME("stub\n");
440         return DS_OK;
441 }
442
443 ICOM_VTABLE(IDirectMusicSegment8) DirectMusicSegment8_Vtbl =
444 {
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
477 };
478
479
480 /* IDirectMusicSegmentState IUnknown parts follow: */
481 HRESULT WINAPI IDirectMusicSegmentStateImpl_QueryInterface (LPDIRECTMUSICSEGMENTSTATE iface, REFIID riid, LPVOID *ppobj)
482 {
483         ICOM_THIS(IDirectMusicSegmentStateImpl,iface);
484
485         if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegmentState))
486         {
487                 IDirectMusicSegmentStateImpl_AddRef(iface);
488                 *ppobj = This;
489                 return DS_OK;
490         }
491         WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
492         return E_NOINTERFACE;
493 }
494
495 ULONG WINAPI IDirectMusicSegmentStateImpl_AddRef (LPDIRECTMUSICSEGMENTSTATE iface)
496 {
497         ICOM_THIS(IDirectMusicSegmentStateImpl,iface);
498         TRACE("(%p) : AddRef from %ld\n", This, This->ref);
499         return ++(This->ref);
500 }
501
502 ULONG WINAPI IDirectMusicSegmentStateImpl_Release (LPDIRECTMUSICSEGMENTSTATE iface)
503 {
504         ICOM_THIS(IDirectMusicSegmentStateImpl,iface);
505         ULONG ref = --This->ref;
506         TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
507         if (ref == 0)
508         {
509                 HeapFree(GetProcessHeap(), 0, This);
510         }
511         return ref;
512 }
513
514 /* IDirectMusicSegmentState Interface follow: */
515 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetRepeats (LPDIRECTMUSICSEGMENTSTATE iface,  DWORD* pdwRepeats)
516 {
517         FIXME("stub\n");
518         return DS_OK;
519 }
520
521 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetSegment (LPDIRECTMUSICSEGMENTSTATE iface, IDirectMusicSegment** ppSegment)
522 {
523         FIXME("stub\n");
524         return DS_OK;
525 }
526
527 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetStartTime (LPDIRECTMUSICSEGMENTSTATE iface, MUSIC_TIME* pmtStart)
528 {
529         FIXME("stub\n");
530         return DS_OK;
531 }
532
533 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetSeek (LPDIRECTMUSICSEGMENTSTATE iface, MUSIC_TIME* pmtSeek)
534 {
535         FIXME("stub\n");
536         return DS_OK;
537 }
538
539 HRESULT WINAPI IDirectMusicSegmentStateImpl_GetStartPoint (LPDIRECTMUSICSEGMENTSTATE iface, MUSIC_TIME* pmtStart)
540 {
541         FIXME("stub\n");
542         return DS_OK;
543 }
544
545 ICOM_VTABLE(IDirectMusicSegmentState) DirectMusicSegmentState_Vtbl =
546 {
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
556 };
557
558 /* IDirectMusicSegmentState8 IUnknown parts follow: */
559 HRESULT WINAPI IDirectMusicSegmentState8Impl_QueryInterface (LPDIRECTMUSICSEGMENTSTATE8 iface, REFIID riid, LPVOID *ppobj)
560 {
561         ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
562
563         if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicSegmentState8))
564         {
565                 IDirectMusicSegmentState8Impl_AddRef(iface);
566                 *ppobj = This;
567                 return DS_OK;
568         }
569         WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
570         return E_NOINTERFACE;
571 }
572
573 ULONG WINAPI IDirectMusicSegmentState8Impl_AddRef (LPDIRECTMUSICSEGMENTSTATE8 iface)
574 {
575         ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
576         TRACE("(%p) : AddRef from %ld\n", This, This->ref);
577         return ++(This->ref);
578 }
579
580 ULONG WINAPI IDirectMusicSegmentState8Impl_Release (LPDIRECTMUSICSEGMENTSTATE8 iface)
581 {
582         ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
583         ULONG ref = --This->ref;
584         TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
585         if (ref == 0)
586         {
587                 HeapFree(GetProcessHeap(), 0, This);
588         }
589         return ref;
590 }
591
592 /* IDirectMusicSegmentState Interface part follow: */
593 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetRepeats (LPDIRECTMUSICSEGMENTSTATE8 iface,  DWORD* pdwRepeats)
594 {
595         FIXME("stub\n");
596         return DS_OK;
597 }
598
599 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSegment (LPDIRECTMUSICSEGMENTSTATE8 iface, IDirectMusicSegment** ppSegment)
600 {
601         FIXME("stub\n");
602         return DS_OK;
603 }
604
605 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartTime (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart)
606 {
607         FIXME("stub\n");
608         return DS_OK;
609 }
610
611 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSeek (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtSeek)
612 {
613         FIXME("stub\n");
614         return DS_OK;
615 }
616
617 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartPoint (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart)
618 {
619         FIXME("stub\n");
620         return DS_OK;
621 }
622
623 /* IDirectMusicSegmentState8 Interface part follow: */
624 HRESULT WINAPI IDirectMusicSegmentState8Impl_SetTrackConfig (LPDIRECTMUSICSEGMENTSTATE8 iface, REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn, DWORD dwFlagsOff)
625 {
626         FIXME("stub\n");
627         return DS_OK;
628 }
629
630 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetObjectInPath (LPDIRECTMUSICSEGMENTSTATE8 iface, DWORD dwPChannel, DWORD dwStage, DWORD dwBuffer, REFGUID guidObject, DWORD dwIndex, REFGUID iidInterface, void** ppObject)
631 {
632         FIXME("stub\n");
633         return DS_OK;
634 }
635
636 ICOM_VTABLE(IDirectMusicSegmentState8) DirectMusicSegmentState8_Vtbl =
637 {
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
649 };
650
651
652 /* IDirectMusicPatternTrack IUnknown parts follow: */
653 HRESULT WINAPI IDirectMusicPatternTrackImpl_QueryInterface (LPDIRECTMUSICPATTERNTRACK iface, REFIID riid, LPVOID *ppobj)
654 {
655         ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
656
657         if (IsEqualGUID(riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicPatternTrack))
658         {
659                 IDirectMusicPatternTrackImpl_AddRef(iface);
660                 *ppobj = This;
661                 return DS_OK;
662         }
663         WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
664         return E_NOINTERFACE;
665 }
666
667 ULONG WINAPI IDirectMusicPatternTrackImpl_AddRef (LPDIRECTMUSICPATTERNTRACK iface)
668 {
669         ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
670         TRACE("(%p) : AddRef from %ld\n", This, This->ref);
671         return ++(This->ref);
672 }
673
674 ULONG WINAPI IDirectMusicPatternTrackImpl_Release (LPDIRECTMUSICPATTERNTRACK iface)
675 {
676         ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
677         ULONG ref = --This->ref;
678         TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
679         if (ref == 0)
680         {
681                 HeapFree(GetProcessHeap(), 0, This);
682         }
683         return ref;
684 }
685
686 /* IDirectMusicPatternTrack Interface follow: */
687 HRESULT WINAPI IDirectMusicPatternTrackImpl_CreateSegment (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicStyle* pStyle, IDirectMusicSegment** ppSegment)
688 {
689         FIXME("stub\n");
690         return DS_OK;
691 }
692
693 HRESULT WINAPI IDirectMusicPatternTrackImpl_SetVariation (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, DWORD dwVariationFlags, DWORD dwPart)
694 {
695         FIXME("stub\n");
696         return DS_OK;
697 }
698
699 HRESULT WINAPI IDirectMusicPatternTrackImpl_SetPatternByName (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, WCHAR* wszName, IDirectMusicStyle* pStyle, DWORD dwPatternType, DWORD* pdwLength)
700 {
701         FIXME("stub\n");
702         return DS_OK;
703 }
704
705 ICOM_VTABLE(IDirectMusicPatternTrack) DirectMusicPatternTrack_Vtbl =
706 {
707     ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
708         IDirectMusicPatternTrackImpl_QueryInterface,
709         IDirectMusicPatternTrackImpl_AddRef,
710         IDirectMusicPatternTrackImpl_Release,
711         IDirectMusicPatternTrackImpl_CreateSegment,
712         IDirectMusicPatternTrackImpl_SetVariation,
713         IDirectMusicPatternTrackImpl_SetPatternByName
714 };