[PATCH 3/4] dmime: COM cleanup for IDirectMusicSegment8.

Michael Stefaniuc mstefani at redhat.de
Tue Jan 7 03:45:38 CST 2014


---
 dlls/dmime/dmime_private.h |  2 +-
 dlls/dmime/segment.c       | 93 ++++++++++++++++++++++++++--------------------
 2 files changed, 54 insertions(+), 41 deletions(-)

diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index de6533d..2a441db 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -128,7 +128,7 @@ typedef struct DMUSIC_PRIVATE_PCHANNEL_ {
 struct IDirectMusicSegment8Impl {
   /* IUnknown fields */
   const IUnknownVtbl *UnknownVtbl;
-  const IDirectMusicSegment8Vtbl *SegmentVtbl;
+  IDirectMusicSegment8 IDirectMusicSegment8_iface;
   const IDirectMusicObjectVtbl *ObjectVtbl;
   const IPersistStreamVtbl *PersistStreamVtbl;
   LONG           ref;
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index 49972cf..deec9c8 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -26,6 +26,11 @@ WINE_DECLARE_DEBUG_CHANNEL(dmfile);
 /*****************************************************************************
  * IDirectMusicSegmentImpl implementation
  */
+static inline IDirectMusicSegment8Impl *impl_from_IDirectMusicSegment8(IDirectMusicSegment8 *iface)
+{
+  return CONTAINING_RECORD(iface, IDirectMusicSegment8Impl, IDirectMusicSegment8_iface);
+}
+
 /* IDirectMusicSegment IUnknown part: */
 static HRESULT WINAPI IDirectMusicSegment8Impl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj) {
 	ICOM_THIS_MULTI(IDirectMusicSegment8Impl, UnknownVtbl, iface);
@@ -38,7 +43,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_IUnknown_QueryInterface (LPUNKNOW
 	} else if (IsEqualIID (riid, &IID_IDirectMusicSegment)
 	|| IsEqualIID (riid, &IID_IDirectMusicSegment2)
 	|| IsEqualIID (riid, &IID_IDirectMusicSegment8)) {
-		*ppobj = &This->SegmentVtbl;
+		*ppobj = &This->IDirectMusicSegment8_iface;
 		IUnknown_AddRef (iface);
 		return S_OK;
 	} else if (IsEqualIID (riid, &IID_IDirectMusicObject)) {
@@ -89,26 +94,27 @@ static const IUnknownVtbl DirectMusicSegment8_Unknown_Vtbl = {
 static HRESULT WINAPI IDirectMusicSegment8Impl_QueryInterface(IDirectMusicSegment8 *iface,
         REFIID riid, void **ppobj)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   return IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj);
 }
 
 static ULONG WINAPI IDirectMusicSegment8Impl_AddRef(IDirectMusicSegment8 *iface)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   return IUnknown_AddRef ((LPUNKNOWN)&This->UnknownVtbl);
 }
 
 static ULONG WINAPI IDirectMusicSegment8Impl_Release(IDirectMusicSegment8 *iface)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   return IUnknown_Release ((LPUNKNOWN)&This->UnknownVtbl);
 }
 
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetLength(IDirectMusicSegment8 *iface,
         MUSIC_TIME *pmtLength)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %p)\n", This, pmtLength);
   if (NULL == pmtLength) {
     return E_POINTER;
@@ -120,7 +126,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetLength(IDirectMusicSegment8 *i
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetLength(IDirectMusicSegment8 *iface,
         MUSIC_TIME mtLength)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %d)\n", This, mtLength);
   This->header.mtLength = mtLength;
   return S_OK;
@@ -129,7 +136,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetLength(IDirectMusicSegment8 *i
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetRepeats(IDirectMusicSegment8 *iface,
         DWORD *pdwRepeats)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %p)\n", This, pdwRepeats);
   if (NULL == pdwRepeats) {
     return E_POINTER;
@@ -141,7 +149,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetRepeats(IDirectMusicSegment8 *
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetRepeats(IDirectMusicSegment8 *iface,
         DWORD dwRepeats)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %d)\n", This, dwRepeats);
   This->header.dwRepeats = dwRepeats;
   return S_OK;
@@ -150,7 +159,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetRepeats(IDirectMusicSegment8 *
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetDefaultResolution(IDirectMusicSegment8 *iface,
         DWORD *pdwResolution)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %p)\n", This, pdwResolution);
   if (NULL == pdwResolution) {
     return E_POINTER;
@@ -162,7 +172,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetDefaultResolution(IDirectMusic
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetDefaultResolution(IDirectMusicSegment8 *iface,
         DWORD dwResolution)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %d)\n", This, dwResolution);
   This->header.dwResolution = dwResolution;
   return S_OK;
@@ -171,8 +182,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetDefaultResolution(IDirectMusic
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetTrack(IDirectMusicSegment8 *iface,
         REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, IDirectMusicTrack **ppTrack)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
-  
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   CLSID pIt_clsid;
   struct list* pEntry = NULL;
   LPDMUS_PRIVATE_SEGMENT_TRACK pIt = NULL;
@@ -221,8 +231,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetTrack(IDirectMusicSegment8 *if
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetTrackGroup(IDirectMusicSegment8 *iface,
         IDirectMusicTrack *pTrack, DWORD *pdwGroupBits)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
-
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   struct list* pEntry = NULL;
   LPDMUS_PRIVATE_SEGMENT_TRACK pIt = NULL;
 
@@ -247,8 +256,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetTrackGroup(IDirectMusicSegment
 static HRESULT WINAPI IDirectMusicSegment8Impl_InsertTrack(IDirectMusicSegment8 *iface,
         IDirectMusicTrack *pTrack, DWORD dwGroupBits)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
-
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   DWORD i = 0;
   struct list* pEntry = NULL;
   LPDMUS_PRIVATE_SEGMENT_TRACK pIt = NULL;
@@ -282,8 +290,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_InsertTrack(IDirectMusicSegment8
 static HRESULT WINAPI IDirectMusicSegment8Impl_RemoveTrack(IDirectMusicSegment8 *iface,
         IDirectMusicTrack *pTrack)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
-
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   struct list* pEntry = NULL;
   LPDMUS_PRIVATE_SEGMENT_TRACK pIt = NULL;
 
@@ -309,8 +316,9 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_RemoveTrack(IDirectMusicSegment8
 static HRESULT WINAPI IDirectMusicSegment8Impl_InitPlay(IDirectMusicSegment8 *iface,
         IDirectMusicSegmentState **ppSegState, IDirectMusicPerformance *pPerformance, DWORD dwFlags)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   HRESULT hr;
+
   FIXME("(%p, %p, %p, %d): semi-stub\n", This, ppSegState, pPerformance, dwFlags);
   if (NULL == ppSegState) {
     return E_POINTER;
@@ -326,7 +334,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_InitPlay(IDirectMusicSegment8 *if
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetGraph(IDirectMusicSegment8 *iface,
         IDirectMusicGraph **ppGraph)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   FIXME("(%p, %p): semi-stub\n", This, ppGraph);
   if (NULL == ppGraph) {
     return E_POINTER;
@@ -346,7 +355,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetGraph(IDirectMusicSegment8 *if
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetGraph(IDirectMusicSegment8 *iface,
         IDirectMusicGraph *pGraph)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   FIXME("(%p, %p): to complete\n", This, pGraph);
   if (NULL != This->pGraph) {
     IDirectMusicGraph_Release(This->pGraph);
@@ -361,7 +371,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetGraph(IDirectMusicSegment8 *if
 static HRESULT WINAPI IDirectMusicSegment8Impl_AddNotificationType(IDirectMusicSegment8 *iface,
         REFGUID rguidNotificationType)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
   return S_OK;
 }
@@ -369,7 +379,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_AddNotificationType(IDirectMusicS
 static HRESULT WINAPI IDirectMusicSegment8Impl_RemoveNotificationType(IDirectMusicSegment8 *iface,
         REFGUID rguidNotificationType)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
   return S_OK;
 }
@@ -378,8 +388,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetParam(IDirectMusicSegment8 *if
         REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext,
         void *pParam)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
-
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   CLSID pIt_clsid;
   struct list* pEntry = NULL;
   IDirectMusicTrack* pTrack = NULL;
@@ -433,7 +442,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetParam(IDirectMusicSegment8 *if
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetParam(IDirectMusicSegment8 *iface,
         REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void *pParam)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   FIXME("(%p, %s, %d, %d, %d, %p): stub\n", This, debugstr_dmguid(rguidType), dwGroupBits, dwIndex, mtTime, pParam);
   return S_OK;
 }
@@ -441,7 +450,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetParam(IDirectMusicSegment8 *if
 static HRESULT WINAPI IDirectMusicSegment8Impl_Clone(IDirectMusicSegment8 *iface,
         MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicSegment **ppSegment)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
   FIXME("(%p, %d, %d, %p): stub\n", This, mtStart, mtEnd, ppSegment);
   return S_OK;
 }
@@ -449,7 +458,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_Clone(IDirectMusicSegment8 *iface
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetStartPoint(IDirectMusicSegment8 *iface,
         MUSIC_TIME mtStart)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %d)\n", This, mtStart);
   if (mtStart >= This->header.mtLength) {
     return DMUS_E_OUT_OF_RANGE;
@@ -461,7 +471,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetStartPoint(IDirectMusicSegment
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetStartPoint(IDirectMusicSegment8 *iface,
         MUSIC_TIME *pmtStart)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %p)\n", This, pmtStart);
   if (NULL == pmtStart) {
     return E_POINTER;
@@ -473,7 +484,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetStartPoint(IDirectMusicSegment
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetLoopPoints(IDirectMusicSegment8 *iface,
         MUSIC_TIME mtStart, MUSIC_TIME mtEnd)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %d, %d)\n", This, mtStart, mtEnd);
   if (mtStart >= This->header.mtLength || mtEnd > This->header.mtLength || mtStart > mtEnd) {
     return DMUS_E_OUT_OF_RANGE;
@@ -486,7 +498,8 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetLoopPoints(IDirectMusicSegment
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetLoopPoints(IDirectMusicSegment8 *iface,
         MUSIC_TIME *pmtStart, MUSIC_TIME *pmtEnd)
 {
-  ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+  IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
+
   TRACE("(%p, %p, %p)\n", This, pmtStart, pmtEnd);
   if (NULL == pmtStart || NULL == pmtEnd) {
     return E_POINTER;
@@ -499,7 +512,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_GetLoopPoints(IDirectMusicSegment
 static HRESULT WINAPI IDirectMusicSegment8Impl_SetPChannelsUsed(IDirectMusicSegment8 *iface,
         DWORD dwNumPChannels, DWORD *paPChannels)
 {
-	ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+        IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
 	FIXME("(%p, %d, %p): stub\n", This, dwNumPChannels, paPChannels);
 	return S_OK;
 }
@@ -508,7 +521,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetTrackConfig(IDirectMusicSegmen
         REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn,
         DWORD dwFlagsOff)
 {
-	ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+        IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
 	FIXME("(%p, %s, %d, %d, %d, %d): stub\n", This, debugstr_dmguid(rguidTrackClassID), dwGroupBits, dwIndex, dwFlagsOn, dwFlagsOff);
 	return S_OK;
 }
@@ -516,7 +529,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_SetTrackConfig(IDirectMusicSegmen
 static HRESULT WINAPI IDirectMusicSegment8Impl_GetAudioPathConfig(IDirectMusicSegment8 *iface,
         IUnknown **ppAudioPathConfig)
 {
-	ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+        IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
 	FIXME("(%p, %p): stub\n", This, ppAudioPathConfig);
 	return S_OK;
 }
@@ -525,7 +538,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_Compose(IDirectMusicSegment8 *ifa
         MUSIC_TIME mtTime, IDirectMusicSegment *pFromSegment, IDirectMusicSegment *pToSegment,
         IDirectMusicSegment **ppComposedSegment)
 {
-	ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+        IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
 	FIXME("(%p, %d, %p, %p, %p): stub\n", This, mtTime, pFromSegment, pToSegment, ppComposedSegment);
 	return S_OK;
 }
@@ -533,7 +546,7 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_Compose(IDirectMusicSegment8 *ifa
 static HRESULT WINAPI IDirectMusicSegment8Impl_Download(IDirectMusicSegment8 *iface,
         IUnknown *pAudioPath)
 {
-	ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+        IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
 	FIXME("(%p, %p): stub\n", This, pAudioPath);
 	return S_OK;
 }
@@ -541,12 +554,12 @@ static HRESULT WINAPI IDirectMusicSegment8Impl_Download(IDirectMusicSegment8 *if
 static HRESULT WINAPI IDirectMusicSegment8Impl_Unload(IDirectMusicSegment8 *iface,
         IUnknown *pAudioPath)
 {
-	ICOM_THIS_MULTI(IDirectMusicSegment8Impl, SegmentVtbl, iface);
+        IDirectMusicSegment8Impl *This = impl_from_IDirectMusicSegment8(iface);
 	FIXME("(%p, %p): stub\n", This, pAudioPath);
 	return S_OK;
 }
 
-static const IDirectMusicSegment8Vtbl DirectMusicSegment8_Segment_Vtbl = {
+static const IDirectMusicSegment8Vtbl dmsegment8_vtbl = {
     IDirectMusicSegment8Impl_QueryInterface,
     IDirectMusicSegment8Impl_AddRef,
     IDirectMusicSegment8Impl_Release,
@@ -875,7 +888,7 @@ static HRESULT IDirectMusicSegment8Impl_IPersistStream_LoadTrack (LPPERSISTSTREA
   /* release all loading-related stuff */
   IPersistStream_Release (pPersistStream);
 
-  hr = IDirectMusicSegment8_InsertTrack((LPDIRECTMUSICSEGMENT8)&This->SegmentVtbl, *ppTrack,
+  hr = IDirectMusicSegment8_InsertTrack(&This->IDirectMusicSegment8_iface, *ppTrack,
                                         pTrack_hdr->dwGroup); /* at dsPosition */
   if (FAILED(hr)) {
     ERR(": could not insert track\n");
@@ -1365,7 +1378,7 @@ HRESULT WINAPI DMUSIC_CreateDirectMusicSegmentImpl (LPCGUID lpcGUID, LPVOID* ppo
     return E_OUTOFMEMORY;
   }
   obj->UnknownVtbl = &DirectMusicSegment8_Unknown_Vtbl;
-  obj->SegmentVtbl = &DirectMusicSegment8_Segment_Vtbl;
+  obj->IDirectMusicSegment8_iface.lpVtbl = &dmsegment8_vtbl;
   obj->ObjectVtbl = &DirectMusicSegment8_Object_Vtbl;
   obj->PersistStreamVtbl = &DirectMusicSegment8_PersistStream_Vtbl;
   obj->pDesc = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DMUS_OBJECTDESC));
-- 
1.8.3.1



More information about the wine-patches mailing list