60 *ret_iface = &
This->dmobj.IPersistStream_iface;
66 IUnknown_AddRef((
IUnknown*)*ret_iface);
105 FIXME(
"(%p, %p): stub\n",
This, pSegment);
110 IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance,
114 FIXME(
"(%p, %p, %p, %p, %ld, %ld): stub\n",
This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID,
dwFlags);
121 FIXME(
"(%p, %p): stub\n",
This, pStateData);
127 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
130 FIXME(
"(%p, %p, %ld, %ld, %ld, %ld, %p, %p, %ld): stub\n",
This, pStateData, mtStart, mtEnd, mtOffset,
dwFlags, pPerf, pSegSt, dwVirtualID);
148 *((IDirectMusicStyle8 **)
param) =
item->dmstyle;
155 FIXME(
"GUID_TimeSignature not handled yet\n");
173 FIXME(
"GUID_DisableTimeSig not handled yet\n");
176 FIXME(
"GUID_EnableTimeSig not handled yet\n");
179 FIXME(
"GUID_IDirectMusicStyle not handled yet\n");
182 FIXME(
"GUID_SeedVariations not handled yet\n");
200 ||
IsEqualGUID (rguidType, &GUID_IDirectMusicStyle)
203 TRACE(
"param supported\n");
206 TRACE(
"param unsupported\n");
227 MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
230 FIXME(
"(%p, %ld, %ld, %p): stub\n",
This, mtStart, mtEnd, ppTrack);
236 IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt,
DWORD dwVirtualID)
239 FIXME(
"(%p, %p, 0x%s, 0x%s, 0x%s, %ld, %p, %p, %ld): stub\n",
This, pStateData,
wine_dbgstr_longlong(rtStart),
264 DWORD trackgroup, IDirectMusicTrack **track)
268 TRACE(
"(%p, %p, %ld, %p): method not implemented\n",
This,
context, trackgroup, track);
274 IDirectMusicTrack **ppResultTrack)
277 FIXME(
"(%p, %p, %ld, %p, %ld, %p): stub\n",
This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack);
305 IDirectMusicObject *dmobj;
325 WARN(
"Failed to load reference: %#lx\n",
hr);
330 WARN(
"Reference not an IDirectMusicStyle8\n");
336 TRACE(
"Found reference to style %p with timestamp %lu\n",
item->dmstyle,
item->timestamp);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define DMUS_E_GET_UNSUPPORTED
#define DMUS_E_INVALID_SEGMENTTRIGGERTRACK
#define DMUS_E_TRACK_NOT_FOUND
#define DMUS_E_TYPE_UNSUPPORTED
#define DMUS_E_CHUNKNOTFOUND
#define DMUS_E_SET_UNSUPPORTED
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
HRESULT stream_chunk_get_data(IStream *stream, const struct chunk_entry *chunk, void *data, ULONG size)
HRESULT stream_next_chunk(IStream *stream, struct chunk_entry *chunk)
ULONG WINAPI dmobj_IPersistStream_Release(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *size)
HRESULT WINAPI dmobj_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
const char * debugstr_dmguid(const GUID *id)
HRESULT dmobj_parsereference(IStream *stream, const struct chunk_entry *list, IDirectMusicObject **dmobj)
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
HRESULT stream_get_chunk(IStream *stream, struct chunk_entry *chunk)
HRESULT WINAPI unimpl_IPersistStream_IsDirty(IPersistStream *iface)
HRESULT WINAPI unimpl_IPersistStream_Save(IPersistStream *iface, IStream *stream, BOOL clear_dirty)
#define IDirectMusicTrack8_Release(p)
#define IDirectMusicTrack8_QueryInterface(p, a, b)
#define DMUS_FOURCC_STYLE_REF_LIST
#define DMUS_FOURCC_STYLE_TRACK_LIST
#define DMUS_FOURCC_REF_LIST
#define DMUS_FOURCC_TIME_STAMP_CHUNK
#define IDirectMusicObject_QueryInterface(p, a, b)
#define IDirectMusicObject_Release(p)
#define IDirectMusicStyle8_Release(p)
#define IDirectMusicStyle8_AddRef(p)
GLuint GLuint GLsizei GLenum type
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
const GUID IID_IPersistStream
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
static unsigned __int64 next
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
IDirectMusicTrack8 IDirectMusicTrack8_iface
IDirectMusicStyle8 * dmstyle
static HRESULT WINAPI style_track_GetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags)
static HRESULT WINAPI style_track_Join(IDirectMusicTrack8 *iface, IDirectMusicTrack *pNewTrack, MUSIC_TIME mtJoin, IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack)
static HRESULT WINAPI style_track_Play(IDirectMusicTrack8 *iface, void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
static HRESULT WINAPI style_track_GetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, MUSIC_TIME *next, void *param)
static HRESULT WINAPI style_track_SetParamEx(IDirectMusicTrack8 *iface, REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags)
static HRESULT WINAPI style_track_AddNotificationType(IDirectMusicTrack8 *iface, REFGUID rguidNotificationType)
static IDirectMusicStyleTrack * impl_from_IPersistStream(IPersistStream *iface)
static HRESULT WINAPI style_track_IsParamSupported(IDirectMusicTrack8 *iface, REFGUID rguidType)
HRESULT create_dmstyletrack(REFIID lpcGUID, void **ppobj)
static HRESULT WINAPI style_track_SetParam(IDirectMusicTrack8 *iface, REFGUID type, MUSIC_TIME time, void *param)
static HRESULT WINAPI style_track_Compose(IDirectMusicTrack8 *iface, IUnknown *context, DWORD trackgroup, IDirectMusicTrack **track)
static HRESULT parse_style_ref(IDirectMusicStyleTrack *This, IStream *stream, const struct chunk_entry *strf)
static HRESULT WINAPI style_track_Clone(IDirectMusicTrack8 *iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
static HRESULT WINAPI style_track_QueryInterface(IDirectMusicTrack8 *iface, REFIID riid, void **ret_iface)
static HRESULT WINAPI style_track_EndPlay(IDirectMusicTrack8 *iface, void *pStateData)
static const IPersistStreamVtbl persiststream_vtbl
static ULONG WINAPI style_track_AddRef(IDirectMusicTrack8 *iface)
static const IDirectMusicTrack8Vtbl dmtrack8_vtbl
static HRESULT WINAPI style_track_PlayEx(IDirectMusicTrack8 *iface, void *pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
static HRESULT WINAPI style_track_InitPlay(IDirectMusicTrack8 *iface, IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
static HRESULT WINAPI style_track_RemoveNotificationType(IDirectMusicTrack8 *iface, REFGUID rguidNotificationType)
static HRESULT WINAPI style_track_Init(IDirectMusicTrack8 *iface, IDirectMusicSegment *pSegment)
static IDirectMusicStyleTrack * impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface)
static HRESULT WINAPI IPersistStreamImpl_Load(IPersistStream *iface, IStream *stream)
static ULONG WINAPI style_track_Release(IDirectMusicTrack8 *iface)
#define CONTAINING_RECORD(address, type, field)