From fda99c0fcc96729b096a1434820f90ec7ab6886a Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Sun, 5 Jan 2014 23:48:46 +0100 Subject: [PATCH] dmusic: The object class is immutable in a DirectMusicObject. --- dlls/dmusic/collection.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/dmusic/collection.c b/dlls/dmusic/collection.c index cbcc0820d0e..a519b2af414 100644 --- a/dlls/dmusic/collection.c +++ b/dlls/dmusic/collection.c @@ -189,7 +189,9 @@ static HRESULT WINAPI IDirectMusicCollectionImpl_IDirectMusicObject_GetDescripto static HRESULT WINAPI IDirectMusicCollectionImpl_IDirectMusicObject_SetDescriptor(LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc) { - IDirectMusicCollectionImpl *This = impl_from_IDirectMusicObject(iface); + IDirectMusicCollectionImpl *This = impl_from_IDirectMusicObject(iface); + HRESULT ret = S_OK; + TRACE("(%p, %p)\n", iface, pDesc); @@ -206,7 +208,10 @@ static HRESULT WINAPI IDirectMusicCollectionImpl_IDirectMusicObject_SetDescripto if (pDesc->dwValidData & DMUS_OBJ_OBJECT) This->pDesc->guidObject = pDesc->guidObject; if (pDesc->dwValidData & DMUS_OBJ_CLASS) - This->pDesc->guidClass = pDesc->guidClass; + { + pDesc->dwValidData &= ~DMUS_OBJ_CLASS; + ret = S_FALSE; + } if (pDesc->dwValidData & DMUS_OBJ_NAME) lstrcpynW(This->pDesc->wszName, pDesc->wszName, DMUS_MAX_NAME); if (pDesc->dwValidData & DMUS_OBJ_CATEGORY) @@ -229,7 +234,7 @@ static HRESULT WINAPI IDirectMusicCollectionImpl_IDirectMusicObject_SetDescripto /* add new flags */ This->pDesc->dwValidData |= pDesc->dwValidData; - return S_OK; + return ret; } static HRESULT read_from_stream(IStream *stream, void *data, ULONG size) -- 2.11.4.GIT