62 *ret_iface = &
This->dmobj.IDirectMusicObject_iface;
64 *ret_iface = &
This->dmobj.IPersistStream_iface;
70 IUnknown_AddRef((
IUnknown*)*ret_iface);
106 FIXME(
"(%p, %p, %p): stub\n",
This, pPerformance, pErrorInfo);
107 This->pPerformance = pPerformance;
125 FIXME(
"(%p, %s, FIXME, %d, %p): stub\n",
This,
debugstr_w(pwszVariableName), fSetRef, pErrorInfo);
133 FIXME(
"(%p, %s, %p, %p): stub\n",
This,
debugstr_w(pwszVariableName), pvarValue, pErrorInfo);
141 FIXME(
"(%p, %s, %li, %p): stub\n",
This,
debugstr_w(pwszVariableName), lValue, pErrorInfo);
149 FIXME(
"(%p, %s, %p, %p): stub\n",
This,
debugstr_w(pwszVariableName), plValue, pErrorInfo);
157 FIXME(
"(%p, %s, %p, %p): stub\n",
This,
debugstr_w(pwszVariableName), punkValue, pErrorInfo);
173 FIXME(
"(%p, %ld, %p): stub\n",
This, dwIndex, pwszName);
181 FIXME(
"(%p, %ld, %p): stub\n",
This, dwIndex, pwszName);
225 if (
desc->dwValidData) {
226 desc->guidClass = CLSID_DirectMusicScript;
230 TRACE(
"returning descriptor:\n");
254 DWORD StreamSize, StreamCount, ListSize[3], ListCount[3];
259 FIXME(
"(%p, %p): Loading not implemented yet\n",
This, pStm);
262 switch (Chunk.
fccID) {
268 switch (Chunk.
fccID) {
270 TRACE_(dmfile)(
": script form\n");
275 switch (Chunk.
fccID) {
277 TRACE_(dmfile)(
": script header chunk\n");
283 TRACE_(dmfile)(
": script version chunk\n");
286 TRACE_(dmfile)(
"version: 0x%08lx.0x%08lx\n",
This->pVersion->dwVersionMS,
This->pVersion->dwVersionLS);
290 TRACE_(dmfile)(
": script language chunk\n");
297 TRACE_(dmfile)(
": script source chunk\n");
312 TRACE_(dmfile)(
": GUID chunk\n");
314 IStream_Read (pStm, &
This->dmobj.desc.guidObject, Chunk.
dwSize,
NULL);
318 TRACE_(dmfile)(
": version chunk\n");
320 IStream_Read (pStm, &
This->dmobj.desc.vVersion, Chunk.
dwSize,
NULL);
324 TRACE_(dmfile)(
": category chunk\n");
326 IStream_Read (pStm,
This->dmobj.desc.wszCategory, Chunk.
dwSize,
NULL);
336 desc.guidClass = CLSID_DirectMusicContainer;
338 IStream_Clone (pStm, &
desc.pStream);
342 IStream_Seek (
desc.pStream, liMove, STREAM_SEEK_CUR,
NULL);
344 IStream_QueryInterface (pStm, &IID_IDirectMusicGetLoader, (
LPVOID*)&pGetLoader);
351 ERR_(dmfile)(
"Error on GetObject while trying to load Scrip SubContainer\n");
358 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
381 switch (Chunk.
fccID) {
383 TRACE_(dmfile)(
": UNFO list\n");
388 switch (Chunk.
fccID) {
393 TRACE_(dmfile)(
": name chunk\n");
395 IStream_Read (pStm,
This->dmobj.desc.wszName, Chunk.
dwSize,
NULL);
400 TRACE_(dmfile)(
": artist chunk (ignored)\n");
402 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
407 TRACE_(dmfile)(
": copyright chunk (ignored)\n");
409 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
414 TRACE_(dmfile)(
": subject chunk (ignored)\n");
416 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
421 TRACE_(dmfile)(
": comment chunk (ignored)\n");
423 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
427 TRACE_(dmfile)(
": unknown sub-chunk (irrelevant & skipping)\n");
429 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
433 TRACE_(dmfile)(
": ListCount[0] = %ld < ListSize[0] = %ld\n", ListCount[0], ListSize[0]);
434 }
while (ListCount[0] < ListSize[0]);
438 TRACE_(dmfile)(
": unknown (skipping)\n");
440 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
447 TRACE_(dmfile)(
": unknown chunk (irrelevant & skipping)\n");
449 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
453 TRACE_(dmfile)(
": StreamCount[0] = %ld < StreamSize[0] = %ld\n", StreamCount, StreamSize);
454 }
while (StreamCount < StreamSize);
458 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
460 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
464 TRACE_(dmfile)(
": reading finished\n");
468 TRACE_(dmfile)(
": unexpected chunk; loading failed)\n");
470 IStream_Seek (pStm, liMove, STREAM_SEEK_CUR,
NULL);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static ULONG WINAPI IDirectMusicScriptImpl_Release(IDirectMusicScript *iface)
static ULONG WINAPI IDirectMusicScriptImpl_AddRef(IDirectMusicScript *iface)
static HRESULT WINAPI IDirectMusicScriptImpl_QueryInterface(IDirectMusicScript *iface, REFIID riid, void **ret_iface)
HRESULT DMUSIC_CreateDirectMusicScriptImpl(REFIID lpcGUID, void **ppobj, IUnknown *pUnkOuter)
static HRESULT WINAPI IDirectMusicScriptImpl_SetVariableNumber(IDirectMusicScript *iface, WCHAR *pwszVariableName, LONG lValue, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
static HRESULT WINAPI IDirectMusicScriptImpl_EnumVariable(IDirectMusicScript *iface, DWORD dwIndex, WCHAR *pwszName)
static const IDirectMusicObjectVtbl dmobject_vtbl
static HRESULT WINAPI IDirectMusicScriptImpl_SetVariableObject(IDirectMusicScript *iface, WCHAR *pwszVariableName, IUnknown *punkValue, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
static const IPersistStreamVtbl persiststream_vtbl
static HRESULT WINAPI IDirectMusicScriptImpl_GetVariableNumber(IDirectMusicScript *iface, WCHAR *pwszVariableName, LONG *plValue, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
static HRESULT WINAPI IDirectMusicScriptImpl_Init(IDirectMusicScript *iface, IDirectMusicPerformance *pPerformance, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
static IDirectMusicScriptImpl * impl_from_IPersistStream(IPersistStream *iface)
static HRESULT WINAPI IDirectMusicScriptImpl_EnumRoutine(IDirectMusicScript *iface, DWORD dwIndex, WCHAR *pwszName)
static HRESULT WINAPI IDirectMusicScriptImpl_CallRoutine(IDirectMusicScript *iface, WCHAR *pwszRoutineName, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
static HRESULT WINAPI IDirectMusicScriptImpl_GetVariableVariant(IDirectMusicScript *iface, WCHAR *pwszVariableName, VARIANT *pvarValue, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
static HRESULT WINAPI IDirectMusicScriptImpl_SetVariableVariant(IDirectMusicScript *iface, WCHAR *pwszVariableName, VARIANT varValue, BOOL fSetRef, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
static IDirectMusicScriptImpl * impl_from_IDirectMusicScript(IDirectMusicScript *iface)
static HRESULT WINAPI IPersistStreamImpl_Load(IPersistStream *iface, IStream *pStm)
static const IDirectMusicScriptVtbl dmscript_vtbl
static HRESULT WINAPI script_IDirectMusicObject_ParseDescriptor(IDirectMusicObject *iface, IStream *stream, DMUS_OBJECTDESC *desc)
static HRESULT WINAPI IDirectMusicScriptImpl_GetVariableObject(IDirectMusicScript *iface, WCHAR *pwszVariableName, REFIID riid, void **ppv, DMUS_SCRIPT_ERRORINFO *pErrorInfo)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
#define WideCharToMultiByte
size_t CDECL fwrite(const void *ptr, size_t size, size_t nmemb, FILE *file)
#define DMUS_E_SCRIPT_INVALID_FILE
HRESULT WINAPI dmobj_IDirectMusicObject_GetDescriptor(IDirectMusicObject *iface, DMUS_OBJECTDESC *desc)
void dmobject_init(struct dmobject *dmobj, const GUID *class, IUnknown *outer_unk)
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_GetClassID(IPersistStream *iface, CLSID *class)
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)
ULONG WINAPI dmobj_IPersistStream_AddRef(IPersistStream *iface)
const char * debugstr_dmguid(const GUID *id)
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)
#define DMUS_OBJ_NAME_INAM
#define DMUS_FOURCC_GUID_CHUNK
#define DMUS_FOURCC_SCRIPT_CHUNK
#define DMUS_FOURCC_UNAM_CHUNK
#define DMUS_FOURCC_VERSION_CHUNK
#define DMUS_FOURCC_SCRIPT_FORM
#define DMUS_FOURCC_UCOP_CHUNK
#define DMUS_FOURCC_UART_CHUNK
#define DMUS_FOURCC_SCRIPTLANGUAGE_CHUNK
#define DMUS_FOURCC_SCRIPTVERSION_CHUNK
#define DMUS_FOURCC_UNFO_LIST
#define DMUS_FOURCC_SCRIPTSOURCE_CHUNK
#define DMUS_FOURCC_UCMT_CHUNK
#define DMUS_FOURCC_USBJ_CHUNK
#define DMUS_FOURCC_CATEGORY_CHUNK
#define IDirectMusicGetLoader_GetLoader(p, a)
#define IDirectMusicObject_Release(p)
#define IDirectMusicLoader_Release(p)
struct IDirectMusicGetLoader * LPDIRECTMUSICGETLOADER
struct _DMUS_OBJECTDESC DMUS_OBJECTDESC
#define IDirectMusicScript_QueryInterface(p, a, b)
#define IDirectMusicGetLoader_Release(p)
struct IDirectMusicLoader * LPDIRECTMUSICLOADER
#define IDirectMusicScript_Release(p)
#define IDirectMusicLoader_GetObject(p, a, b, c)
#define DMUS_OBJ_CATEGORY
GLuint GLuint GLsizei count
#define FOURCC(a, b, c, d)
#define mmioFOURCC(c0, c1, c2, c3)
D3D11_SHADER_VARIABLE_DESC desc
const GUID IID_IPersistStream
#define IsEqualIID(riid1, riid2)
static __inline const char * debugstr_fourcc(unsigned int cc)
IDirectMusicPerformance * pPerformance
DMUS_IO_VERSION * pVersion
DMUS_IO_SCRIPT_HEADER * pHeader
IDirectMusicScript IDirectMusicScript_iface
#define CONTAINING_RECORD(address, type, field)
#define CLASS_E_NOAGGREGATION