[PATCH 2/4] dmusic: COM cleanup of IDirectMusic8.

Christian Costa titan.costa at gmail.com
Tue May 1 03:06:58 CDT 2012


---
 dlls/dmusic/dmusic.c         |   87 +++++++++++++++++++++++++++---------------
 dlls/dmusic/dmusic_private.h |   14 +++----
 2 files changed, 62 insertions(+), 39 deletions(-)

diff --git a/dlls/dmusic/dmusic.c b/dlls/dmusic/dmusic.c
index 07495be..fac1d53 100644
--- a/dlls/dmusic/dmusic.c
+++ b/dlls/dmusic/dmusic.c
@@ -23,9 +23,15 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(dmusic);
 
+static inline IDirectMusic8Impl *impl_from_IDirectMusic8(IDirectMusic8 *iface)
+{
+    return CONTAINING_RECORD(iface, IDirectMusic8Impl, IDirectMusic8_iface);
+}
+
 /* IDirectMusic8Impl IUnknown part: */
-static HRESULT WINAPI IDirectMusic8Impl_QueryInterface (LPDIRECTMUSIC8 iface, REFIID riid, LPVOID *ppobj) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+static HRESULT WINAPI IDirectMusic8Impl_QueryInterface(LPDIRECTMUSIC8 iface, REFIID riid, LPVOID *ppobj)
+{
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -41,8 +47,9 @@ static HRESULT WINAPI IDirectMusic8Impl_QueryInterface (LPDIRECTMUSIC8 iface, RE
 	return E_NOINTERFACE;
 }
 
-static ULONG WINAPI IDirectMusic8Impl_AddRef (LPDIRECTMUSIC8 iface) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+static ULONG WINAPI IDirectMusic8Impl_AddRef(LPDIRECTMUSIC8 iface)
+{
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 	ULONG refCount = InterlockedIncrement(&This->ref);
 
 	TRACE("(%p)->(ref before=%u)\n", This, refCount - 1);
@@ -52,8 +59,9 @@ static ULONG WINAPI IDirectMusic8Impl_AddRef (LPDIRECTMUSIC8 iface) {
 	return refCount;
 }
 
-static ULONG WINAPI IDirectMusic8Impl_Release (LPDIRECTMUSIC8 iface) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+static ULONG WINAPI IDirectMusic8Impl_Release(LPDIRECTMUSIC8 iface)
+{
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 	ULONG refCount = InterlockedDecrement(&This->ref);
 
 	TRACE("(%p)->(ref before=%u)\n", This, refCount + 1);
@@ -71,7 +79,7 @@ static ULONG WINAPI IDirectMusic8Impl_Release (LPDIRECTMUSIC8 iface) {
 /* IDirectMusic8Impl IDirectMusic part: */
 static HRESULT WINAPI IDirectMusic8Impl_EnumPort(LPDIRECTMUSIC8 iface, DWORD index, LPDMUS_PORTCAPS port_caps)
 {
-    IDirectMusic8Impl *This = (IDirectMusic8Impl*)iface;
+    IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
     ULONG nb_midi_out;
     ULONG nb_midi_in;
     const WCHAR emulated[] = {' ','[','E','m','u','l','a','t','e','d',']',0};
@@ -155,7 +163,7 @@ static HRESULT WINAPI IDirectMusic8Impl_EnumPort(LPDIRECTMUSIC8 iface, DWORD ind
 
 static HRESULT WINAPI IDirectMusic8Impl_CreateMusicBuffer(LPDIRECTMUSIC8 iface, LPDMUS_BUFFERDESC pBufferDesc, LPDIRECTMUSICBUFFER* ppBuffer, LPUNKNOWN pUnkOuter)
 {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 
 	TRACE("(%p, %p, %p, %p)\n", This, pBufferDesc, ppBuffer, pUnkOuter);
 
@@ -170,7 +178,7 @@ static HRESULT WINAPI IDirectMusic8Impl_CreateMusicBuffer(LPDIRECTMUSIC8 iface,
 
 static HRESULT WINAPI IDirectMusic8Impl_CreatePort(LPDIRECTMUSIC8 iface, REFCLSID rclsidPort, LPDMUS_PORTPARAMS pPortParams, LPDIRECTMUSICPORT* ppPort, LPUNKNOWN pUnkOuter)
 {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 	int i;
 	DMUS_PORTCAPS PortCaps;
 	IDirectMusicPort* pNewPort = NULL;
@@ -226,14 +234,18 @@ static HRESULT WINAPI IDirectMusic8Impl_CreatePort(LPDIRECTMUSIC8 iface, REFCLSI
 	return E_NOINTERFACE;
 }
 
-static HRESULT WINAPI IDirectMusic8Impl_EnumMasterClock (LPDIRECTMUSIC8 iface, DWORD dwIndex, LPDMUS_CLOCKINFO lpClockInfo) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
-	FIXME("(%p, %d, %p): stub\n", This, dwIndex, lpClockInfo);
-	return S_FALSE;
+static HRESULT WINAPI IDirectMusic8Impl_EnumMasterClock(LPDIRECTMUSIC8 iface, DWORD index, LPDMUS_CLOCKINFO clock_info)
+{
+    IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
+
+    FIXME("(%p)->(%d, %p): stub\n", This, index, clock_info);
+
+    return S_FALSE;
 }
 
-static HRESULT WINAPI IDirectMusic8Impl_GetMasterClock (LPDIRECTMUSIC8 iface, LPGUID pguidClock, IReferenceClock** ppReferenceClock) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+static HRESULT WINAPI IDirectMusic8Impl_GetMasterClock(LPDIRECTMUSIC8 iface, LPGUID pguidClock, IReferenceClock** ppReferenceClock)
+{
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 
 	TRACE("(%p, %p, %p)\n", This, pguidClock, ppReferenceClock);
 	if (pguidClock)
@@ -244,14 +256,18 @@ static HRESULT WINAPI IDirectMusic8Impl_GetMasterClock (LPDIRECTMUSIC8 iface, LP
 	return S_OK;
 }
 
-static HRESULT WINAPI IDirectMusic8Impl_SetMasterClock (LPDIRECTMUSIC8 iface, REFGUID rguidClock) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
-	FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidClock));
-	return S_OK;
+static HRESULT WINAPI IDirectMusic8Impl_SetMasterClock(LPDIRECTMUSIC8 iface, REFGUID rguidClock)
+{
+    IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
+
+    FIXME("(%p)->(%s): stub\n", This, debugstr_dmguid(rguidClock));
+
+    return S_OK;
 }
 
-static HRESULT WINAPI IDirectMusic8Impl_Activate (LPDIRECTMUSIC8 iface, BOOL fEnable) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+static HRESULT WINAPI IDirectMusic8Impl_Activate(LPDIRECTMUSIC8 iface, BOOL fEnable)
+{
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 	int i;
 	
 	FIXME("(%p, %d): stub\n", This, fEnable);
@@ -262,8 +278,9 @@ static HRESULT WINAPI IDirectMusic8Impl_Activate (LPDIRECTMUSIC8 iface, BOOL fEn
 	return S_OK;
 }
 
-static HRESULT WINAPI IDirectMusic8Impl_GetDefaultPort (LPDIRECTMUSIC8 iface, LPGUID pguidPort) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
+static HRESULT WINAPI IDirectMusic8Impl_GetDefaultPort(LPDIRECTMUSIC8 iface, LPGUID pguidPort)
+{
+	IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
 	HKEY hkGUID;
 	DWORD returnTypeGUID, sizeOfReturnBuffer = 50;
 	char returnBuffer[51];
@@ -286,16 +303,22 @@ static HRESULT WINAPI IDirectMusic8Impl_GetDefaultPort (LPDIRECTMUSIC8 iface, LP
 	return S_OK;
 }
 
-static HRESULT WINAPI IDirectMusic8Impl_SetDirectSound (LPDIRECTMUSIC8 iface, LPDIRECTSOUND pDirectSound, HWND hWnd) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
-	FIXME("(%p, %p, %p): stub\n", This, pDirectSound, hWnd);
-	return S_OK;
+static HRESULT WINAPI IDirectMusic8Impl_SetDirectSound(LPDIRECTMUSIC8 iface, LPDIRECTSOUND dsound, HWND wnd)
+{
+    IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
+
+    FIXME("(%p)->(%p, %p): stub\n", This, dsound, wnd);
+
+    return S_OK;
 }
 
-static HRESULT WINAPI IDirectMusic8Impl_SetExternalMasterClock (LPDIRECTMUSIC8 iface, IReferenceClock* pClock) {
-	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
-	FIXME("(%p, %p): stub\n", This, pClock);
-	return S_OK;
+static HRESULT WINAPI IDirectMusic8Impl_SetExternalMasterClock(LPDIRECTMUSIC8 iface, IReferenceClock* clock)
+{
+    IDirectMusic8Impl *This = impl_from_IDirectMusic8(iface);
+
+    FIXME("(%p)->(%p): stub\n", This, clock);
+
+    return S_OK;
 }
 
 static const IDirectMusic8Vtbl DirectMusic8_Vtbl = {
@@ -325,7 +348,7 @@ HRESULT WINAPI DMUSIC_CreateDirectMusicImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPU
 		*ppobj = NULL;
 		return E_OUTOFMEMORY;
 	}
-	dmusic->lpVtbl = &DirectMusic8_Vtbl;
+	dmusic->IDirectMusic8_iface.lpVtbl = &DirectMusic8_Vtbl;
 	dmusic->ref = 0; /* will be inited with QueryInterface */
 	dmusic->pMasterClock = NULL;
 	dmusic->ppPorts = NULL;
diff --git a/dlls/dmusic/dmusic_private.h b/dlls/dmusic/dmusic_private.h
index d277eb5..ce31d8b 100644
--- a/dlls/dmusic/dmusic_private.h
+++ b/dlls/dmusic/dmusic_private.h
@@ -91,14 +91,14 @@ extern HRESULT DMUSIC_CreateDirectMusicInstrumentImpl (LPCGUID lpcGUID, LPVOID*
  * IDirectMusic8Impl implementation structure
  */
 struct IDirectMusic8Impl {
-  /* IUnknown fields */
-  const IDirectMusic8Vtbl *lpVtbl;
-  LONG           ref;
+    /* IUnknown fields */
+    IDirectMusic8 IDirectMusic8_iface;
+    LONG ref;
 
-  /* IDirectMusicImpl fields */
-  IReferenceClockImpl* pMasterClock;
-  IDirectMusicPort** ppPorts;
-  int nrofports;
+    /* IDirectMusicImpl fields */
+    IReferenceClockImpl* pMasterClock;
+    IDirectMusicPort** ppPorts;
+    int nrofports;
 };
 
 /*****************************************************************************




More information about the wine-patches mailing list