119 *ret_iface = &
This->dmobj.IDirectMusicObject_iface;
121 *ret_iface = &
This->dmobj.IPersistStream_iface;
127 IUnknown_AddRef((
IUnknown*)*ret_iface);
180 IDirectMusicBand **
band)
192 IDirectMusicObject *
obj;
218 FIXME(
"(%p, %ld, %p): stub\n",
This, dwIndex, pwszName);
223 IDirectMusicBand **
band)
271 IDirectMusicSegment **ppSegment)
279 IDirectMusicChordMap **ppChordMap)
282 FIXME(
"(%p, %p): stub\n",
This, ppChordMap);
290 FIXME(
"(%p, %ld, %p): stub\n",
This, dwIndex, pwszName);
295 IDirectMusicChordMap **ppChordMap)
298 FIXME(
"(%p, %p, %p): stub\n",
This, pwszName, ppChordMap);
306 FIXME(
"(%p, %p): stub\n",
This, pTimeSig);
314 FIXME(
"(%p, %ld, %ld, %p, %p): stub\n",
This, dwType, dwLevel, pdwMin, pdwMax);
329 FIXME(
"(%p, %ld, %ld, %p): stub\n",
This, dwIndex, dwPatternType, pwszName);
375 desc->guidClass = CLSID_DirectMusicStyle;
403 ERR(
": could not create object\n");
409 ERR(
": could not acquire IPersistStream\n");
413 hr = IPersistStream_Load (pPersistStream, pClonedStream);
415 ERR(
": failed to load object\n");
420 IPersistStream_Release (pPersistStream);
574 &IID_IDirectMusicBand, (
void **)&
pattern->band)))
580 hr = IPersistStream_Load(persist,
stream);
581 IPersistStream_Release(persist);
609 DWORD StreamSize, StreamCount, ListSize[3], ListCount[3];
612 IDirectMusicBand* pBand =
NULL;
631 switch (Chunk.
fccID) {
633 TRACE_(dmfile)(
": Style chunk\n");
636 TRACE_(dmfile)(
" - dblTempo: %g\n",
This->style.dblTempo);
647 switch (Chunk.
fccID) {
652 TRACE_(dmfile)(
": BAND RIFF\n");
657 IStream_Seek(pStm, liMove, STREAM_SEEK_CUR, &save);
661 ERR(
": could not load track\n");
674 IStream_Seek(pStm, liMove, STREAM_SEEK_SET,
NULL);
679 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
681 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
692 switch (Chunk.
fccID) {
694 TRACE_(dmfile)(
": UNFO list\n");
704 switch (Chunk.
fccID) {
706 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
708 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
713 TRACE_(dmfile)(
": ListCount[0] = %ld < ListSize[0] = %ld\n", ListCount[0], ListSize[0]);
714 }
while (ListCount[0] < ListSize[0]);
720 TRACE_(dmfile)(
": PART list\n");
730 TRACE_(dmfile)(
": PATTERN list\n");
738 TRACE_(dmfile)(
": unknown (skipping)\n");
740 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
747 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
749 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
754 TRACE_(dmfile)(
": StreamCount[0] = %ld < StreamSize[0] = %ld\n", StreamCount, StreamSize);
755 }
while (StreamCount < StreamSize);
767 FIXME(
"(%p, %p): Loading\n",
This, pStm);
771 switch (Chunk.
fccID) {
775 switch (Chunk.
fccID) {
777 TRACE_(dmfile)(
": Style form\n");
783 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
785 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
789 TRACE_(dmfile)(
": reading finished\n");
793 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
795 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
#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 HRESULT WINAPI style_EnumChordMap(IDirectMusicStyle8 *iface, DWORD dwIndex, WCHAR *pwszName)
static HRESULT WINAPI style_IDirectMusicObject_ParseDescriptor(IDirectMusicObject *iface, IStream *stream, DMUS_OBJECTDESC *desc)
static struct style * impl_from_IPersistStream(IPersistStream *iface)
static HRESULT WINAPI style_EnumPattern(IDirectMusicStyle8 *iface, DWORD dwIndex, DWORD dwPatternType, WCHAR *pwszName)
static ULONG WINAPI style_Release(IDirectMusicStyle8 *iface)
static HRESULT parse_part_list(struct style *This, IStream *stream, struct chunk_entry *parent)
static HRESULT WINAPI style_GetTimeSignature(IDirectMusicStyle8 *iface, DMUS_TIMESIGNATURE *pTimeSig)
static HRESULT WINAPI style_GetChordMap(IDirectMusicStyle8 *iface, WCHAR *pwszName, IDirectMusicChordMap **ppChordMap)
static HRESULT parse_pref_list(struct style *This, IStream *stream, struct chunk_entry *parent, struct list *list)
static HRESULT WINAPI style_QueryInterface(IDirectMusicStyle8 *iface, REFIID riid, void **ret_iface)
static void style_part_destroy(struct style_part *part)
static HRESULT WINAPI style_GetEmbellishmentLength(IDirectMusicStyle8 *iface, DWORD dwType, DWORD dwLevel, DWORD *pdwMin, DWORD *pdwMax)
static const IDirectMusicObjectVtbl dmobject_vtbl
static HRESULT WINAPI style_GetDefaultBand(IDirectMusicStyle8 *iface, IDirectMusicBand **band)
static HRESULT WINAPI style_EnumBand(IDirectMusicStyle8 *iface, DWORD dwIndex, WCHAR *pwszName)
static const IPersistStreamVtbl persiststream_vtbl
static HRESULT WINAPI style_GetDefaultChordMap(IDirectMusicStyle8 *iface, IDirectMusicChordMap **ppChordMap)
static HRESULT WINAPI style_EnumMotif(IDirectMusicStyle8 *iface, DWORD index, WCHAR *name)
static struct style * impl_from_IDirectMusicStyle8(IDirectMusicStyle8 *iface)
static HRESULT WINAPI style_GetTempo(IDirectMusicStyle8 *iface, double *pTempo)
HRESULT create_dmstyle(REFIID lpcGUID, void **ppobj)
static HRESULT parse_style_form(struct style *This, DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm)
static HRESULT WINAPI IPersistStreamImpl_Load(IPersistStream *iface, IStream *pStm)
static void style_pattern_destroy(struct style_pattern *pattern)
static const IDirectMusicStyle8Vtbl dmstyle8_vtbl
static ULONG WINAPI style_AddRef(IDirectMusicStyle8 *iface)
static HRESULT load_band(IStream *pClonedStream, IDirectMusicBand **ppBand)
static HRESULT WINAPI style_GetBand(IDirectMusicStyle8 *iface, WCHAR *name, IDirectMusicBand **band)
static HRESULT parse_pttn_list(struct style *This, IStream *stream, struct chunk_entry *parent)
static HRESULT WINAPI style_GetMotif(IDirectMusicStyle8 *iface, WCHAR *pwszName, IDirectMusicSegment **ppSegment)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
#define DMUS_E_CHUNKNOTFOUND
HRESULT WINAPI dmobj_IDirectMusicObject_GetDescriptor(IDirectMusicObject *iface, DMUS_OBJECTDESC *desc)
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)
ULONG WINAPI dmobj_IDirectMusicObject_Release(IDirectMusicObject *iface)
HRESULT dmobj_parsedescriptor(IStream *stream, const struct chunk_entry *riff, DMUS_OBJECTDESC *desc, DWORD supported)
HRESULT WINAPI dmobj_IDirectMusicObject_QueryInterface(IDirectMusicObject *iface, REFIID riid, void **ret_iface)
HRESULT WINAPI unimpl_IPersistStream_GetSizeMax(IPersistStream *iface, ULARGE_INTEGER *size)
HRESULT WINAPI dmobj_IDirectMusicObject_SetDescriptor(IDirectMusicObject *iface, DMUS_OBJECTDESC *desc)
void dump_DMUS_OBJECTDESC(DMUS_OBJECTDESC *desc)
const char * debugstr_chunk(const struct chunk_entry *chunk)
HRESULT WINAPI dmobj_IPersistStream_GetClassID(IPersistStream *iface, CLSID *class)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
const char * debugstr_dmguid(const GUID *id)
HRESULT stream_chunk_get_array(IStream *stream, const struct chunk_entry *chunk, void **array, unsigned int *count, DWORD elem_size)
HRESULT WINAPI dmobj_IPersistStream_QueryInterface(IPersistStream *iface, REFIID riid, void **ret_iface)
ULONG WINAPI dmobj_IDirectMusicObject_AddRef(IDirectMusicObject *iface)
HRESULT stream_skip_chunk(IStream *stream, const struct chunk_entry *chunk)
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)
static HRESULT stream_reset_chunk_data(IStream *stream, const struct chunk_entry *chunk)
#define DMUS_OBJ_NAME_INAM
static HRESULT stream_reset_chunk_start(IStream *stream, const struct chunk_entry *chunk)
#define MAKE_IDTYPE(id, type)
#define IDirectMusicTrack_Release(p)
#define DMUS_FOURCC_STYLE_CHUNK
#define DMUS_FOURCC_BAND_FORM
#define DMUS_FOURCC_RHYTHM_CHUNK
#define DMUS_FOURCC_PATTERN_LIST
#define DMUS_FOURCC_PARTREF_LIST
#define DMUS_FOURCC_ANTICIPATION_CHUNK
#define DMUS_FOURCC_PART_LIST
#define DMUS_FOURCC_PARTREF_CHUNK
#define DMUS_FOURCC_PART_CHUNK
#define DMUS_FOURCC_CURVE_CHUNK
#define DMUS_FOURCC_STYLE_FORM
#define DMUS_FOURCC_UNFO_LIST
#define DMUS_FOURCC_PATTERN_CHUNK
#define DMUS_FOURCC_MOTIFSETTINGS_CHUNK
#define DMUS_FOURCC_RESOLUTION_CHUNK
#define DMUS_FOURCC_NOTE_CHUNK
#define DMUS_FOURCC_MARKER_CHUNK
#define IDirectMusicBand_AddRef(p)
#define IDirectMusicObject_Release(p)
#define IDirectMusicBand_QueryInterface(p, a, b)
#define IDirectMusicStyle8_QueryInterface(p, a, b)
#define IDirectMusicObject_GetDescriptor(p, a)
#define IDirectMusicStyle8_Release(p)
#define IDirectMusicBand_Release(p)
HRESULT IDirectMusicUtils_IPersistStream_ParseUNFOGeneric(DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm, LPDMUS_OBJECTDESC pDesc)
HRESULT IDirectMusicUtils_IPersistStream_ParseDescGeneric(DMUS_PRIVATE_CHUNK *pChunk, IStream *pStm, LPDMUS_OBJECTDESC pDesc)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define FOURCC(a, b, c, d)
D3D11_SHADER_VARIABLE_DESC desc
const GUID IID_IPersistStream
#define IsEqualIID(riid1, riid2)
static unsigned __int64 next
static __inline const char * debugstr_fourcc(unsigned int cc)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define LIST_FOR_EACH(cursor, list)
DMUS_IO_STYLERESOLUTION * resolutions
DMUS_IO_STYLEMARKER * markers
DMUS_IO_STYLE_ANTICIPATION * anticipations
DMUS_IO_STYLECURVE * curves
DMUS_IO_STYLENOTE * notes
DMUS_IO_MOTIFSETTINGS settings
IDirectMusicStyle8 IDirectMusicStyle8_iface
#define CONTAINING_RECORD(address, type, field)