[PATCH 07/11] dmscript: COM cleanup for IDirectMusicTrack8 from DirectMusicScriptTrack.
Michael Stefaniuc
mstefani at redhat.de
Sun Jan 12 15:09:30 CST 2014
---
dlls/dmscript/dmscript_private.h | 16 --------
dlls/dmscript/scripttrack.c | 85 +++++++++++++++++++++++++---------------
2 files changed, 53 insertions(+), 48 deletions(-)
diff --git a/dlls/dmscript/dmscript_private.h b/dlls/dmscript/dmscript_private.h
index 97557bc..082ffa4 100644
--- a/dlls/dmscript/dmscript_private.h
+++ b/dlls/dmscript/dmscript_private.h
@@ -47,8 +47,6 @@
*/
typedef struct IDirectMusicScriptImpl IDirectMusicScriptImpl;
-typedef struct IDirectMusicScriptTrack IDirectMusicScriptTrack;
-
/*****************************************************************************
* ClassFactory
*/
@@ -74,20 +72,6 @@ struct IDirectMusicScriptImpl {
WCHAR* pwzSource;
};
-/*****************************************************************************
- * IDirectMusicScriptTrack implementation structure
- */
-struct IDirectMusicScriptTrack {
- /* IUnknown fields */
- const IUnknownVtbl *UnknownVtbl;
- const IDirectMusicTrack8Vtbl *TrackVtbl;
- const IPersistStreamVtbl *PersistStreamVtbl;
- LONG ref;
-
- /* IDirectMusicScriptTrack fields */
- LPDMUS_OBJECTDESC pDesc;
-};
-
/**********************************************************************
* Dll lifetime tracking declaration for dmscript.dll
*/
diff --git a/dlls/dmscript/scripttrack.c b/dlls/dmscript/scripttrack.c
index f27acb5..7b5a4ec 100644
--- a/dlls/dmscript/scripttrack.c
+++ b/dlls/dmscript/scripttrack.c
@@ -25,6 +25,21 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmscript);
* IDirectMusicScriptTrack implementation
*/
+typedef struct DirectMusicScriptTrack {
+ const IUnknownVtbl *UnknownVtbl;
+ IDirectMusicTrack8 IDirectMusicTrack8_iface;
+ const IPersistStreamVtbl *PersistStreamVtbl;
+ LONG ref;
+ LPDMUS_OBJECTDESC pDesc;
+} DirectMusicScriptTrack;
+
+typedef struct DirectMusicScriptTrack IDirectMusicScriptTrack;
+
+static inline DirectMusicScriptTrack *impl_from_IDirectMusicTrack8(IDirectMusicTrack8 *iface)
+{
+ return CONTAINING_RECORD(iface, DirectMusicScriptTrack, IDirectMusicTrack8_iface);
+}
+
/* IDirectMusicScriptTrack IUnknown part: */
static HRESULT WINAPI IDirectMusicScriptTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj) {
ICOM_THIS_MULTI(IDirectMusicScriptTrack, UnknownVtbl, iface);
@@ -36,8 +51,8 @@ static HRESULT WINAPI IDirectMusicScriptTrack_IUnknown_QueryInterface (LPUNKNOWN
return S_OK;
} else if (IsEqualIID (riid, &IID_IDirectMusicTrack)
|| IsEqualIID (riid, &IID_IDirectMusicTrack8)) {
- *ppobj = (LPDIRECTMUSICTRACK8)&This->TrackVtbl;
- IDirectMusicTrack_AddRef ((LPDIRECTMUSICTRACK8)&This->TrackVtbl);
+ *ppobj = &This->IDirectMusicTrack8_iface;
+ IDirectMusicTrack_AddRef(&This->IDirectMusicTrack8_iface);
return S_OK;
} else if (IsEqualIID (riid, &IID_IPersistStream)) {
*ppobj = &This->PersistStreamVtbl;
@@ -83,28 +98,28 @@ static const IUnknownVtbl DirectMusicScriptTrack_Unknown_Vtbl = {
/* IDirectMusicScriptTrack IDirectMusicTrack8 part: */
static HRESULT WINAPI IDirectMusicTrack8Impl_QueryInterface(IDirectMusicTrack8 *iface, REFIID riid,
- void **ppobj)
+ void **ret_iface)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
- return IDirectMusicScriptTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ppobj);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
+ return IDirectMusicScriptTrack_IUnknown_QueryInterface ((LPUNKNOWN)&This->UnknownVtbl, riid, ret_iface);
}
static ULONG WINAPI IDirectMusicTrack8Impl_AddRef(IDirectMusicTrack8 *iface)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
return IDirectMusicScriptTrack_IUnknown_AddRef ((LPUNKNOWN)&This->UnknownVtbl);
}
static ULONG WINAPI IDirectMusicTrack8Impl_Release(IDirectMusicTrack8 *iface)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
return IDirectMusicScriptTrack_IUnknown_Release ((LPUNKNOWN)&This->UnknownVtbl);
}
static HRESULT WINAPI IDirectMusicTrack8Impl_Init(IDirectMusicTrack8 *iface,
IDirectMusicSegment *pSegment)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %p): stub\n", This, pSegment);
return S_OK;
}
@@ -113,14 +128,14 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_InitPlay(IDirectMusicTrack8 *iface,
IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance,
void **ppStateData, DWORD dwVirtualTrack8ID, DWORD dwFlags)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %p, %p, %p, %d, %d): stub\n", This, pSegmentState, pPerformance, ppStateData, dwVirtualTrack8ID, dwFlags);
return S_OK;
}
static HRESULT WINAPI IDirectMusicTrack8Impl_EndPlay(IDirectMusicTrack8 *iface, void *pStateData)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %p): stub\n", This, pStateData);
return S_OK;
}
@@ -129,7 +144,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_Play(IDirectMusicTrack8 *iface, voi
MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags,
IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %p, %d, %d, %d, %d, %p, %p, %d): stub\n", This, pStateData, mtStart, mtEnd, mtOffset, dwFlags, pPerf, pSegSt, dwVirtualID);
return S_OK;
}
@@ -137,7 +152,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_Play(IDirectMusicTrack8 *iface, voi
static HRESULT WINAPI IDirectMusicTrack8Impl_GetParam(IDirectMusicTrack8 *iface, REFGUID rguidType,
MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %s, %d, %p, %p): stub\n", This, debugstr_dmguid(rguidType), mtTime, pmtNext, pParam);
return S_OK;
}
@@ -145,7 +160,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_GetParam(IDirectMusicTrack8 *iface,
static HRESULT WINAPI IDirectMusicTrack8Impl_SetParam(IDirectMusicTrack8 *iface, REFGUID rguidType,
MUSIC_TIME mtTime, void *pParam)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %s, %d, %p): stub\n", This, debugstr_dmguid(rguidType), mtTime, pParam);
return S_OK;
}
@@ -153,7 +168,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_SetParam(IDirectMusicTrack8 *iface,
static HRESULT WINAPI IDirectMusicTrack8Impl_IsParamSupported(IDirectMusicTrack8 *iface,
REFGUID rguidType)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
TRACE("(%p, %s)\n", This, debugstr_dmguid(rguidType));
/* didn't find any params */
@@ -164,7 +179,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_IsParamSupported(IDirectMusicTrack8
static HRESULT WINAPI IDirectMusicTrack8Impl_AddNotificationType(IDirectMusicTrack8 *iface,
REFGUID rguidNotificationType)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
return S_OK;
}
@@ -172,7 +187,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_AddNotificationType(IDirectMusicTra
static HRESULT WINAPI IDirectMusicTrack8Impl_RemoveNotificationType(IDirectMusicTrack8 *iface,
REFGUID rguidNotificationType)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
return S_OK;
}
@@ -180,7 +195,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_RemoveNotificationType(IDirectMusic
static HRESULT WINAPI IDirectMusicTrack8Impl_Clone(IDirectMusicTrack8 *iface, MUSIC_TIME mtStart,
MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %d, %d, %p): stub\n", This, mtStart, mtEnd, ppTrack);
return S_OK;
}
@@ -189,7 +204,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_PlayEx(IDirectMusicTrack8 *iface, v
REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags,
IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %p, 0x%s, 0x%s, 0x%s, %d, %p, %p, %d): stub\n", This, pStateData, wine_dbgstr_longlong(rtStart),
wine_dbgstr_longlong(rtEnd), wine_dbgstr_longlong(rtOffset), dwFlags, pPerf, pSegSt, dwVirtualID);
return S_OK;
@@ -199,7 +214,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_GetParamEx(IDirectMusicTrack8 *ifac
REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam,
void *pStateData, DWORD dwFlags)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %s, 0x%s, %p, %p, %p, %d): stub\n", This, debugstr_dmguid(rguidType),
wine_dbgstr_longlong(rtTime), prtNext, pParam, pStateData, dwFlags);
return S_OK;
@@ -208,7 +223,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_GetParamEx(IDirectMusicTrack8 *ifac
static HRESULT WINAPI IDirectMusicTrack8Impl_SetParamEx(IDirectMusicTrack8 *iface,
REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %s, 0x%s, %p, %p, %d): stub\n", This, debugstr_dmguid(rguidType),
wine_dbgstr_longlong(rtTime), pParam, pStateData, dwFlags);
return S_OK;
@@ -217,7 +232,7 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_SetParamEx(IDirectMusicTrack8 *ifac
static HRESULT WINAPI IDirectMusicTrack8Impl_Compose(IDirectMusicTrack8 *iface, IUnknown *pContext,
DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %p, %d, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack);
return S_OK;
}
@@ -226,12 +241,12 @@ static HRESULT WINAPI IDirectMusicTrack8Impl_Join(IDirectMusicTrack8 *iface,
IDirectMusicTrack *pNewTrack, MUSIC_TIME mtJoin, IUnknown *pContext, DWORD dwTrackGroup,
IDirectMusicTrack **ppResultTrack)
{
- ICOM_THIS_MULTI(IDirectMusicScriptTrack, TrackVtbl, iface);
+ DirectMusicScriptTrack *This = impl_from_IDirectMusicTrack8(iface);
FIXME("(%p, %p, %d, %p, %d, %p): stub\n", This, pNewTrack, mtJoin, pContext, dwTrackGroup, ppResultTrack);
return S_OK;
}
-static const IDirectMusicTrack8Vtbl DirectMusicScriptTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl dmtrack8_vtbl = {
IDirectMusicTrack8Impl_QueryInterface,
IDirectMusicTrack8Impl_AddRef,
IDirectMusicTrack8Impl_Release,
@@ -311,16 +326,22 @@ static const IPersistStreamVtbl DirectMusicScriptTrack_PersistStream_Vtbl = {
};
/* for ClassFactory */
-HRESULT WINAPI DMUSIC_CreateDirectMusicScriptTrack (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter) {
- IDirectMusicScriptTrack* track;
-
- track = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectMusicScriptTrack));
- if (NULL == track) {
- *ppobj = NULL;
- return E_OUTOFMEMORY;
- }
+HRESULT WINAPI DMUSIC_CreateDirectMusicScriptTrack(LPCGUID lpcGUID, void **ppobj,
+ IUnknown *pUnkOuter)
+{
+ DirectMusicScriptTrack *track;
+
+ *ppobj = NULL;
+
+ if (pUnkOuter)
+ return CLASS_E_NOAGGREGATION;
+
+ track = HeapAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*track));
+ if (!track)
+ return E_OUTOFMEMORY;
+
track->UnknownVtbl = &DirectMusicScriptTrack_Unknown_Vtbl;
- track->TrackVtbl = &DirectMusicScriptTrack_Track_Vtbl;
+ track->IDirectMusicTrack8_iface.lpVtbl = &dmtrack8_vtbl;
track->PersistStreamVtbl = &DirectMusicScriptTrack_PersistStream_Vtbl;
track->pDesc = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DMUS_OBJECTDESC));
DM_STRUCT_INIT(track->pDesc);
--
1.8.3.1
More information about the wine-patches
mailing list