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
35 #include "wine/debug.h"
36 #include "wine/list.h"
37 #include "wine/unicode.h"
45 /*****************************************************************************
48 typedef struct IDirectMusicStyle8Impl IDirectMusicStyle8Impl
;
50 typedef struct IDirectMusicAuditionTrack IDirectMusicAuditionTrack
;
51 typedef struct IDirectMusicChordTrack IDirectMusicChordTrack
;
52 typedef struct IDirectMusicCommandTrack IDirectMusicCommandTrack
;
53 typedef struct IDirectMusicMelodyFormulationTrack IDirectMusicMelodyFormulationTrack
;
54 typedef struct IDirectMusicMotifTrack IDirectMusicMotifTrack
;
55 typedef struct IDirectMusicMuteTrack IDirectMusicMuteTrack
;
56 typedef struct IDirectMusicStyleTrack IDirectMusicStyleTrack
;
58 /*****************************************************************************
59 * Predeclare the interface implementation structures
61 extern IUnknownVtbl DirectMusicStyle8_Unknown_Vtbl
;
62 extern IDirectMusicStyle8Vtbl DirectMusicStyle8_Style_Vtbl
;
63 extern IDirectMusicObjectVtbl DirectMusicStyle8_Object_Vtbl
;
64 extern IPersistStreamVtbl DirectMusicStyle8_IPersistStream_Vtbl
;
66 extern IUnknownVtbl DirectMusicAuditionTrack_Unknown_Vtbl
;
67 extern IDirectMusicTrack8Vtbl DirectMusicAuditionTrack_Track_Vtbl
;
68 extern IPersistStreamVtbl DirectMusicAuditionTrack_PersistStream_Vtbl
;
70 extern IUnknownVtbl DirectMusicChordTrack_Unknown_Vtbl
;
71 extern IDirectMusicTrack8Vtbl DirectMusicChordTrack_Track_Vtbl
;
72 extern IPersistStreamVtbl DirectMusicChordTrack_PersistStream_Vtbl
;
74 extern IUnknownVtbl DirectMusicCommandTrack_Unknown_Vtbl
;
75 extern IDirectMusicTrack8Vtbl DirectMusicCommandTrack_Track_Vtbl
;
76 extern IPersistStreamVtbl DirectMusicCommandTrack_PersistStream_Vtbl
;
78 extern IUnknownVtbl DirectMusicMelodyFormulationTrack_Unknown_Vtbl
;
79 extern IDirectMusicTrack8Vtbl DirectMusicMelodyFormulationTrack_Track_Vtbl
;
80 extern IPersistStreamVtbl DirectMusicMelodyFormulationTrack_PersistStream_Vtbl
;
82 extern IUnknownVtbl DirectMusicMotifTrack_Unknown_Vtbl
;
83 extern IDirectMusicTrack8Vtbl DirectMusicMotifTrack_Track_Vtbl
;
84 extern IPersistStreamVtbl DirectMusicMotifTrack_PersistStream_Vtbl
;
86 extern IUnknownVtbl DirectMusicMuteTrack_Unknown_Vtbl
;
87 extern IDirectMusicTrack8Vtbl DirectMusicMuteTrack_Track_Vtbl
;
88 extern IPersistStreamVtbl DirectMusicMuteTrack_PersistStream_Vtbl
;
90 extern IUnknownVtbl DirectMusicStyleTrack_Unknown_Vtbl
;
91 extern IDirectMusicTrack8Vtbl DirectMusicStyleTrack_Track_Vtbl
;
92 extern IPersistStreamVtbl DirectMusicStyleTrack_PersistStream_Vtbl
;
94 /*****************************************************************************
97 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicStyleImpl (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
99 /*****************************************************************************
100 * Auxiliary definitions
102 typedef struct _DMUS_PRIVATE_STYLE_BAND
{
103 struct list entry
; /* for listing elements */
104 IDirectMusicBand
* pBand
;
105 } DMUS_PRIVATE_STYLE_BAND
, *LPDMUS_PRIVATE_STYLE_BAND
;
107 typedef struct _DMUS_PRIVATE_STYLE_PARTREF_ITEM
{
108 struct list entry
; /* for listing elements */
109 DMUS_OBJECTDESC desc
;
110 DMUS_IO_PARTREF part_ref
;
111 } DMUS_PRIVATE_STYLE_PARTREF_ITEM
, *LPDMUS_PRIVATE_STYLE_PARTREF_ITEM
;
113 typedef struct _DMUS_PRIVATE_STYLE_MOTIF
{
114 struct list entry
; /* for listing elements */
116 DMUS_IO_PATTERN pattern
;
117 DMUS_OBJECTDESC desc
;
118 /** optional for motifs */
119 DMUS_IO_MOTIFSETTINGS settings
;
120 IDirectMusicBand
* pBand
;
123 } DMUS_PRIVATE_STYLE_MOTIF
, *LPDMUS_PRIVATE_STYLE_MOTIF
;
125 typedef struct _DMUS_PRIVATE_STYLE_ITEM
{
126 struct list entry
; /* for listing elements */
128 IDirectMusicStyle8
* pObject
;
129 } DMUS_PRIVATE_STYLE_ITEM
, *LPDMUS_PRIVATE_STYLE_ITEM
;
131 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicAuditionTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
132 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicChordTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
133 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicCommandTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
134 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMelodyFormulationTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
135 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMotifTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
136 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMuteTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
137 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicStyleTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
139 /*****************************************************************************
140 * IDirectMusicStyle8Impl implementation structure
142 struct IDirectMusicStyle8Impl
{
143 /* IUnknown fields */
144 IUnknownVtbl
*UnknownVtbl
;
145 IDirectMusicStyle8Vtbl
*StyleVtbl
;
146 IDirectMusicObjectVtbl
*ObjectVtbl
;
147 IPersistStreamVtbl
*PersistStreamVtbl
;
150 /* IDirectMusicStyle8Impl fields */
151 LPDMUS_OBJECTDESC pDesc
;
160 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
161 extern ULONG WINAPI
IDirectMusicStyle8Impl_IUnknown_AddRef (LPUNKNOWN iface
);
162 extern ULONG WINAPI
IDirectMusicStyle8Impl_IUnknown_Release (LPUNKNOWN iface
);
163 /* IDirectMusicStyle: */
164 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_QueryInterface (LPDIRECTMUSICSTYLE8 iface
, REFIID riid
, LPVOID
*ppobj
);
165 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_AddRef (LPDIRECTMUSICSTYLE8 iface
);
166 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_Release (LPDIRECTMUSICSTYLE8 iface
);
167 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetBand (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicBand
** ppBand
);
168 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumBand (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
169 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultBand (LPDIRECTMUSICSTYLE8 iface
, IDirectMusicBand
** ppBand
);
170 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumMotif (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
171 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetMotif (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicSegment
** ppSegment
);
172 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultChordMap (LPDIRECTMUSICSTYLE8 iface
, IDirectMusicChordMap
** ppChordMap
);
173 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumChordMap (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
174 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetChordMap (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicChordMap
** ppChordMap
);
175 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTimeSignature (LPDIRECTMUSICSTYLE8 iface
, DMUS_TIMESIGNATURE
* pTimeSig
);
176 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetEmbellishmentLength (LPDIRECTMUSICSTYLE8 iface
, DWORD dwType
, DWORD dwLevel
, DWORD
* pdwMin
, DWORD
* pdwMax
);
177 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTempo (LPDIRECTMUSICSTYLE8 iface
, double* pTempo
);
178 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumPattern (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, DWORD dwPatternType
, WCHAR
* pwszName
);
179 /* IDirectMusicObject: */
180 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface
, REFIID riid
, LPVOID
*ppobj
);
181 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface
);
182 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface
);
183 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface
, LPDMUS_OBJECTDESC pDesc
);
184 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface
, LPDMUS_OBJECTDESC pDesc
);
185 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface
, LPSTREAM pStream
, LPDMUS_OBJECTDESC pDesc
);
186 /* IPersistStream: */
187 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
188 extern ULONG WINAPI
IDirectMusicStyle8Impl_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
189 extern ULONG WINAPI
IDirectMusicStyle8Impl_IPersistStream_Release (LPPERSISTSTREAM iface
);
190 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
191 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
192 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
193 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
194 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
197 /*****************************************************************************
198 * IDirectMusicAuditionTrack implementation structure
200 struct IDirectMusicAuditionTrack
{
201 /* IUnknown fields */
202 IUnknownVtbl
*UnknownVtbl
;
203 IDirectMusicTrack8Vtbl
*TrackVtbl
;
204 IPersistStreamVtbl
*PersistStreamVtbl
;
207 /* IDirectMusicAuditionTrack fields */
208 LPDMUS_OBJECTDESC pDesc
;
212 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
213 extern ULONG WINAPI
IDirectMusicAuditionTrack_IUnknown_AddRef (LPUNKNOWN iface
);
214 extern ULONG WINAPI
IDirectMusicAuditionTrack_IUnknown_Release (LPUNKNOWN iface
);
215 /* IDirectMusicTrack(8): */
216 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
217 extern ULONG WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
218 extern ULONG WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
219 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
220 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
221 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
222 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
);
223 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
224 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
225 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
226 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
227 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
228 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
229 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
);
230 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
231 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
232 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
233 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
234 /* IPersistStream: */
235 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
236 extern ULONG WINAPI
IDirectMusicAuditionTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
237 extern ULONG WINAPI
IDirectMusicAuditionTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
238 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
239 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
240 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
241 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
242 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
245 /*****************************************************************************
246 * IDirectMusicChordTrack implementation structure
248 struct IDirectMusicChordTrack
{
249 /* IUnknown fields */
250 IUnknownVtbl
*UnknownVtbl
;
251 IDirectMusicTrack8Vtbl
*TrackVtbl
;
252 IPersistStreamVtbl
*PersistStreamVtbl
;
255 /* IDirectMusicChordTrack fields */
256 LPDMUS_OBJECTDESC pDesc
;
261 extern HRESULT WINAPI
IDirectMusicChordTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
262 extern ULONG WINAPI
IDirectMusicChordTrack_IUnknown_AddRef (LPUNKNOWN iface
);
263 extern ULONG WINAPI
IDirectMusicChordTrack_IUnknown_Release (LPUNKNOWN iface
);
264 /* IDirectMusicTrack(8): */
265 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
266 extern ULONG WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
267 extern ULONG WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
268 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
269 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
270 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
271 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
);
272 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
273 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
274 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
275 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
276 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
277 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
278 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
);
279 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
280 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
281 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
282 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
283 /* IPersistStream: */
284 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
285 extern ULONG WINAPI
IDirectMusicChordTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
286 extern ULONG WINAPI
IDirectMusicChordTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
287 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
288 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
289 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
290 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
291 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
293 typedef struct _DMUS_PRIVATE_COMMAND
{
294 struct list entry
; /* for listing elements */
295 DMUS_IO_COMMAND pCommand
;
296 IDirectMusicCollection
* ppReferenceCollection
;
297 } DMUS_PRIVATE_COMMAND
, *LPDMUS_PRIVATE_COMMAND
;
299 /*****************************************************************************
300 * IDirectMusicCommandTrack implementation structure
302 struct IDirectMusicCommandTrack
{
303 /* IUnknown fields */
304 IUnknownVtbl
*UnknownVtbl
;
305 IDirectMusicTrack8Vtbl
*TrackVtbl
;
306 IPersistStreamVtbl
*PersistStreamVtbl
;
309 /* IDirectMusicCommandTrack fields */
310 LPDMUS_OBJECTDESC pDesc
;
312 struct list Commands
;
316 extern HRESULT WINAPI
IDirectMusicCommandTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
317 extern ULONG WINAPI
IDirectMusicCommandTrack_IUnknown_AddRef (LPUNKNOWN iface
);
318 extern ULONG WINAPI
IDirectMusicCommandTrack_IUnknown_Release (LPUNKNOWN iface
);
319 /* IDirectMusicTrack(8): */
320 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
321 extern ULONG WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
322 extern ULONG WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
323 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
324 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
325 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
326 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
);
327 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
328 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
329 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
330 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
331 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
332 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
333 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
);
334 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
335 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
336 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
337 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
338 /* IPersistStream: */
339 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
340 extern ULONG WINAPI
IDirectMusicCommandTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
341 extern ULONG WINAPI
IDirectMusicCommandTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
342 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
343 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
344 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
345 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
346 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
349 /*****************************************************************************
350 * IDirectMusicMelodyFormulationTrack implementation structure
352 struct IDirectMusicMelodyFormulationTrack
{
353 /* IUnknown fields */
354 IUnknownVtbl
*UnknownVtbl
;
355 IDirectMusicTrack8Vtbl
*TrackVtbl
;
356 IPersistStreamVtbl
*PersistStreamVtbl
;
359 /* IDirectMusicMelodyFormulationTrack fields */
360 LPDMUS_OBJECTDESC pDesc
;
364 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
365 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_AddRef (LPUNKNOWN iface
);
366 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_Release (LPUNKNOWN iface
);
367 /* IDirectMusicTrack(8): */
368 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
369 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
370 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
371 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
372 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
373 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
374 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
);
375 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
376 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
377 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
378 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
379 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
380 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
381 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
);
382 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
383 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
384 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
385 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
386 /* IPersistStream: */
387 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
388 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
389 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
390 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
391 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
392 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
393 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
394 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
397 /*****************************************************************************
398 * IDirectMusicMotifTrack implementation structure
400 struct IDirectMusicMotifTrack
{
401 /* IUnknown fields */
402 IUnknownVtbl
*UnknownVtbl
;
403 IDirectMusicTrack8Vtbl
*TrackVtbl
;
404 IPersistStreamVtbl
*PersistStreamVtbl
;
407 /* IDirectMusicMotifTrack fields */
408 LPDMUS_OBJECTDESC pDesc
;
412 extern HRESULT WINAPI
IDirectMusicMotifTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
413 extern ULONG WINAPI
IDirectMusicMotifTrack_IUnknown_AddRef (LPUNKNOWN iface
);
414 extern ULONG WINAPI
IDirectMusicMotifTrack_IUnknown_Release (LPUNKNOWN iface
);
415 /* IDirectMusicTrack(8): */
416 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
417 extern ULONG WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
418 extern ULONG WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
419 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
420 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
421 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
422 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
);
423 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
424 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
425 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
426 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
427 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
428 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
429 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
);
430 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
431 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
432 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
433 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
434 /* IPersistStream: */
435 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
436 extern ULONG WINAPI
IDirectMusicMotifTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
437 extern ULONG WINAPI
IDirectMusicMotifTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
438 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
439 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
440 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
441 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
442 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
445 /*****************************************************************************
446 * IDirectMusicMuteTrack implementation structure
448 struct IDirectMusicMuteTrack
{
449 /* IUnknown fields */
450 IUnknownVtbl
*UnknownVtbl
;
451 IDirectMusicTrack8Vtbl
*TrackVtbl
;
452 IPersistStreamVtbl
*PersistStreamVtbl
;
455 /* IDirectMusicMuteTrack fields */
456 LPDMUS_OBJECTDESC pDesc
;
460 extern HRESULT WINAPI
IDirectMusicMuteTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
461 extern ULONG WINAPI
IDirectMusicMuteTrack_IUnknown_AddRef (LPUNKNOWN iface
);
462 extern ULONG WINAPI
IDirectMusicMuteTrack_IUnknown_Release (LPUNKNOWN iface
);
463 /* IDirectMusicTrack(8): */
464 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
465 extern ULONG WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
466 extern ULONG WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
467 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
468 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
469 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
470 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
);
471 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
472 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
473 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
474 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
475 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
476 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
477 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
);
478 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
479 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
480 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
481 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
482 /* IPersistStream: */
483 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
484 extern ULONG WINAPI
IDirectMusicMuteTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
485 extern ULONG WINAPI
IDirectMusicMuteTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
486 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
487 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
488 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
489 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
490 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
493 /*****************************************************************************
494 * IDirectMusicStyleTrack implementation structure
496 struct IDirectMusicStyleTrack
{
497 /* IUnknown fields */
498 IUnknownVtbl
*UnknownVtbl
;
499 IDirectMusicTrack8Vtbl
*TrackVtbl
;
500 IPersistStreamVtbl
*PersistStreamVtbl
;
503 /* IDirectMusicStyleTrack fields */
504 LPDMUS_OBJECTDESC pDesc
;
510 extern HRESULT WINAPI
IDirectMusicStyleTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
511 extern ULONG WINAPI
IDirectMusicStyleTrack_IUnknown_AddRef (LPUNKNOWN iface
);
512 extern ULONG WINAPI
IDirectMusicStyleTrack_IUnknown_Release (LPUNKNOWN iface
);
513 /* IDirectMusicTrack(8): */
514 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
515 extern ULONG WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
516 extern ULONG WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
517 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
518 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
519 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
520 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
);
521 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
522 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
523 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
524 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
525 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
526 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
527 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
);
528 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
529 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
530 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
531 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
532 /* IPersistStream: */
533 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
534 extern ULONG WINAPI
IDirectMusicStyleTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
535 extern ULONG WINAPI
IDirectMusicStyleTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
536 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
537 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
538 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
539 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
540 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
542 /**********************************************************************
543 * Dll lifetime tracking declaration for dmstyle.dll
545 extern LONG DMSTYLE_refCount
;
546 static inline void DMSTYLE_LockModule() { InterlockedIncrement( &DMSTYLE_refCount
); }
547 static inline void DMSTYLE_UnlockModule() { InterlockedDecrement( &DMSTYLE_refCount
); }
549 /*****************************************************************************
554 #endif /* __WINE_DMSTYLE_PRIVATE_H */