1 /* DirectMusicStyle Private Include
3 * Copyright (C) 2003-2004 Rok Mandeljc
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Library General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 #ifndef __WINE_DMSTYLE_PRIVATE_H
21 #define __WINE_DMSTYLE_PRIVATE_H
33 #include "wine/debug.h"
34 #include "wine/list.h"
35 #include "wine/unicode.h"
42 /*****************************************************************************
45 typedef struct IDirectMusicStyle8Impl IDirectMusicStyle8Impl
;
47 typedef struct IDirectMusicAuditionTrack IDirectMusicAuditionTrack
;
48 typedef struct IDirectMusicChordTrack IDirectMusicChordTrack
;
49 typedef struct IDirectMusicCommandTrack IDirectMusicCommandTrack
;
50 typedef struct IDirectMusicMelodyFormulationTrack IDirectMusicMelodyFormulationTrack
;
51 typedef struct IDirectMusicMotifTrack IDirectMusicMotifTrack
;
52 typedef struct IDirectMusicMuteTrack IDirectMusicMuteTrack
;
53 typedef struct IDirectMusicStyleTrack IDirectMusicStyleTrack
;
55 /*****************************************************************************
56 * Predeclare the interface implementation structures
58 extern ICOM_VTABLE(IUnknown
) DirectMusicStyle8_Unknown_Vtbl
;
59 extern ICOM_VTABLE(IDirectMusicStyle8
) DirectMusicStyle8_Style_Vtbl
;
60 extern ICOM_VTABLE(IDirectMusicObject
) DirectMusicStyle8_Object_Vtbl
;
61 extern ICOM_VTABLE(IPersistStream
) DirectMusicStyle8_IPersistStream_Vtbl
;
63 extern ICOM_VTABLE(IUnknown
) DirectMusicAuditionTrack_Unknown_Vtbl
;
64 extern ICOM_VTABLE(IDirectMusicTrack8
) DirectMusicAuditionTrack_Track_Vtbl
;
65 extern ICOM_VTABLE(IPersistStream
) DirectMusicAuditionTrack_PersistStream_Vtbl
;
67 extern ICOM_VTABLE(IUnknown
) DirectMusicChordTrack_Unknown_Vtbl
;
68 extern ICOM_VTABLE(IDirectMusicTrack8
) DirectMusicChordTrack_Track_Vtbl
;
69 extern ICOM_VTABLE(IPersistStream
) DirectMusicChordTrack_PersistStream_Vtbl
;
71 extern ICOM_VTABLE(IUnknown
) DirectMusicCommandTrack_Unknown_Vtbl
;
72 extern ICOM_VTABLE(IDirectMusicTrack8
) DirectMusicCommandTrack_Track_Vtbl
;
73 extern ICOM_VTABLE(IPersistStream
) DirectMusicCommandTrack_PersistStream_Vtbl
;
75 extern ICOM_VTABLE(IUnknown
) DirectMusicMelodyFormulationTrack_Unknown_Vtbl
;
76 extern ICOM_VTABLE(IDirectMusicTrack8
) DirectMusicMelodyFormulationTrack_Track_Vtbl
;
77 extern ICOM_VTABLE(IPersistStream
) DirectMusicMelodyFormulationTrack_PersistStream_Vtbl
;
79 extern ICOM_VTABLE(IUnknown
) DirectMusicMotifTrack_Unknown_Vtbl
;
80 extern ICOM_VTABLE(IDirectMusicTrack8
) DirectMusicMotifTrack_Track_Vtbl
;
81 extern ICOM_VTABLE(IPersistStream
) DirectMusicMotifTrack_PersistStream_Vtbl
;
83 extern ICOM_VTABLE(IUnknown
) DirectMusicMuteTrack_Unknown_Vtbl
;
84 extern ICOM_VTABLE(IDirectMusicTrack8
) DirectMusicMuteTrack_Track_Vtbl
;
85 extern ICOM_VTABLE(IPersistStream
) DirectMusicMuteTrack_PersistStream_Vtbl
;
87 extern ICOM_VTABLE(IUnknown
) DirectMusicStyleTrack_Unknown_Vtbl
;
88 extern ICOM_VTABLE(IDirectMusicTrack8
) DirectMusicStyleTrack_Track_Vtbl
;
89 extern ICOM_VTABLE(IPersistStream
) DirectMusicStyleTrack_PersistStream_Vtbl
;
91 /*****************************************************************************
94 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicStyleImpl (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
96 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicAuditionTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
97 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicChordTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
98 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicCommandTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
99 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMelodyFormulationTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
100 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMotifTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
101 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMuteTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
102 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicStyleTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
104 /*****************************************************************************
105 * IDirectMusicStyle8Impl implementation structure
107 struct IDirectMusicStyle8Impl
{
108 /* IUnknown fields */
109 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
110 ICOM_VTABLE(IDirectMusicStyle8
) *StyleVtbl
;
111 ICOM_VTABLE(IDirectMusicObject
) *ObjectVtbl
;
112 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
115 /* IDirectMusicStyle8Impl fields */
116 LPDMUS_OBJECTDESC pDesc
;
120 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
121 extern ULONG WINAPI
IDirectMusicStyle8Impl_IUnknown_AddRef (LPUNKNOWN iface
);
122 extern ULONG WINAPI
IDirectMusicStyle8Impl_IUnknown_Release (LPUNKNOWN iface
);
123 /* IDirectMusicStyle: */
124 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_QueryInterface (LPDIRECTMUSICSTYLE8 iface
, REFIID riid
, LPVOID
*ppobj
);
125 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_AddRef (LPDIRECTMUSICSTYLE8 iface
);
126 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_Release (LPDIRECTMUSICSTYLE8 iface
);
127 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetBand (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicBand
** ppBand
);
128 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumBand (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
129 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultBand (LPDIRECTMUSICSTYLE8 iface
, IDirectMusicBand
** ppBand
);
130 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumMotif (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
131 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetMotif (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicSegment
** ppSegment
);
132 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultChordMap (LPDIRECTMUSICSTYLE8 iface
, IDirectMusicChordMap
** ppChordMap
);
133 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumChordMap (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
134 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetChordMap (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicChordMap
** ppChordMap
);
135 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTimeSignature (LPDIRECTMUSICSTYLE8 iface
, DMUS_TIMESIGNATURE
* pTimeSig
);
136 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetEmbellishmentLength (LPDIRECTMUSICSTYLE8 iface
, DWORD dwType
, DWORD dwLevel
, DWORD
* pdwMin
, DWORD
* pdwMax
);
137 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTempo (LPDIRECTMUSICSTYLE8 iface
, double* pTempo
);
138 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumPattern (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, DWORD dwPatternType
, WCHAR
* pwszName
);
139 /* IDirectMusicObject: */
140 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface
, REFIID riid
, LPVOID
*ppobj
);
141 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface
);
142 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface
);
143 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface
, LPDMUS_OBJECTDESC pDesc
);
144 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface
, LPDMUS_OBJECTDESC pDesc
);
145 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface
, LPSTREAM pStream
, LPDMUS_OBJECTDESC pDesc
);
146 /* IPersistStream: */
147 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
148 extern ULONG WINAPI
IDirectMusicStyle8Impl_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
149 extern ULONG WINAPI
IDirectMusicStyle8Impl_IPersistStream_Release (LPPERSISTSTREAM iface
);
150 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
151 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
152 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
153 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
154 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
157 /*****************************************************************************
158 * IDirectMusicAuditionTrack implementation structure
160 struct IDirectMusicAuditionTrack
{
161 /* IUnknown fields */
162 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
163 ICOM_VTABLE(IDirectMusicTrack8
) *TrackVtbl
;
164 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
167 /* IDirectMusicAuditionTrack fields */
168 LPDMUS_OBJECTDESC pDesc
;
172 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
173 extern ULONG WINAPI
IDirectMusicAuditionTrack_IUnknown_AddRef (LPUNKNOWN iface
);
174 extern ULONG WINAPI
IDirectMusicAuditionTrack_IUnknown_Release (LPUNKNOWN iface
);
175 /* IDirectMusicTrack(8): */
176 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
177 extern ULONG WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
178 extern ULONG WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
179 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
180 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
181 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
182 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, MUSIC_TIME mtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
183 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
184 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
185 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
186 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
187 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
188 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
189 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, REFERENCE_TIME rtStart
, REFERENCE_TIME rtEnd
, REFERENCE_TIME rtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
190 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
191 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
192 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
193 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
194 /* IPersistStream: */
195 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
196 extern ULONG WINAPI
IDirectMusicAuditionTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
197 extern ULONG WINAPI
IDirectMusicAuditionTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
198 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
199 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
200 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
201 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
202 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
205 /*****************************************************************************
206 * IDirectMusicChordTrack implementation structure
208 struct IDirectMusicChordTrack
{
209 /* IUnknown fields */
210 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
211 ICOM_VTABLE(IDirectMusicTrack8
) *TrackVtbl
;
212 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
215 /* IDirectMusicChordTrack fields */
216 LPDMUS_OBJECTDESC pDesc
;
220 extern HRESULT WINAPI
IDirectMusicChordTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
221 extern ULONG WINAPI
IDirectMusicChordTrack_IUnknown_AddRef (LPUNKNOWN iface
);
222 extern ULONG WINAPI
IDirectMusicChordTrack_IUnknown_Release (LPUNKNOWN iface
);
223 /* IDirectMusicTrack(8): */
224 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
225 extern ULONG WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
226 extern ULONG WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
227 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
228 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
229 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
230 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, MUSIC_TIME mtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
231 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
232 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
233 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
234 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
235 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
236 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
237 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, REFERENCE_TIME rtStart
, REFERENCE_TIME rtEnd
, REFERENCE_TIME rtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
238 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
239 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
240 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
241 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
242 /* IPersistStream: */
243 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
244 extern ULONG WINAPI
IDirectMusicChordTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
245 extern ULONG WINAPI
IDirectMusicChordTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
246 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
247 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
248 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
249 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
250 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
252 typedef struct _DMUS_PRIVATE_COMMAND
{
253 struct list entry
; /* for listing elements */
254 DMUS_IO_COMMAND pCommand
;
255 IDirectMusicCollection
* ppReferenceCollection
;
256 } DMUS_PRIVATE_COMMAND
, *LPDMUS_PRIVATE_COMMAND
;
258 /*****************************************************************************
259 * IDirectMusicCommandTrack implementation structure
261 struct IDirectMusicCommandTrack
{
262 /* IUnknown fields */
263 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
264 ICOM_VTABLE(IDirectMusicTrack8
) *TrackVtbl
;
265 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
268 /* IDirectMusicCommandTrack fields */
269 LPDMUS_OBJECTDESC pDesc
;
271 struct list Commands
;
275 extern HRESULT WINAPI
IDirectMusicCommandTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
276 extern ULONG WINAPI
IDirectMusicCommandTrack_IUnknown_AddRef (LPUNKNOWN iface
);
277 extern ULONG WINAPI
IDirectMusicCommandTrack_IUnknown_Release (LPUNKNOWN iface
);
278 /* IDirectMusicTrack(8): */
279 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
280 extern ULONG WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
281 extern ULONG WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
282 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
283 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
284 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
285 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, MUSIC_TIME mtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
286 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
287 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
288 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
289 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
290 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
291 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
292 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, REFERENCE_TIME rtStart
, REFERENCE_TIME rtEnd
, REFERENCE_TIME rtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
293 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
294 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
295 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
296 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
297 /* IPersistStream: */
298 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
299 extern ULONG WINAPI
IDirectMusicCommandTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
300 extern ULONG WINAPI
IDirectMusicCommandTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
301 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
302 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
303 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
304 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
305 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
308 /*****************************************************************************
309 * IDirectMusicMelodyFormulationTrack implementation structure
311 struct IDirectMusicMelodyFormulationTrack
{
312 /* IUnknown fields */
313 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
314 ICOM_VTABLE(IDirectMusicTrack8
) *TrackVtbl
;
315 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
318 /* IDirectMusicMelodyFormulationTrack fields */
319 LPDMUS_OBJECTDESC pDesc
;
323 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
324 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_AddRef (LPUNKNOWN iface
);
325 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_Release (LPUNKNOWN iface
);
326 /* IDirectMusicTrack(8): */
327 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
328 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
329 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
330 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
331 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
332 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
333 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, MUSIC_TIME mtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
334 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
335 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
336 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
337 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
338 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
339 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
340 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, REFERENCE_TIME rtStart
, REFERENCE_TIME rtEnd
, REFERENCE_TIME rtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
341 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
342 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
343 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
344 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
345 /* IPersistStream: */
346 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
347 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
348 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
349 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
350 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
351 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
352 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
353 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
356 /*****************************************************************************
357 * IDirectMusicMotifTrack implementation structure
359 struct IDirectMusicMotifTrack
{
360 /* IUnknown fields */
361 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
362 ICOM_VTABLE(IDirectMusicTrack8
) *TrackVtbl
;
363 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
366 /* IDirectMusicMotifTrack fields */
367 LPDMUS_OBJECTDESC pDesc
;
371 extern HRESULT WINAPI
IDirectMusicMotifTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
372 extern ULONG WINAPI
IDirectMusicMotifTrack_IUnknown_AddRef (LPUNKNOWN iface
);
373 extern ULONG WINAPI
IDirectMusicMotifTrack_IUnknown_Release (LPUNKNOWN iface
);
374 /* IDirectMusicTrack(8): */
375 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
376 extern ULONG WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
377 extern ULONG WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
378 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
379 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
380 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
381 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, MUSIC_TIME mtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
382 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
383 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
384 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
385 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
386 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
387 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
388 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, REFERENCE_TIME rtStart
, REFERENCE_TIME rtEnd
, REFERENCE_TIME rtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
389 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
390 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
391 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
392 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
393 /* IPersistStream: */
394 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
395 extern ULONG WINAPI
IDirectMusicMotifTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
396 extern ULONG WINAPI
IDirectMusicMotifTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
397 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
398 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
399 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
400 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
401 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
404 /*****************************************************************************
405 * IDirectMusicMuteTrack implementation structure
407 struct IDirectMusicMuteTrack
{
408 /* IUnknown fields */
409 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
410 ICOM_VTABLE(IDirectMusicTrack8
) *TrackVtbl
;
411 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
414 /* IDirectMusicMuteTrack fields */
415 LPDMUS_OBJECTDESC pDesc
;
419 extern HRESULT WINAPI
IDirectMusicMuteTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
420 extern ULONG WINAPI
IDirectMusicMuteTrack_IUnknown_AddRef (LPUNKNOWN iface
);
421 extern ULONG WINAPI
IDirectMusicMuteTrack_IUnknown_Release (LPUNKNOWN iface
);
422 /* IDirectMusicTrack(8): */
423 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
424 extern ULONG WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
425 extern ULONG WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
426 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
427 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
428 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
429 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, MUSIC_TIME mtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
430 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
431 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
432 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
433 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
434 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
435 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
436 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, REFERENCE_TIME rtStart
, REFERENCE_TIME rtEnd
, REFERENCE_TIME rtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
437 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
438 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
439 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
440 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
441 /* IPersistStream: */
442 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
443 extern ULONG WINAPI
IDirectMusicMuteTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
444 extern ULONG WINAPI
IDirectMusicMuteTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
445 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
446 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
447 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
448 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
449 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
452 /*****************************************************************************
453 * IDirectMusicStyleTrack implementation structure
455 struct IDirectMusicStyleTrack
{
456 /* IUnknown fields */
457 ICOM_VTABLE(IUnknown
) *UnknownVtbl
;
458 ICOM_VTABLE(IDirectMusicTrack8
) *TrackVtbl
;
459 ICOM_VTABLE(IPersistStream
) *PersistStreamVtbl
;
462 /* IDirectMusicStyleTrack fields */
463 LPDMUS_OBJECTDESC pDesc
;
467 extern HRESULT WINAPI
IDirectMusicStyleTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
468 extern ULONG WINAPI
IDirectMusicStyleTrack_IUnknown_AddRef (LPUNKNOWN iface
);
469 extern ULONG WINAPI
IDirectMusicStyleTrack_IUnknown_Release (LPUNKNOWN iface
);
470 /* IDirectMusicTrack(8): */
471 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
472 extern ULONG WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
473 extern ULONG WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
474 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
475 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
476 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
477 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, MUSIC_TIME mtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
478 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
479 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
480 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
481 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
482 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
483 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
484 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface
, void* pStateData
, REFERENCE_TIME rtStart
, REFERENCE_TIME rtEnd
, REFERENCE_TIME rtOffset
, DWORD dwFlags
, IDirectMusicPerformance
* pPerf
, IDirectMusicSegmentState
* pSegSt
, DWORD dwVirtualID
);
485 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
486 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
487 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
488 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
489 /* IPersistStream: */
490 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
491 extern ULONG WINAPI
IDirectMusicStyleTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
492 extern ULONG WINAPI
IDirectMusicStyleTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
493 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
494 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
495 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
496 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
497 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
500 /*****************************************************************************
503 /* for simpler reading */
504 typedef struct _DMUS_PRIVATE_CHUNK
{
505 FOURCC fccID
; /* FOURCC ID of the chunk */
506 DWORD dwSize
; /* size of the chunk */
507 } DMUS_PRIVATE_CHUNK
, *LPDMUS_PRIVATE_CHUNK
;
509 /* used for generic dumping (copied from ddraw) */
520 /* used for initialising structs (primarily for DMUS_OBJECTDESC) */
521 #define DM_STRUCT_INIT(x) \
523 memset((x), 0, sizeof(*(x))); \
524 (x)->dwSize = sizeof(*x); \
527 #define FE(x) { x, #x }
528 #define GE(x) { &x, #x }
530 /* check whether the given DWORD is even (return 0) or odd (return 1) */
531 extern int even_or_odd (DWORD number
);
532 /* FOURCC to string conversion for debug messages */
533 extern const char *debugstr_fourcc (DWORD fourcc
);
534 /* DMUS_VERSION struct to string conversion for debug messages */
535 extern const char *debugstr_dmversion (LPDMUS_VERSION version
);
536 /* returns name of given GUID */
537 extern const char *debugstr_dmguid (const GUID
*id
);
538 /* returns name of given error code */
539 extern const char *debugstr_dmreturn (DWORD code
);
540 /* generic flags-dumping function */
541 extern const char *debugstr_flags (DWORD flags
, const flag_info
* names
, size_t num_names
);
542 extern const char *debugstr_DMUS_OBJ_FLAGS (DWORD flagmask
);
543 /* dump whole DMUS_OBJECTDESC struct */
544 extern const char *debugstr_DMUS_OBJECTDESC (LPDMUS_OBJECTDESC pDesc
);
546 #endif /* __WINE_DMSTYLE_PRIVATE_H */