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_MOTIF
{
108 struct list entry
; /* for listing elements */
109 DMUS_OBJECTDESC desc
;
110 DMUS_IO_PATTERN pattern
;
111 DMUS_IO_MOTIFSETTINGS settings
;
112 IDirectMusicBand
* pBand
;
113 } DMUS_PRIVATE_STYLE_MOTIF
, *LPDMUS_PRIVATE_STYLE_MOTIF
;
115 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicAuditionTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
116 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicChordTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
117 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicCommandTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
118 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMelodyFormulationTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
119 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMotifTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
120 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicMuteTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
121 extern HRESULT WINAPI
DMUSIC_CreateDirectMusicStyleTrack (LPCGUID lpcGUID
, LPVOID
* ppobj
, LPUNKNOWN pUnkOuter
);
123 /*****************************************************************************
124 * IDirectMusicStyle8Impl implementation structure
126 struct IDirectMusicStyle8Impl
{
127 /* IUnknown fields */
128 IUnknownVtbl
*UnknownVtbl
;
129 IDirectMusicStyle8Vtbl
*StyleVtbl
;
130 IDirectMusicObjectVtbl
*ObjectVtbl
;
131 IPersistStreamVtbl
*PersistStreamVtbl
;
134 /* IDirectMusicStyle8Impl fields */
135 LPDMUS_OBJECTDESC pDesc
;
144 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
145 extern ULONG WINAPI
IDirectMusicStyle8Impl_IUnknown_AddRef (LPUNKNOWN iface
);
146 extern ULONG WINAPI
IDirectMusicStyle8Impl_IUnknown_Release (LPUNKNOWN iface
);
147 /* IDirectMusicStyle: */
148 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_QueryInterface (LPDIRECTMUSICSTYLE8 iface
, REFIID riid
, LPVOID
*ppobj
);
149 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_AddRef (LPDIRECTMUSICSTYLE8 iface
);
150 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_Release (LPDIRECTMUSICSTYLE8 iface
);
151 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetBand (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicBand
** ppBand
);
152 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumBand (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
153 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultBand (LPDIRECTMUSICSTYLE8 iface
, IDirectMusicBand
** ppBand
);
154 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumMotif (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
155 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetMotif (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicSegment
** ppSegment
);
156 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultChordMap (LPDIRECTMUSICSTYLE8 iface
, IDirectMusicChordMap
** ppChordMap
);
157 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumChordMap (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, WCHAR
* pwszName
);
158 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetChordMap (LPDIRECTMUSICSTYLE8 iface
, WCHAR
* pwszName
, IDirectMusicChordMap
** ppChordMap
);
159 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTimeSignature (LPDIRECTMUSICSTYLE8 iface
, DMUS_TIMESIGNATURE
* pTimeSig
);
160 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetEmbellishmentLength (LPDIRECTMUSICSTYLE8 iface
, DWORD dwType
, DWORD dwLevel
, DWORD
* pdwMin
, DWORD
* pdwMax
);
161 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTempo (LPDIRECTMUSICSTYLE8 iface
, double* pTempo
);
162 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumPattern (LPDIRECTMUSICSTYLE8 iface
, DWORD dwIndex
, DWORD dwPatternType
, WCHAR
* pwszName
);
163 /* IDirectMusicObject: */
164 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface
, REFIID riid
, LPVOID
*ppobj
);
165 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface
);
166 extern ULONG WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface
);
167 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface
, LPDMUS_OBJECTDESC pDesc
);
168 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface
, LPDMUS_OBJECTDESC pDesc
);
169 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface
, LPSTREAM pStream
, LPDMUS_OBJECTDESC pDesc
);
170 /* IPersistStream: */
171 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
172 extern ULONG WINAPI
IDirectMusicStyle8Impl_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
173 extern ULONG WINAPI
IDirectMusicStyle8Impl_IPersistStream_Release (LPPERSISTSTREAM iface
);
174 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
175 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
176 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
177 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
178 extern HRESULT WINAPI
IDirectMusicStyle8Impl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
181 /*****************************************************************************
182 * IDirectMusicAuditionTrack implementation structure
184 struct IDirectMusicAuditionTrack
{
185 /* IUnknown fields */
186 IUnknownVtbl
*UnknownVtbl
;
187 IDirectMusicTrack8Vtbl
*TrackVtbl
;
188 IPersistStreamVtbl
*PersistStreamVtbl
;
191 /* IDirectMusicAuditionTrack fields */
192 LPDMUS_OBJECTDESC pDesc
;
196 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
197 extern ULONG WINAPI
IDirectMusicAuditionTrack_IUnknown_AddRef (LPUNKNOWN iface
);
198 extern ULONG WINAPI
IDirectMusicAuditionTrack_IUnknown_Release (LPUNKNOWN iface
);
199 /* IDirectMusicTrack(8): */
200 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
201 extern ULONG WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
202 extern ULONG WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
203 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
204 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
205 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
206 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
);
207 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
208 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
209 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
210 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
211 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
212 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
213 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
);
214 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
215 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
216 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
217 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
218 /* IPersistStream: */
219 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
220 extern ULONG WINAPI
IDirectMusicAuditionTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
221 extern ULONG WINAPI
IDirectMusicAuditionTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
222 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
223 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
224 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
225 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
226 extern HRESULT WINAPI
IDirectMusicAuditionTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
229 /*****************************************************************************
230 * IDirectMusicChordTrack implementation structure
232 struct IDirectMusicChordTrack
{
233 /* IUnknown fields */
234 IUnknownVtbl
*UnknownVtbl
;
235 IDirectMusicTrack8Vtbl
*TrackVtbl
;
236 IPersistStreamVtbl
*PersistStreamVtbl
;
239 /* IDirectMusicChordTrack fields */
240 LPDMUS_OBJECTDESC pDesc
;
245 extern HRESULT WINAPI
IDirectMusicChordTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
246 extern ULONG WINAPI
IDirectMusicChordTrack_IUnknown_AddRef (LPUNKNOWN iface
);
247 extern ULONG WINAPI
IDirectMusicChordTrack_IUnknown_Release (LPUNKNOWN iface
);
248 /* IDirectMusicTrack(8): */
249 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
250 extern ULONG WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
251 extern ULONG WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
252 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
253 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
254 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
255 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
);
256 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
257 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
258 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
259 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
260 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
261 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
262 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
);
263 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
264 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
265 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
266 extern HRESULT WINAPI
IDirectMusicChordTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
267 /* IPersistStream: */
268 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
269 extern ULONG WINAPI
IDirectMusicChordTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
270 extern ULONG WINAPI
IDirectMusicChordTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
271 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
272 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
273 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
274 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
275 extern HRESULT WINAPI
IDirectMusicChordTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
277 typedef struct _DMUS_PRIVATE_COMMAND
{
278 struct list entry
; /* for listing elements */
279 DMUS_IO_COMMAND pCommand
;
280 IDirectMusicCollection
* ppReferenceCollection
;
281 } DMUS_PRIVATE_COMMAND
, *LPDMUS_PRIVATE_COMMAND
;
283 /*****************************************************************************
284 * IDirectMusicCommandTrack implementation structure
286 struct IDirectMusicCommandTrack
{
287 /* IUnknown fields */
288 IUnknownVtbl
*UnknownVtbl
;
289 IDirectMusicTrack8Vtbl
*TrackVtbl
;
290 IPersistStreamVtbl
*PersistStreamVtbl
;
293 /* IDirectMusicCommandTrack fields */
294 LPDMUS_OBJECTDESC pDesc
;
296 struct list Commands
;
300 extern HRESULT WINAPI
IDirectMusicCommandTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
301 extern ULONG WINAPI
IDirectMusicCommandTrack_IUnknown_AddRef (LPUNKNOWN iface
);
302 extern ULONG WINAPI
IDirectMusicCommandTrack_IUnknown_Release (LPUNKNOWN iface
);
303 /* IDirectMusicTrack(8): */
304 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
305 extern ULONG WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
306 extern ULONG WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
307 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
308 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
309 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
310 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
);
311 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
312 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
313 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
314 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
315 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
316 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
317 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
);
318 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
319 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
320 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
321 extern HRESULT WINAPI
IDirectMusicCommandTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
322 /* IPersistStream: */
323 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
324 extern ULONG WINAPI
IDirectMusicCommandTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
325 extern ULONG WINAPI
IDirectMusicCommandTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
326 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
327 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
328 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
329 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
330 extern HRESULT WINAPI
IDirectMusicCommandTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
333 /*****************************************************************************
334 * IDirectMusicMelodyFormulationTrack implementation structure
336 struct IDirectMusicMelodyFormulationTrack
{
337 /* IUnknown fields */
338 IUnknownVtbl
*UnknownVtbl
;
339 IDirectMusicTrack8Vtbl
*TrackVtbl
;
340 IPersistStreamVtbl
*PersistStreamVtbl
;
343 /* IDirectMusicMelodyFormulationTrack fields */
344 LPDMUS_OBJECTDESC pDesc
;
348 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
349 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_AddRef (LPUNKNOWN iface
);
350 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IUnknown_Release (LPUNKNOWN iface
);
351 /* IDirectMusicTrack(8): */
352 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
353 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
354 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
355 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
356 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
357 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
358 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
);
359 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
360 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
361 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
362 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
363 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
364 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
365 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
);
366 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
367 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
368 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
369 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
370 /* IPersistStream: */
371 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
372 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
373 extern ULONG WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
374 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
375 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
376 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
377 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
378 extern HRESULT WINAPI
IDirectMusicMelodyFormulationTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
381 /*****************************************************************************
382 * IDirectMusicMotifTrack implementation structure
384 struct IDirectMusicMotifTrack
{
385 /* IUnknown fields */
386 IUnknownVtbl
*UnknownVtbl
;
387 IDirectMusicTrack8Vtbl
*TrackVtbl
;
388 IPersistStreamVtbl
*PersistStreamVtbl
;
391 /* IDirectMusicMotifTrack fields */
392 LPDMUS_OBJECTDESC pDesc
;
396 extern HRESULT WINAPI
IDirectMusicMotifTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
397 extern ULONG WINAPI
IDirectMusicMotifTrack_IUnknown_AddRef (LPUNKNOWN iface
);
398 extern ULONG WINAPI
IDirectMusicMotifTrack_IUnknown_Release (LPUNKNOWN iface
);
399 /* IDirectMusicTrack(8): */
400 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
401 extern ULONG WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
402 extern ULONG WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
403 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
404 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
405 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
406 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
);
407 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
408 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
409 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
410 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
411 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
412 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
413 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
);
414 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
415 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
416 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
417 extern HRESULT WINAPI
IDirectMusicMotifTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
418 /* IPersistStream: */
419 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
420 extern ULONG WINAPI
IDirectMusicMotifTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
421 extern ULONG WINAPI
IDirectMusicMotifTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
422 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
423 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
424 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
425 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
426 extern HRESULT WINAPI
IDirectMusicMotifTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
429 /*****************************************************************************
430 * IDirectMusicMuteTrack implementation structure
432 struct IDirectMusicMuteTrack
{
433 /* IUnknown fields */
434 IUnknownVtbl
*UnknownVtbl
;
435 IDirectMusicTrack8Vtbl
*TrackVtbl
;
436 IPersistStreamVtbl
*PersistStreamVtbl
;
439 /* IDirectMusicMuteTrack fields */
440 LPDMUS_OBJECTDESC pDesc
;
444 extern HRESULT WINAPI
IDirectMusicMuteTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
445 extern ULONG WINAPI
IDirectMusicMuteTrack_IUnknown_AddRef (LPUNKNOWN iface
);
446 extern ULONG WINAPI
IDirectMusicMuteTrack_IUnknown_Release (LPUNKNOWN iface
);
447 /* IDirectMusicTrack(8): */
448 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
449 extern ULONG WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
450 extern ULONG WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
451 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
452 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
453 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
454 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
);
455 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
456 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
457 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
458 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
459 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
460 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
461 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
);
462 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
463 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
464 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
465 extern HRESULT WINAPI
IDirectMusicMuteTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
466 /* IPersistStream: */
467 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
468 extern ULONG WINAPI
IDirectMusicMuteTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
469 extern ULONG WINAPI
IDirectMusicMuteTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
470 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
471 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
472 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
473 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
474 extern HRESULT WINAPI
IDirectMusicMuteTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
477 /*****************************************************************************
478 * IDirectMusicStyleTrack implementation structure
480 struct IDirectMusicStyleTrack
{
481 /* IUnknown fields */
482 IUnknownVtbl
*UnknownVtbl
;
483 IDirectMusicTrack8Vtbl
*TrackVtbl
;
484 IPersistStreamVtbl
*PersistStreamVtbl
;
487 /* IDirectMusicStyleTrack fields */
488 LPDMUS_OBJECTDESC pDesc
;
492 extern HRESULT WINAPI
IDirectMusicStyleTrack_IUnknown_QueryInterface (LPUNKNOWN iface
, REFIID riid
, LPVOID
*ppobj
);
493 extern ULONG WINAPI
IDirectMusicStyleTrack_IUnknown_AddRef (LPUNKNOWN iface
);
494 extern ULONG WINAPI
IDirectMusicStyleTrack_IUnknown_Release (LPUNKNOWN iface
);
495 /* IDirectMusicTrack(8): */
496 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface
, REFIID riid
, LPVOID
*ppobj
);
497 extern ULONG WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface
);
498 extern ULONG WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface
);
499 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegment
* pSegment
);
500 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface
, IDirectMusicSegmentState
* pSegmentState
, IDirectMusicPerformance
* pPerformance
, void** ppStateData
, DWORD dwVirtualTrackID
, DWORD dwFlags
);
501 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface
, void* pStateData
);
502 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
);
503 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, MUSIC_TIME
* pmtNext
, void* pParam
);
504 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, MUSIC_TIME mtTime
, void* pParam
);
505 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
);
506 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
507 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidNotificationType
);
508 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface
, MUSIC_TIME mtStart
, MUSIC_TIME mtEnd
, IDirectMusicTrack
** ppTrack
);
509 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
);
510 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, REFERENCE_TIME
* prtNext
, void* pParam
, void* pStateData
, DWORD dwFlags
);
511 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface
, REFGUID rguidType
, REFERENCE_TIME rtTime
, void* pParam
, void* pStateData
, DWORD dwFlags
);
512 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
513 extern HRESULT WINAPI
IDirectMusicStyleTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface
, IDirectMusicTrack
* pNewTrack
, MUSIC_TIME mtJoin
, IUnknown
* pContext
, DWORD dwTrackGroup
, IDirectMusicTrack
** ppResultTrack
);
514 /* IPersistStream: */
515 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface
, REFIID riid
, void** ppvObject
);
516 extern ULONG WINAPI
IDirectMusicStyleTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface
);
517 extern ULONG WINAPI
IDirectMusicStyleTrack_IPersistStream_Release (LPPERSISTSTREAM iface
);
518 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface
, CLSID
* pClassID
);
519 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface
);
520 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_Load (LPPERSISTSTREAM iface
, IStream
* pStm
);
521 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_Save (LPPERSISTSTREAM iface
, IStream
* pStm
, BOOL fClearDirty
);
522 extern HRESULT WINAPI
IDirectMusicStyleTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface
, ULARGE_INTEGER
* pcbSize
);
525 /*****************************************************************************
530 #endif /* __WINE_DMSTYLE_PRIVATE_H */