Removed some uses of the non-standard ICOM_THIS macro.

diff --git a/dlls/amstream/amstream.c b/dlls/amstream/amstream.c
index c0953e7..62d91c4 100644
--- a/dlls/amstream/amstream.c
+++ b/dlls/amstream/amstream.c
@@ -58,7 +58,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IAMMultiMediaStreamImpl_QueryInterface(IAMMultiMediaStream* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -76,7 +76,7 @@
 
 static ULONG WINAPI IAMMultiMediaStreamImpl_AddRef(IAMMultiMediaStream* iface)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)\n", iface, This); 
 
@@ -86,7 +86,7 @@
 
 static ULONG WINAPI IAMMultiMediaStreamImpl_Release(IAMMultiMediaStream* iface)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)\n", iface, This); 
 
@@ -99,7 +99,7 @@
 /*** IMultiMediaStream methods ***/
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetInformation(IAMMultiMediaStream* iface, char* pdwFlags, STREAM_TYPE* pStreamType)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p) stub!\n", This, iface, pdwFlags, pStreamType); 
 
@@ -108,7 +108,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetMediaStream(IAMMultiMediaStream* iface, REFMSPID idPurpose, IMediaStream** ppMediaStream)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p) stub!\n", This, iface, idPurpose, ppMediaStream); 
 
@@ -117,7 +117,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_EnumMediaStreams(IAMMultiMediaStream* iface, long Index, IMediaStream** ppMediaStream)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%ld,%p) stub!\n", This, iface, Index, ppMediaStream); 
 
@@ -126,7 +126,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetState(IAMMultiMediaStream* iface, STREAM_STATE* pCurrentState)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pCurrentState); 
 
@@ -135,7 +135,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_SetState(IAMMultiMediaStream* iface, STREAM_STATE NewState)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
   
   FIXME("(%p/%p)->() stub!\n", This, iface); 
 
@@ -144,7 +144,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetTime(IAMMultiMediaStream* iface, STREAM_TIME* pCurrentTime)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pCurrentTime); 
 
@@ -153,7 +153,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetDuration(IAMMultiMediaStream* iface, STREAM_TIME* pDuration)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pDuration); 
 
@@ -162,7 +162,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_Seek(IAMMultiMediaStream* iface, STREAM_TIME SeekTime)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->() stub!\n", This, iface); 
 
@@ -171,7 +171,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetEndOfStream(IAMMultiMediaStream* iface, HANDLE* phEOS)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, phEOS); 
 
@@ -181,7 +181,7 @@
 /*** IAMMultiMediaStream methods ***/
 static HRESULT WINAPI IAMMultiMediaStreamImpl_Initialize(IAMMultiMediaStream* iface, STREAM_TYPE StreamType, DWORD dwFlags, IGraphBuilder* pFilterGraph)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%lx,%lx,%p) stub!\n", This, iface, (DWORD)StreamType, dwFlags, pFilterGraph); 
 
@@ -190,7 +190,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetFilterGraph(IAMMultiMediaStream* iface, IGraphBuilder** ppGraphBuilder)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppGraphBuilder); 
 
@@ -199,7 +199,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetFilter(IAMMultiMediaStream* iface, IMediaStreamFilter** ppFilter)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppFilter); 
 
@@ -209,7 +209,7 @@
 static HRESULT WINAPI IAMMultiMediaStreamImpl_AddMediaStream(IAMMultiMediaStream* iface, IUnknown* pStreamObject, const MSPID* PurposeId,
                                           DWORD dwFlags, IMediaStream** ppNewStream)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p,%lx,%p) stub!\n", This, iface, pStreamObject, PurposeId, dwFlags, ppNewStream); 
 
@@ -218,7 +218,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_OpenFile(IAMMultiMediaStream* iface, LPCWSTR pszFileName, DWORD dwFlags)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%lx) stub!\n", This, iface, pszFileName, dwFlags); 
 
@@ -227,7 +227,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_OpenMoniker(IAMMultiMediaStream* iface, IBindCtx* pCtx, IMoniker* pMoniker, DWORD dwFlags)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p,%lx) stub!\n", This, iface, pCtx, pMoniker, dwFlags); 
 
@@ -236,7 +236,7 @@
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_Render(IAMMultiMediaStream* iface, DWORD dwFlags)
 {
-  ICOM_THIS(IAMMultiMediaStreamImpl, iface);
+  IAMMultiMediaStreamImpl *This = (IAMMultiMediaStreamImpl *)iface;
 
   FIXME("(%p/%p)->(%lx) stub!\n", This, iface, dwFlags); 
 
diff --git a/dlls/amstream/main.c b/dlls/amstream/main.c
index 1c557da..c61f814 100644
--- a/dlls/amstream/main.c
+++ b/dlls/amstream/main.c
@@ -81,7 +81,7 @@
 static HRESULT WINAPI
 AMCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IClassFactory))
@@ -96,12 +96,12 @@
 }
 
 static ULONG WINAPI AMCF_AddRef(LPCLASSFACTORY iface) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     return ++(This->ref);
 }
 
 static ULONG WINAPI AMCF_Release(LPCLASSFACTORY iface) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     ULONG ref = --This->ref;
 
@@ -114,7 +114,7 @@
 
 static HRESULT WINAPI AMCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter,
 					  REFIID riid, LPVOID *ppobj) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     HRESULT hres;
     LPUNKNOWN punk;
     
@@ -135,7 +135,7 @@
 }
 
 static HRESULT WINAPI AMCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     FIXME("(%p)->(%d),stub!\n",This,dolock);
     return S_OK;
 }
diff --git a/dlls/avifil32/acmstream.c b/dlls/avifil32/acmstream.c
index 13d7975..def5d89 100644
--- a/dlls/avifil32/acmstream.c
+++ b/dlls/avifil32/acmstream.c
@@ -129,7 +129,7 @@
 static HRESULT WINAPI ACMStream_fnQueryInterface(IAVIStream *iface,
 						  REFIID refiid, LPVOID *obj)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", iface, debugstr_guid(refiid), obj);
 
@@ -146,7 +146,7 @@
 
 static ULONG WINAPI ACMStream_fnAddRef(IAVIStream *iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref + 1);
 
@@ -159,7 +159,7 @@
 
 static ULONG WINAPI ACMStream_fnRelease(IAVIStream* iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref - 1);
 
@@ -211,7 +211,7 @@
 static HRESULT WINAPI ACMStream_fnCreate(IAVIStream *iface, LPARAM lParam1,
 					  LPARAM lParam2)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,0x%08lX,0x%08lX)\n", iface, lParam1, lParam2);
 
@@ -264,7 +264,7 @@
 static HRESULT WINAPI ACMStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi,
 					LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n", iface, psi, size);
 
@@ -291,7 +291,7 @@
 static LONG WINAPI ACMStream_fnFindSample(IAVIStream *iface, LONG pos,
 					   LONG flags)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,0x%08lX)\n",iface,pos,flags);
 
@@ -319,7 +319,7 @@
 static HRESULT WINAPI ACMStream_fnReadFormat(IAVIStream *iface, LONG pos,
 					      LPVOID format, LONG *formatsize)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,%p,%p)\n", iface, pos, format, formatsize);
 
@@ -354,7 +354,7 @@
 static HRESULT WINAPI ACMStream_fnSetFormat(IAVIStream *iface, LONG pos,
 					     LPVOID format, LONG formatsize)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   HRESULT hr;
 
@@ -401,7 +401,7 @@
 					LONG buffersize, LPLONG bytesread,
 					LPLONG samplesread)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   HRESULT hr;
   DWORD   size;
@@ -523,7 +523,7 @@
 					 LPLONG sampwritten,
 					 LPLONG byteswritten)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   HRESULT hr;
   ULONG   size;
@@ -617,7 +617,7 @@
 static HRESULT WINAPI ACMStream_fnDelete(IAVIStream *iface, LONG start,
 					  LONG samples)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,%ld)\n", iface, start, samples);
 
@@ -651,7 +651,7 @@
 static HRESULT WINAPI ACMStream_fnReadData(IAVIStream *iface, DWORD fcc,
 					    LPVOID lp, LPLONG lpread)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,0x%08lX,%p,%p)\n", iface, fcc, lp, lpread);
 
@@ -663,7 +663,7 @@
 static HRESULT WINAPI ACMStream_fnWriteData(IAVIStream *iface, DWORD fcc,
 					     LPVOID lp, LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,0x%08lx,%p,%ld)\n", iface, fcc, lp, size);
 
diff --git a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c
index 6308828..505d5da 100644
--- a/dlls/avifil32/avifile.c
+++ b/dlls/avifil32/avifile.c
@@ -259,7 +259,7 @@
 static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile *iface, REFIID refiid,
 						LPVOID *obj)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj);
 
@@ -281,7 +281,7 @@
 
 static ULONG WINAPI IAVIFile_fnAddRef(IAVIFile *iface)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref + 1);
   return ++(This->ref);
@@ -289,7 +289,7 @@
 
 static ULONG WINAPI IAVIFile_fnRelease(IAVIFile *iface)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
   UINT i;
 
   TRACE("(%p) -> %ld\n", iface, This->ref - 1);
@@ -342,7 +342,7 @@
 static HRESULT WINAPI IAVIFile_fnInfo(IAVIFile *iface, LPAVIFILEINFOW afi,
 				      LONG size)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n",iface,afi,size);
 
@@ -363,7 +363,7 @@
 static HRESULT WINAPI IAVIFile_fnGetStream(IAVIFile *iface, PAVISTREAM *avis,
 					   DWORD fccType, LONG lParam)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   ULONG nStream;
 
@@ -390,7 +390,7 @@
 static HRESULT WINAPI IAVIFile_fnCreateStream(IAVIFile *iface,PAVISTREAM *avis,
 					      LPAVISTREAMINFOW asi)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   DWORD n;
 
@@ -444,7 +444,7 @@
 static HRESULT WINAPI IAVIFile_fnWriteData(IAVIFile *iface, DWORD ckid,
 					   LPVOID lpData, LONG size)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,0x%08lX,%p,%ld)\n", iface, ckid, lpData, size);
 
@@ -466,7 +466,7 @@
 static HRESULT WINAPI IAVIFile_fnReadData(IAVIFile *iface, DWORD ckid,
 					  LPVOID lpData, LONG *size)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,0x%08lX,%p,%p)\n", iface, ckid, lpData, size);
 
@@ -475,7 +475,7 @@
 
 static HRESULT WINAPI IAVIFile_fnEndRecord(IAVIFile *iface)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p)\n",iface);
 
@@ -517,7 +517,7 @@
 static HRESULT WINAPI IAVIFile_fnDeleteStream(IAVIFile *iface, DWORD fccType,
 					      LONG lParam)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   ULONG nStream;
 
@@ -558,7 +558,7 @@
 static HRESULT WINAPI IPersistFile_fnQueryInterface(IPersistFile *iface,
 						    REFIID refiid, LPVOID *obj)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -567,7 +567,7 @@
 
 static ULONG   WINAPI IPersistFile_fnAddRef(IPersistFile *iface)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -576,7 +576,7 @@
 
 static ULONG   WINAPI IPersistFile_fnRelease(IPersistFile *iface)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -598,7 +598,7 @@
 
 static HRESULT WINAPI IPersistFile_fnIsDirty(IPersistFile *iface)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   TRACE("(%p)\n", iface);
 
@@ -610,7 +610,7 @@
 static HRESULT WINAPI IPersistFile_fnLoad(IPersistFile *iface,
 					  LPCOLESTR pszFileName, DWORD dwMode)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   int len;
 
@@ -688,7 +688,7 @@
 static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile *iface,
 						LPOLESTR *ppszFileName)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   TRACE("(%p,%p)\n", iface, ppszFileName);
 
@@ -717,7 +717,7 @@
 static HRESULT WINAPI IAVIStream_fnQueryInterface(IAVIStream *iface,
 						  REFIID refiid, LPVOID *obj)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", iface, debugstr_guid(refiid), obj);
 
@@ -735,7 +735,7 @@
 
 static ULONG WINAPI IAVIStream_fnAddRef(IAVIStream *iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref + 1);
 
@@ -748,7 +748,7 @@
 
 static ULONG WINAPI IAVIStream_fnRelease(IAVIStream* iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref - 1);
 
@@ -778,7 +778,7 @@
 static HRESULT WINAPI IAVIStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi,
 					LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n", iface, psi, size);
 
@@ -797,7 +797,7 @@
 static LONG WINAPI IAVIStream_fnFindSample(IAVIStream *iface, LONG pos,
 					   LONG flags)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   LONG offset = 0;
 
@@ -897,7 +897,7 @@
 static HRESULT WINAPI IAVIStream_fnReadFormat(IAVIStream *iface, LONG pos,
 					      LPVOID format, LONG *formatsize)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,%p,%p)\n", iface, pos, format, formatsize);
 
@@ -936,7 +936,7 @@
 static HRESULT WINAPI IAVIStream_fnSetFormat(IAVIStream *iface, LONG pos,
 					     LPVOID format, LONG formatsize)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   LPBITMAPINFOHEADER lpbiNew = (LPBITMAPINFOHEADER)format;
 
@@ -1046,7 +1046,7 @@
 					LONG buffersize, LPLONG bytesread,
 					LPLONG samplesread)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   DWORD    size;
   HRESULT  hr;
@@ -1157,7 +1157,7 @@
 					 LPLONG sampwritten,
 					 LPLONG byteswritten)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   FOURCC  ckid;
   HRESULT hr;
@@ -1248,7 +1248,7 @@
 static HRESULT WINAPI IAVIStream_fnDelete(IAVIStream *iface, LONG start,
 					  LONG samples)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   FIXME("(%p,%ld,%ld): stub\n", iface, start, samples);
 
@@ -1287,7 +1287,7 @@
 static HRESULT WINAPI IAVIStream_fnReadData(IAVIStream *iface, DWORD fcc,
 					    LPVOID lp, LPLONG lpread)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,0x%08lX,%p,%p)\n", iface, fcc, lp, lpread);
 
@@ -1311,7 +1311,7 @@
 static HRESULT WINAPI IAVIStream_fnWriteData(IAVIStream *iface, DWORD fcc,
 					     LPVOID lp, LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,0x%08lx,%p,%ld)\n", iface, fcc, lp, size);
 
diff --git a/dlls/avifil32/editstream.c b/dlls/avifil32/editstream.c
index 611f505..4a974a6 100644
--- a/dlls/avifil32/editstream.c
+++ b/dlls/avifil32/editstream.c
@@ -348,7 +348,7 @@
 
 static HRESULT WINAPI IAVIEditStream_fnQueryInterface(IAVIEditStream*iface,REFIID refiid,LPVOID *obj)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj);
 
@@ -375,7 +375,7 @@
 
 static ULONG   WINAPI IAVIEditStream_fnAddRef(IAVIEditStream*iface)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref + 1);
   return ++(This->ref);
@@ -383,7 +383,7 @@
 
 static ULONG   WINAPI IAVIEditStream_fnRelease(IAVIEditStream*iface)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
   DWORD i;
 
   TRACE("(%p) -> %ld\n", iface, This->ref - 1);
@@ -409,7 +409,7 @@
 static HRESULT WINAPI IAVIEditStream_fnCut(IAVIEditStream*iface,LONG*plStart,
                                            LONG*plLength,PAVISTREAM*ppResult)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
   PAVISTREAM stream;
   DWORD      start, len, streamPos, streamNr;
   HRESULT    hr;
@@ -493,7 +493,7 @@
 static HRESULT WINAPI IAVIEditStream_fnCopy(IAVIEditStream*iface,LONG*plStart,
                                             LONG*plLength,PAVISTREAM*ppResult)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
   IAVIEditStreamImpl* pEdit;
   HRESULT hr;
   LONG start = 0;
@@ -539,7 +539,7 @@
                                              LONG*plLength,PAVISTREAM pSource,
                                              LONG lStart,LONG lLength)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
   AVISTREAMINFOW      srcInfo;
   IEditStreamInternal*pInternal = NULL;
   IAVIEditStreamImpl *pEdit = NULL;
@@ -731,7 +731,7 @@
 static HRESULT WINAPI IAVIEditStream_fnClone(IAVIEditStream*iface,
                                              PAVISTREAM*ppResult)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
   IAVIEditStreamImpl* pEdit;
   DWORD i;
 
@@ -767,7 +767,7 @@
 static HRESULT WINAPI IAVIEditStream_fnSetInfo(IAVIEditStream*iface,
                                                LPAVISTREAMINFOW asi,LONG size)
 {
-  ICOM_THIS(IAVIEditStreamImpl,iface);
+  IAVIEditStreamImpl *This = (IAVIEditStreamImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n",iface,asi,size);
 
@@ -799,7 +799,7 @@
 static HRESULT WINAPI IEditAVIStream_fnQueryInterface(IAVIStream*iface,
                                                       REFIID refiid,LPVOID*obj)
 {
-  ICOM_THIS(IEditAVIStreamImpl,iface);
+  IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface;
 
   assert(This->pae != NULL);
 
@@ -808,7 +808,7 @@
 
 static ULONG   WINAPI IEditAVIStream_fnAddRef(IAVIStream*iface)
 {
-  ICOM_THIS(IEditAVIStreamImpl,iface);
+  IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface;
 
   assert(This->pae != NULL);
 
@@ -817,7 +817,7 @@
 
 static ULONG   WINAPI IEditAVIStream_fnRelease(IAVIStream*iface)
 {
-  ICOM_THIS(IEditAVIStreamImpl,iface);
+  IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface;
 
   assert(This->pae != NULL);
 
@@ -854,7 +854,7 @@
 static HRESULT WINAPI IEditAVIStream_fnInfo(IAVIStream*iface,
                                             AVISTREAMINFOW *psi,LONG size)
 {
-  ICOM_THIS(IEditAVIStreamImpl,iface);
+  IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n",iface,psi,size);
 
@@ -1074,7 +1074,7 @@
 static HRESULT WINAPI IEditAVIStream_fnDelete(IAVIStream*iface,LONG start,
                                               LONG samples)
 {
-  ICOM_THIS(IEditAVIStreamImpl,iface);
+  IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,%ld)\n",iface,start,samples);
 
@@ -1116,7 +1116,7 @@
 static HRESULT WINAPI IEditAVIStream_fnSetInfo(IAVIStream*iface,
                                                AVISTREAMINFOW*info,LONG len)
 {
-  ICOM_THIS(IEditAVIStreamImpl,iface);
+  IEditAVIStreamImpl *This = (IEditAVIStreamImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n",iface,info,len);
 
@@ -1125,7 +1125,7 @@
 
 static HRESULT WINAPI IEditStreamInternal_fnQueryInterface(IEditStreamInternal*iface,REFIID refiid,LPVOID*obj)
 {
-  ICOM_THIS(IEditStreamInternalImpl,iface);
+  IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface;
 
   assert(This->pae != NULL);
 
@@ -1134,7 +1134,7 @@
 
 static ULONG   WINAPI IEditStreamInternal_fnAddRef(IEditStreamInternal*iface)
 {
-  ICOM_THIS(IEditStreamInternalImpl,iface);
+  IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface;
 
   assert(This->pae != NULL);
 
@@ -1143,7 +1143,7 @@
 
 static ULONG   WINAPI IEditStreamInternal_fnRelease(IEditStreamInternal*iface)
 {
-  ICOM_THIS(IEditStreamInternalImpl,iface);
+  IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface;
 
   assert(This->pae != NULL);
 
@@ -1152,7 +1152,7 @@
 
 static HRESULT  WINAPI IEditStreamInternal_fnGetEditStreamImpl(IEditStreamInternal*iface,LPVOID*ppimpl)
 {
-  ICOM_THIS(IEditStreamInternalImpl,iface);
+  IEditStreamInternalImpl *This = (IEditStreamInternalImpl *)iface;
 
   TRACE("(%p,%p) -> %p\n", iface, ppimpl, This->pae);
 
diff --git a/dlls/avifil32/factory.c b/dlls/avifil32/factory.c
index 185ed45..886aaa0 100644
--- a/dlls/avifil32/factory.c
+++ b/dlls/avifil32/factory.c
@@ -107,7 +107,7 @@
 
 static ULONG WINAPI IClassFactory_fnAddRef(LPCLASSFACTORY iface)
 {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
   TRACE("(%p)\n", iface);
 
@@ -116,7 +116,7 @@
 
 static ULONG WINAPI IClassFactory_fnRelease(LPCLASSFACTORY iface)
 {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
   TRACE("(%p)\n", iface);
   if ((--(This->dwRef)) > 0)
@@ -129,7 +129,7 @@
 						     LPUNKNOWN pOuter,
 						     REFIID riid,LPVOID *ppobj)
 {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
   TRACE("(%p,%p,%s,%p)\n", iface, pOuter, debugstr_guid(riid),
 	ppobj);
diff --git a/dlls/avifil32/getframe.c b/dlls/avifil32/getframe.c
index 8b57189..05681bf 100644
--- a/dlls/avifil32/getframe.c
+++ b/dlls/avifil32/getframe.c
@@ -139,7 +139,7 @@
 static HRESULT WINAPI IGetFrame_fnQueryInterface(IGetFrame *iface,
 						 REFIID refiid, LPVOID *obj)
 {
-  ICOM_THIS(IGetFrameImpl,iface);
+  IGetFrameImpl *This = (IGetFrameImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj);
 
@@ -154,7 +154,7 @@
 
 static ULONG   WINAPI IGetFrame_fnAddRef(IGetFrame *iface)
 {
-  ICOM_THIS(IGetFrameImpl,iface);
+  IGetFrameImpl *This = (IGetFrameImpl *)iface;
 
   TRACE("(%p)\n", iface);
 
@@ -163,7 +163,7 @@
 
 static ULONG   WINAPI IGetFrame_fnRelease(IGetFrame *iface)
 {
-  ICOM_THIS(IGetFrameImpl,iface);
+  IGetFrameImpl *This = (IGetFrameImpl *)iface;
 
   TRACE("(%p)\n", iface);
 
@@ -183,7 +183,7 @@
 
 static LPVOID  WINAPI IGetFrame_fnGetFrame(IGetFrame *iface, LONG lPos)
 {
-  ICOM_THIS(IGetFrameImpl,iface);
+  IGetFrameImpl *This = (IGetFrameImpl *)iface;
 
   LONG readBytes;
   LONG readSamples;
@@ -302,7 +302,7 @@
 static HRESULT WINAPI IGetFrame_fnBegin(IGetFrame *iface, LONG lStart,
 					LONG lEnd, LONG lRate)
 {
-  ICOM_THIS(IGetFrameImpl,iface);
+  IGetFrameImpl *This = (IGetFrameImpl *)iface;
 
   TRACE("(%p,%ld,%ld,%ld)\n", iface, lStart, lEnd, lRate);
 
@@ -313,7 +313,7 @@
 
 static HRESULT WINAPI IGetFrame_fnEnd(IGetFrame *iface)
 {
-  ICOM_THIS(IGetFrameImpl,iface);
+  IGetFrameImpl *This = (IGetFrameImpl *)iface;
 
   TRACE("(%p)\n", iface);
 
@@ -327,7 +327,7 @@
 					    LPVOID lpBits, INT x, INT y,
 					    INT dx, INT dy)
 {
-  ICOM_THIS(IGetFrameImpl,iface);
+  IGetFrameImpl *This = (IGetFrameImpl *)iface;
 
   AVISTREAMINFOW     sInfo;
   LPBITMAPINFOHEADER lpbi         = lpbiWanted;
diff --git a/dlls/avifil32/icmstream.c b/dlls/avifil32/icmstream.c
index f346e14..2376583 100644
--- a/dlls/avifil32/icmstream.c
+++ b/dlls/avifil32/icmstream.c
@@ -145,7 +145,7 @@
 static HRESULT WINAPI ICMStream_fnQueryInterface(IAVIStream *iface,
 						  REFIID refiid, LPVOID *obj)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", iface, debugstr_guid(refiid), obj);
 
@@ -162,7 +162,7 @@
 
 static ULONG WINAPI ICMStream_fnAddRef(IAVIStream *iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref + 1);
 
@@ -175,7 +175,7 @@
 
 static ULONG WINAPI ICMStream_fnRelease(IAVIStream* iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref - 1);
 
@@ -233,7 +233,7 @@
 static HRESULT WINAPI ICMStream_fnCreate(IAVIStream *iface, LPARAM lParam1,
 					  LPARAM lParam2)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   ICINFO               icinfo;
   ICCOMPRESSFRAMES     icFrames;
@@ -322,7 +322,7 @@
 static HRESULT WINAPI ICMStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi,
 					LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n", iface, psi, size);
 
@@ -341,7 +341,7 @@
 static LONG WINAPI ICMStream_fnFindSample(IAVIStream *iface, LONG pos,
 					   LONG flags)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,0x%08lX)\n",iface,pos,flags);
 
@@ -378,7 +378,7 @@
 static HRESULT WINAPI ICMStream_fnReadFormat(IAVIStream *iface, LONG pos,
 					      LPVOID format, LONG *formatsize)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   LPBITMAPINFOHEADER lpbi;
   HRESULT            hr;
@@ -429,7 +429,7 @@
 static HRESULT WINAPI ICMStream_fnSetFormat(IAVIStream *iface, LONG pos,
 					     LPVOID format, LONG formatsize)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,%p,%ld)\n", iface, pos, format, formatsize);
 
@@ -583,7 +583,7 @@
 					LONG buffersize, LPLONG bytesread,
 					LPLONG samplesread)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   LPBITMAPINFOHEADER lpbi;
 
@@ -677,7 +677,7 @@
 					 LPLONG sampwritten,
 					 LPLONG byteswritten)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   HRESULT hr;
 
@@ -722,7 +722,7 @@
 static HRESULT WINAPI ICMStream_fnDelete(IAVIStream *iface, LONG start,
 					  LONG samples)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,%ld)\n", iface, start, samples);
 
@@ -732,7 +732,7 @@
 static HRESULT WINAPI ICMStream_fnReadData(IAVIStream *iface, DWORD fcc,
 					    LPVOID lp, LPLONG lpread)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,0x%08lX,%p,%p)\n", iface, fcc, lp, lpread);
 
@@ -744,7 +744,7 @@
 static HRESULT WINAPI ICMStream_fnWriteData(IAVIStream *iface, DWORD fcc,
 					     LPVOID lp, LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,0x%08lx,%p,%ld)\n", iface, fcc, lp, size);
 
diff --git a/dlls/avifil32/tmpfile.c b/dlls/avifil32/tmpfile.c
index 69cfbda..eb558a1 100644
--- a/dlls/avifil32/tmpfile.c
+++ b/dlls/avifil32/tmpfile.c
@@ -134,7 +134,7 @@
 static HRESULT WINAPI ITmpFile_fnQueryInterface(IAVIFile *iface, REFIID refiid,
 						LPVOID *obj)
 {
-  ICOM_THIS(ITmpFileImpl,iface);
+  ITmpFileImpl *This = (ITmpFileImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj);
 
@@ -151,7 +151,7 @@
 
 static ULONG   WINAPI ITmpFile_fnAddRef(IAVIFile *iface)
 {
-  ICOM_THIS(ITmpFileImpl,iface);
+  ITmpFileImpl *This = (ITmpFileImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref + 1);
   return ++(This->ref);
@@ -159,7 +159,7 @@
 
 static ULONG   WINAPI ITmpFile_fnRelease(IAVIFile *iface)
 {
-  ICOM_THIS(ITmpFileImpl,iface);
+  ITmpFileImpl *This = (ITmpFileImpl *)iface;
 
   TRACE("(%p) -> %ld\n", iface, This->ref - 1);
 
@@ -184,7 +184,7 @@
 static HRESULT WINAPI ITmpFile_fnInfo(IAVIFile *iface,
 				      AVIFILEINFOW *afi, LONG size)
 {
-  ICOM_THIS(ITmpFileImpl,iface);
+  ITmpFileImpl *This = (ITmpFileImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n",iface,afi,size);
 
@@ -203,7 +203,7 @@
 static HRESULT WINAPI ITmpFile_fnGetStream(IAVIFile *iface, PAVISTREAM *avis,
 					   DWORD fccType, LONG lParam)
 {
-  ICOM_THIS(ITmpFileImpl,iface);
+  ITmpFileImpl *This = (ITmpFileImpl *)iface;
 
   ULONG nStream = (ULONG)-1;
 
diff --git a/dlls/avifil32/wavfile.c b/dlls/avifil32/wavfile.c
index 47de2d0..dd7153b 100644
--- a/dlls/avifil32/wavfile.c
+++ b/dlls/avifil32/wavfile.c
@@ -246,7 +246,7 @@
 static HRESULT WINAPI IAVIFile_fnQueryInterface(IAVIFile *iface, REFIID refiid,
 						LPVOID *obj)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,%s,%p)\n", This, debugstr_guid(refiid), obj);
 
@@ -268,7 +268,7 @@
 
 static ULONG WINAPI IAVIFile_fnAddRef(IAVIFile *iface)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p)\n",iface);
 
@@ -277,7 +277,7 @@
 
 static ULONG WINAPI IAVIFile_fnRelease(IAVIFile *iface)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p)\n",iface);
 
@@ -315,7 +315,7 @@
 static HRESULT WINAPI IAVIFile_fnInfo(IAVIFile *iface, LPAVIFILEINFOW afi,
 				      LONG size)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n",iface,afi,size);
 
@@ -349,7 +349,7 @@
 static HRESULT WINAPI IAVIFile_fnGetStream(IAVIFile *iface, PAVISTREAM *avis,
 					   DWORD fccType, LONG lParam)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,%p,0x%08lX,%ld)\n", iface, avis, fccType, lParam);
 
@@ -374,7 +374,7 @@
 static HRESULT WINAPI IAVIFile_fnCreateStream(IAVIFile *iface,PAVISTREAM *avis,
 					      LPAVISTREAMINFOW asi)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,%p,%p)\n", iface, avis, asi);
 
@@ -425,7 +425,7 @@
 static HRESULT WINAPI IAVIFile_fnWriteData(IAVIFile *iface, DWORD ckid,
 					   LPVOID lpData, LONG size)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,0x%08lX,%p,%ld)\n", iface, ckid, lpData, size);
 
@@ -447,7 +447,7 @@
 static HRESULT WINAPI IAVIFile_fnReadData(IAVIFile *iface, DWORD ckid,
 					  LPVOID lpData, LONG *size)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,0x%08lX,%p,%p)\n", iface, ckid, lpData, size);
 
@@ -467,7 +467,7 @@
 static HRESULT WINAPI IAVIFile_fnDeleteStream(IAVIFile *iface, DWORD fccType,
 					      LONG lParam)
 {
-  ICOM_THIS(IAVIFileImpl,iface);
+  IAVIFileImpl *This = (IAVIFileImpl *)iface;
 
   TRACE("(%p,0x%08lX,%ld)\n", iface, fccType, lParam);
 
@@ -510,7 +510,7 @@
 static HRESULT WINAPI IPersistFile_fnQueryInterface(IPersistFile *iface,
 						    REFIID refiid, LPVOID *obj)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -519,7 +519,7 @@
 
 static ULONG   WINAPI IPersistFile_fnAddRef(IPersistFile *iface)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -528,7 +528,7 @@
 
 static ULONG   WINAPI IPersistFile_fnRelease(IPersistFile *iface)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -550,7 +550,7 @@
 
 static HRESULT WINAPI IPersistFile_fnIsDirty(IPersistFile *iface)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   TRACE("(%p)\n", iface);
 
@@ -648,7 +648,7 @@
 static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile *iface,
 						LPOLESTR *ppszFileName)
 {
-  ICOM_THIS(IPersistFileImpl,iface);
+  IPersistFileImpl *This = (IPersistFileImpl *)iface;
 
   TRACE("(%p,%p)\n", iface, ppszFileName);
 
@@ -677,7 +677,7 @@
 static HRESULT WINAPI IAVIStream_fnQueryInterface(IAVIStream *iface,
 						  REFIID refiid, LPVOID *obj)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -686,7 +686,7 @@
 
 static ULONG WINAPI IAVIStream_fnAddRef(IAVIStream *iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -695,7 +695,7 @@
 
 static ULONG WINAPI IAVIStream_fnRelease(IAVIStream* iface)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -714,7 +714,7 @@
 static HRESULT WINAPI IAVIStream_fnInfo(IAVIStream *iface,LPAVISTREAMINFOW psi,
 					LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%p,%ld)\n", iface, psi, size);
 
@@ -770,7 +770,7 @@
 static HRESULT WINAPI IAVIStream_fnReadFormat(IAVIStream *iface, LONG pos,
 					      LPVOID format, LONG *formatsize)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   TRACE("(%p,%ld,%p,%p)\n", iface, pos, format, formatsize);
 
@@ -1029,7 +1029,7 @@
 static HRESULT WINAPI IAVIStream_fnReadData(IAVIStream *iface, DWORD fcc,
 					    LPVOID lp, LPLONG lpread)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   assert(This->paf != NULL);
 
@@ -1039,7 +1039,7 @@
 static HRESULT WINAPI IAVIStream_fnWriteData(IAVIStream *iface, DWORD fcc,
 					     LPVOID lp, LONG size)
 {
-  ICOM_THIS(IAVIStreamImpl,iface);
+  IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
 
   return IAVIFile_WriteData((PAVIFILE)This->paf, fcc, lp, size);
 }
diff --git a/dlls/comcat/factory.c b/dlls/comcat/factory.c
index 7e6f873..fb5fd1e 100644
--- a/dlls/comcat/factory.c
+++ b/dlls/comcat/factory.c
@@ -34,7 +34,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -55,7 +55,7 @@
  */
 static ULONG WINAPI COMCAT_IClassFactory_AddRef(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -71,7 +71,7 @@
  */
 static ULONG WINAPI COMCAT_IClassFactory_Release(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -91,7 +91,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     HRESULT res;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
diff --git a/dlls/comcat/information.c b/dlls/comcat/information.c
index cfe4716..a6b3c3b 100644
--- a/dlls/comcat/information.c
+++ b/dlls/comcat/information.c
@@ -306,7 +306,7 @@
 
 static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_AddRef(LPENUMCATEGORYINFO iface)
 {
-    ICOM_THIS(IEnumCATEGORYINFOImpl, iface);
+    IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -319,7 +319,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(IEnumCATEGORYINFOImpl, iface);
+    IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -337,7 +337,7 @@
 
 static ULONG WINAPI COMCAT_IEnumCATEGORYINFO_Release(LPENUMCATEGORYINFO iface)
 {
-    ICOM_THIS(IEnumCATEGORYINFOImpl, iface);
+    IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -356,7 +356,7 @@
     CATEGORYINFO *rgelt,
     ULONG *pceltFetched)
 {
-    ICOM_THIS(IEnumCATEGORYINFOImpl, iface);
+    IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
     ULONG fetched = 0;
 
     TRACE("\n");
@@ -398,7 +398,7 @@
     LPENUMCATEGORYINFO iface,
     ULONG celt)
 {
-    ICOM_THIS(IEnumCATEGORYINFOImpl, iface);
+    IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
 
     TRACE("\n");
 
@@ -410,7 +410,7 @@
 
 static HRESULT WINAPI COMCAT_IEnumCATEGORYINFO_Reset(LPENUMCATEGORYINFO iface)
 {
-    ICOM_THIS(IEnumCATEGORYINFOImpl, iface);
+    IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
 
     TRACE("\n");
 
@@ -423,7 +423,7 @@
     LPENUMCATEGORYINFO iface,
     IEnumCATEGORYINFO **ppenum)
 {
-    ICOM_THIS(IEnumCATEGORYINFOImpl, iface);
+    IEnumCATEGORYINFOImpl *This = (IEnumCATEGORYINFOImpl *)iface;
     WCHAR keyname[21] = { 'C', 'o', 'm', 'p', 'o', 'n', 'e', 'n',
 			  't', ' ', 'C', 'a', 't', 'e', 'g', 'o',
 			  'r', 'i', 'e', 's', 0 };
@@ -608,7 +608,7 @@
 
 static ULONG WINAPI COMCAT_CLSID_IEnumGUID_AddRef(LPENUMGUID iface)
 {
-    ICOM_THIS(CLSID_IEnumGUIDImpl, iface);
+    CLSID_IEnumGUIDImpl *This = (CLSID_IEnumGUIDImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -621,7 +621,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(CLSID_IEnumGUIDImpl, iface);
+    CLSID_IEnumGUIDImpl *This = (CLSID_IEnumGUIDImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -639,7 +639,7 @@
 
 static ULONG WINAPI COMCAT_CLSID_IEnumGUID_Release(LPENUMGUID iface)
 {
-    ICOM_THIS(CLSID_IEnumGUIDImpl, iface);
+    CLSID_IEnumGUIDImpl *This = (CLSID_IEnumGUIDImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -659,7 +659,7 @@
     GUID *rgelt,
     ULONG *pceltFetched)
 {
-    ICOM_THIS(CLSID_IEnumGUIDImpl, iface);
+    CLSID_IEnumGUIDImpl *This = (CLSID_IEnumGUIDImpl *)iface;
     ULONG fetched = 0;
 
     TRACE("\n");
@@ -699,7 +699,7 @@
     LPENUMGUID iface,
     ULONG celt)
 {
-    ICOM_THIS(CLSID_IEnumGUIDImpl, iface);
+    CLSID_IEnumGUIDImpl *This = (CLSID_IEnumGUIDImpl *)iface;
 
     TRACE("\n");
 
@@ -711,7 +711,7 @@
 
 static HRESULT WINAPI COMCAT_CLSID_IEnumGUID_Reset(LPENUMGUID iface)
 {
-    ICOM_THIS(CLSID_IEnumGUIDImpl, iface);
+    CLSID_IEnumGUIDImpl *This = (CLSID_IEnumGUIDImpl *)iface;
 
     TRACE("\n");
 
@@ -724,7 +724,7 @@
     LPENUMGUID iface,
     IEnumGUID **ppenum)
 {
-    ICOM_THIS(CLSID_IEnumGUIDImpl, iface);
+    CLSID_IEnumGUIDImpl *This = (CLSID_IEnumGUIDImpl *)iface;
     WCHAR keyname[6] = { 'C', 'L', 'S', 'I', 'D', 0 };
     CLSID_IEnumGUIDImpl *new_this;
     DWORD size;
@@ -800,7 +800,7 @@
 
 static ULONG WINAPI COMCAT_CATID_IEnumGUID_AddRef(LPENUMGUID iface)
 {
-    ICOM_THIS(CATID_IEnumGUIDImpl, iface);
+    CATID_IEnumGUIDImpl *This = (CATID_IEnumGUIDImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -813,7 +813,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(CATID_IEnumGUIDImpl, iface);
+    CATID_IEnumGUIDImpl *This = (CATID_IEnumGUIDImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -831,7 +831,7 @@
 
 static ULONG WINAPI COMCAT_CATID_IEnumGUID_Release(LPENUMGUID iface)
 {
-    ICOM_THIS(CATID_IEnumGUIDImpl, iface);
+    CATID_IEnumGUIDImpl *This = (CATID_IEnumGUIDImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -850,7 +850,7 @@
     GUID *rgelt,
     ULONG *pceltFetched)
 {
-    ICOM_THIS(CATID_IEnumGUIDImpl, iface);
+    CATID_IEnumGUIDImpl *This = (CATID_IEnumGUIDImpl *)iface;
     ULONG fetched = 0;
 
     TRACE("\n");
@@ -882,7 +882,7 @@
     LPENUMGUID iface,
     ULONG celt)
 {
-    ICOM_THIS(CATID_IEnumGUIDImpl, iface);
+    CATID_IEnumGUIDImpl *This = (CATID_IEnumGUIDImpl *)iface;
 
     TRACE("\n");
 
@@ -894,7 +894,7 @@
 
 static HRESULT WINAPI COMCAT_CATID_IEnumGUID_Reset(LPENUMGUID iface)
 {
-    ICOM_THIS(CATID_IEnumGUIDImpl, iface);
+    CATID_IEnumGUIDImpl *This = (CATID_IEnumGUIDImpl *)iface;
 
     TRACE("\n");
 
@@ -907,7 +907,7 @@
     LPENUMGUID iface,
     IEnumGUID **ppenum)
 {
-    ICOM_THIS(CATID_IEnumGUIDImpl, iface);
+    CATID_IEnumGUIDImpl *This = (CATID_IEnumGUIDImpl *)iface;
     CATID_IEnumGUIDImpl *new_this;
 
     TRACE("\n");
diff --git a/dlls/commdlg/filedlgbrowser.c b/dlls/commdlg/filedlgbrowser.c
index ab4f5d1..81bfa94 100644
--- a/dlls/commdlg/filedlgbrowser.c
+++ b/dlls/commdlg/filedlgbrowser.c
@@ -175,7 +175,7 @@
                                             REFIID riid,
                                             LPVOID *ppvObj)
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n\t%s\n", This, debugstr_guid(riid));
 
@@ -213,7 +213,7 @@
 */
 ULONG WINAPI IShellBrowserImpl_AddRef(IShellBrowser * iface)
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p,%lu)\n", This, This->ref);
 
@@ -225,7 +225,7 @@
 */
 ULONG WINAPI IShellBrowserImpl_Release(IShellBrowser * iface)
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p,%lu)\n", This, This->ref);
 
@@ -255,7 +255,7 @@
 HRESULT WINAPI IShellBrowserImpl_GetWindow(IShellBrowser * iface,
                                            HWND * phwnd)
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -274,7 +274,7 @@
 HRESULT WINAPI IShellBrowserImpl_ContextSensitiveHelp(IShellBrowser * iface,
                                                       BOOL fEnterMode)
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -308,7 +308,7 @@
     BOOL bViewHasFocus;
     RECT rectView;
 
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)(pidl=%p,flags=0x%08x(%s))\n", This, pidl, wFlags,
 	(wFlags & SBSP_RELATIVE) ? "SBSP_RELATIVE" :
@@ -437,7 +437,7 @@
                                               BOOL fEnable)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -453,7 +453,7 @@
                                               HWND *lphwnd)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -468,7 +468,7 @@
                                                 LPSTREAM *ppStrm)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     FIXME("(%p 0x%08lx %p)\n", This, grfMode, ppStrm);
 
@@ -483,7 +483,7 @@
                                            LPOLEMENUGROUPWIDTHS lpMenuWidths)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -497,7 +497,7 @@
                                                 IShellView *ppshv)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -511,7 +511,7 @@
                                                   IShellView **ppshv)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     FileOpenDlgInfos *fodInfos;
 
@@ -533,7 +533,7 @@
                                            HMENU hmenuShared)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -551,7 +551,7 @@
                                             LRESULT *pret)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
     LRESULT lres;
 
     TRACE("(%p)->(0x%08x 0x%08x 0x%08x 0x%08lx %p)\n", This, id, uMsg, wParam, lParam, pret);
@@ -577,7 +577,7 @@
                                        HWND hwndActiveObject)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -591,7 +591,7 @@
                                              LPCOLESTR lpszStatusText)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -607,7 +607,7 @@
                                              UINT uFlags)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
@@ -622,7 +622,7 @@
                                                     WORD wID)
 
 {
-    ICOM_THIS(IShellBrowserImpl, iface);
+    IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
 
     TRACE("(%p)\n", This);
 
diff --git a/dlls/d3dxof/d3dxof.c b/dlls/d3dxof/d3dxof.c
index 352b7ca..e438f2b 100644
--- a/dlls/d3dxof/d3dxof.c
+++ b/dlls/d3dxof/d3dxof.c
@@ -59,7 +59,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IDirectXFileImpl_QueryInterface(IDirectXFile* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IDirectXFileImpl, iface);
+  IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
 
   TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -77,7 +77,7 @@
 
 static ULONG WINAPI IDirectXFileImpl_AddRef(IDirectXFile* iface)
 {
-  ICOM_THIS(IDirectXFileImpl, iface);
+  IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -87,7 +87,7 @@
 
 static ULONG WINAPI IDirectXFileImpl_Release(IDirectXFile* iface)
 {
-  ICOM_THIS(IDirectXFileImpl, iface);
+  IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -101,7 +101,7 @@
 static HRESULT WINAPI IDirectXFileImpl_CreateEnumObject(IDirectXFile* iface, LPVOID pvSource, DXFILELOADOPTIONS dwLoadOptions, LPDIRECTXFILEENUMOBJECT* ppEnumObj)
 
 {
-  ICOM_THIS(IDirectXFileImpl, iface);
+  IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
   IDirectXFileEnumObjectImpl* object; 
 
   FIXME("(%p/%p)->(%p,%lx,%p) stub!\n", This, iface, pvSource, dwLoadOptions, ppEnumObj); 
@@ -123,7 +123,7 @@
 
 static HRESULT WINAPI IDirectXFileImpl_CreateSaveObject(IDirectXFile* iface, LPCSTR szFileName, DXFILEFORMAT dwFileFormat, LPDIRECTXFILESAVEOBJECT* ppSaveObj)
 {
-  ICOM_THIS(IDirectXFileImpl, iface);
+  IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
 
   FIXME("(%p/%p)->(%s,%lx,%p) stub!\n", This, iface, szFileName, dwFileFormat, ppSaveObj); 
 
@@ -132,7 +132,7 @@
 
 static HRESULT WINAPI IDirectXFileImpl_RegisterTemplates(IDirectXFile* iface, LPVOID pvData, DWORD cbSize)
 {
-  ICOM_THIS(IDirectXFileImpl, iface);
+  IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%ld) stub!\n", This, iface, pvData, cbSize); 
 
@@ -168,7 +168,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IDirectXFileBinaryImpl_QueryInterface(IDirectXFileBinary* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -187,7 +187,7 @@
 
 static ULONG WINAPI IDirectXFileBinaryImpl_AddRef(IDirectXFileBinary* iface)
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -197,7 +197,7 @@
 
 static ULONG WINAPI IDirectXFileBinaryImpl_Release(IDirectXFileBinary* iface)
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -211,7 +211,7 @@
 static HRESULT WINAPI IDirectXFileBinaryImpl_GetName(IDirectXFileBinary* iface, LPSTR pstrNameBuf, LPDWORD pdwBufLen)
 
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p) stub!\n", This, iface, pstrNameBuf, pdwBufLen); 
 
@@ -220,7 +220,7 @@
 
 static HRESULT WINAPI IDirectXFileBinaryImpl_GetId(IDirectXFileBinary* iface, LPGUID pGuid)
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pGuid); 
 
@@ -230,7 +230,7 @@
 /*** IDirectXFileBinary methods ***/
 static HRESULT WINAPI IDirectXFileBinaryImpl_GetSize(IDirectXFileBinary* iface, DWORD* pcbSize)
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pcbSize); 
 
@@ -239,7 +239,7 @@
 
 static HRESULT WINAPI IDirectXFileBinaryImpl_GetMimeType(IDirectXFileBinary* iface, LPCSTR* pszMimeType)
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pszMimeType);
 
@@ -248,7 +248,7 @@
 
 static HRESULT WINAPI IDirectXFileBinaryImpl_Read(IDirectXFileBinary* iface, LPVOID pvData, DWORD cbSize, LPDWORD pcbRead)
 {
-  ICOM_THIS(IDirectXFileBinaryImpl, iface);
+  IDirectXFileBinaryImpl *This = (IDirectXFileBinaryImpl *)iface;
 
   FIXME("(%p/%p)->(%p, %ld, %p) stub!\n", This, iface, pvData, cbSize, pcbRead); 
 
@@ -286,7 +286,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IDirectXFileDataImpl_QueryInterface(IDirectXFileData* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -305,7 +305,7 @@
 
 static ULONG WINAPI IDirectXFileDataImpl_AddRef(IDirectXFileData* iface)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -315,7 +315,7 @@
 
 static ULONG WINAPI IDirectXFileDataImpl_Release(IDirectXFileData* iface)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -329,7 +329,7 @@
 static HRESULT WINAPI IDirectXFileDataImpl_GetName(IDirectXFileData* iface, LPSTR pstrNameBuf, LPDWORD pdwBufLen)
 
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p) stub!\n", This, iface, pstrNameBuf, pdwBufLen); 
 
@@ -338,7 +338,7 @@
 
 static HRESULT WINAPI IDirectXFileDataImpl_GetId(IDirectXFileData* iface, LPGUID pGuid)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pGuid); 
 
@@ -348,7 +348,7 @@
 /*** IDirectXFileData methods ***/
 static HRESULT WINAPI IDirectXFileDataImpl_GetData(IDirectXFileData* iface, LPCSTR szMember, DWORD* pcbSize, void** ppvData)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%s,%p,%p) stub!\n", This, iface, szMember, pcbSize, ppvData); 
 
@@ -357,7 +357,7 @@
 
 static HRESULT WINAPI IDirectXFileDataImpl_GetType(IDirectXFileData* iface, const GUID** pguid)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pguid); 
 
@@ -366,7 +366,7 @@
 
 static HRESULT WINAPI IDirectXFileDataImpl_GetNextObject(IDirectXFileData* iface, LPDIRECTXFILEOBJECT* ppChildObj)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppChildObj); 
 
@@ -375,7 +375,7 @@
 
 static HRESULT WINAPI IDirectXFileDataImpl_AddDataObject(IDirectXFileData* iface, LPDIRECTXFILEDATA pDataObj)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pDataObj); 
 
@@ -384,7 +384,7 @@
 
 static HRESULT WINAPI IDirectXFileDataImpl_AddDataReference(IDirectXFileData* iface, LPCSTR szRef, const GUID* pguidRef)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%s,%p) stub!\n", This, iface, szRef, pguidRef); 
 
@@ -393,7 +393,7 @@
 
 static HRESULT WINAPI IDirectXFileDataImpl_AddBinaryObject(IDirectXFileData* iface, LPCSTR szName, const GUID* pguid, LPCSTR szMimeType, LPVOID pvData, DWORD cbSize)
 {
-  ICOM_THIS(IDirectXFileDataImpl, iface);
+  IDirectXFileDataImpl *This = (IDirectXFileDataImpl *)iface;
 
   FIXME("(%p/%p)->(%s,%p,%s,%p,%ld) stub!\n", This, iface, szName, pguid, szMimeType, pvData, cbSize);
 
@@ -434,7 +434,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IDirectXFileDataReferenceImpl_QueryInterface(IDirectXFileDataReference* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IDirectXFileDataReferenceImpl, iface);
+  IDirectXFileDataReferenceImpl *This = (IDirectXFileDataReferenceImpl *)iface;
 
   TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -453,7 +453,7 @@
 
 static ULONG WINAPI IDirectXFileDataReferenceImpl_AddRef(IDirectXFileDataReference* iface)
 {
-  ICOM_THIS(IDirectXFileDataReferenceImpl, iface);
+  IDirectXFileDataReferenceImpl *This = (IDirectXFileDataReferenceImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -463,7 +463,7 @@
 
 static ULONG WINAPI IDirectXFileDataReferenceImpl_Release(IDirectXFileDataReference* iface)
 {
-  ICOM_THIS(IDirectXFileDataReferenceImpl, iface);
+  IDirectXFileDataReferenceImpl *This = (IDirectXFileDataReferenceImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -476,7 +476,7 @@
 /*** IDirectXFileObject methods ***/
 static HRESULT WINAPI IDirectXFileDataReferenceImpl_GetName(IDirectXFileDataReference* iface, LPSTR pstrNameBuf, LPDWORD pdwBufLen)
 {
-  ICOM_THIS(IDirectXFileDataReferenceImpl, iface);
+  IDirectXFileDataReferenceImpl *This = (IDirectXFileDataReferenceImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p) stub!\n", This, iface, pstrNameBuf, pdwBufLen); 
 
@@ -485,7 +485,7 @@
 
 static HRESULT WINAPI IDirectXFileDataReferenceImpl_GetId(IDirectXFileDataReference* iface, LPGUID pGuid)
 {
-  ICOM_THIS(IDirectXFileDataReferenceImpl, iface);
+  IDirectXFileDataReferenceImpl *This = (IDirectXFileDataReferenceImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pGuid); 
 
@@ -495,7 +495,7 @@
 /*** IDirectXFileDataReference ***/
 static HRESULT WINAPI IDirectXFileDataReferenceImpl_Resolve(IDirectXFileDataReference* iface, LPDIRECTXFILEDATA* ppDataObj)
 {
-  ICOM_THIS(IDirectXFileDataReferenceImpl, iface);
+  IDirectXFileDataReferenceImpl *This = (IDirectXFileDataReferenceImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppDataObj); 
 
@@ -531,7 +531,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IDirectXFileEnumObjectImpl_QueryInterface(IDirectXFileEnumObject* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IDirectXFileEnumObjectImpl, iface);
+  IDirectXFileEnumObjectImpl *This = (IDirectXFileEnumObjectImpl *)iface;
 
   TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -549,7 +549,7 @@
 
 static ULONG WINAPI IDirectXFileEnumObjectImpl_AddRef(IDirectXFileEnumObject* iface)
 {
-  ICOM_THIS(IDirectXFileEnumObjectImpl, iface);
+  IDirectXFileEnumObjectImpl *This = (IDirectXFileEnumObjectImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -559,7 +559,7 @@
 
 static ULONG WINAPI IDirectXFileEnumObjectImpl_Release(IDirectXFileEnumObject* iface)
 {
-  ICOM_THIS(IDirectXFileEnumObjectImpl, iface);
+  IDirectXFileEnumObjectImpl *This = (IDirectXFileEnumObjectImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -572,7 +572,7 @@
 /*** IDirectXFileEnumObject methods ***/
 static HRESULT WINAPI IDirectXFileEnumObjectImpl_GetNextDataObject(IDirectXFileEnumObject* iface, LPDIRECTXFILEDATA* ppDataObj)
 {
-  ICOM_THIS(IDirectXFileEnumObjectImpl, iface);
+  IDirectXFileEnumObjectImpl *This = (IDirectXFileEnumObjectImpl *)iface;
   IDirectXFileDataImpl* object;
   
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppDataObj); 
@@ -589,7 +589,7 @@
 
 static HRESULT WINAPI IDirectXFileEnumObjectImpl_GetDataObjectById(IDirectXFileEnumObject* iface, REFGUID rguid, LPDIRECTXFILEDATA* ppDataObj)
 {
-  ICOM_THIS(IDirectXFileEnumObjectImpl, iface);
+  IDirectXFileEnumObjectImpl *This = (IDirectXFileEnumObjectImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p) stub!\n", This, iface, rguid, ppDataObj); 
 
@@ -598,7 +598,7 @@
 
 static HRESULT WINAPI IDirectXFileEnumObjectImpl_GetDataObjectByName(IDirectXFileEnumObject* iface, LPCSTR szName, LPDIRECTXFILEDATA* ppDataObj)
 {
-  ICOM_THIS(IDirectXFileEnumObjectImpl, iface);
+  IDirectXFileEnumObjectImpl *This = (IDirectXFileEnumObjectImpl *)iface;
 
   FIXME("(%p/%p)->(%s,%p) stub!\n", This, iface, szName, ppDataObj); 
 
@@ -634,7 +634,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IDirectXFileObjectImpl_QueryInterface(IDirectXFileObject* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IDirectXFileObjectImpl, iface);
+  IDirectXFileObjectImpl *This = (IDirectXFileObjectImpl *)iface;
 
   TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -652,7 +652,7 @@
 
 static ULONG WINAPI IDirectXFileObjectImpl_AddRef(IDirectXFileObject* iface)
 {
-  ICOM_THIS(IDirectXFileObjectImpl, iface);
+  IDirectXFileObjectImpl *This = (IDirectXFileObjectImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -662,7 +662,7 @@
 
 static ULONG WINAPI IDirectXFileObjectImpl_Release(IDirectXFileObject* iface)
 {
-  ICOM_THIS(IDirectXFileObjectImpl, iface);
+  IDirectXFileObjectImpl *This = (IDirectXFileObjectImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -675,7 +675,7 @@
 /*** IDirectXFileObject methods ***/
 static HRESULT WINAPI IDirectXFileObjectImpl_GetName(IDirectXFileObject* iface, LPSTR pstrNameBuf, LPDWORD pdwBufLen)
 {
-  ICOM_THIS(IDirectXFileDataReferenceImpl, iface);
+  IDirectXFileDataReferenceImpl *This = (IDirectXFileDataReferenceImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%p) stub!\n", This, iface, pstrNameBuf, pdwBufLen); 
 
@@ -684,7 +684,7 @@
 
 static HRESULT WINAPI IDirectXFileObjectImpl_GetId(IDirectXFileObject* iface, LPGUID pGuid)
 {
-  ICOM_THIS(IDirectXFileObjectImpl, iface);
+  IDirectXFileObjectImpl *This = (IDirectXFileObjectImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, pGuid); 
 
@@ -719,7 +719,7 @@
 /*** IUnknown methods ***/
 static HRESULT WINAPI IDirectXFileSaveObjectImpl_QueryInterface(IDirectXFileSaveObject* iface, REFIID riid, void** ppvObject)
 {
-  ICOM_THIS(IDirectXFileSaveObjectImpl, iface);
+  IDirectXFileSaveObjectImpl *This = (IDirectXFileSaveObjectImpl *)iface;
 
   TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppvObject);
 
@@ -737,7 +737,7 @@
 
 static ULONG WINAPI IDirectXFileSaveObjectImpl_AddRef(IDirectXFileSaveObject* iface)
 {
-  ICOM_THIS(IDirectXFileSaveObjectImpl, iface);
+  IDirectXFileSaveObjectImpl *This = (IDirectXFileSaveObjectImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -747,7 +747,7 @@
 
 static ULONG WINAPI IDirectXFileSaveObjectImpl_Release(IDirectXFileSaveObject* iface)
 {
-  ICOM_THIS(IDirectXFileSaveObjectImpl, iface);
+  IDirectXFileSaveObjectImpl *This = (IDirectXFileSaveObjectImpl *)iface;
 
   TRACE("(%p/%p)\n", iface, This); 
 
@@ -759,7 +759,7 @@
 
 static HRESULT WINAPI IDirectXFileSaveObjectImpl_SaveTemplates(IDirectXFileSaveObject* iface, DWORD cTemplates, const GUID** ppguidTemplates)
 {
-  ICOM_THIS(IDirectXFileSaveObjectImpl, iface);
+  IDirectXFileSaveObjectImpl *This = (IDirectXFileSaveObjectImpl *)iface;
 
   FIXME("(%p/%p)->(%ld,%p) stub!\n", This, iface, cTemplates, ppguidTemplates); 
 
@@ -768,7 +768,7 @@
 
 static HRESULT WINAPI IDirectXFileSaveObjectImpl_CreateDataObject(IDirectXFileSaveObject* iface, REFGUID rguidTemplate, LPCSTR szName, const GUID* pguid, DWORD cbSize, LPVOID pvData, LPDIRECTXFILEDATA* ppDataObj)
 {
-  ICOM_THIS(IDirectXFileSaveObjectImpl, iface);
+  IDirectXFileSaveObjectImpl *This = (IDirectXFileSaveObjectImpl *)iface;
 
   FIXME("(%p/%p)->(%p,%s,%p,%ld,%p,%p) stub!\n", This, iface, rguidTemplate, szName, pguid, cbSize, pvData, ppDataObj); 
 
@@ -777,7 +777,7 @@
 
 static HRESULT WINAPI IDirectXFileSaveObjectImpl_SaveData(IDirectXFileSaveObject* iface, LPDIRECTXFILEDATA ppDataObj)
 {
-  ICOM_THIS(IDirectXFileSaveObjectImpl, iface);
+  IDirectXFileSaveObjectImpl *This = (IDirectXFileSaveObjectImpl *)iface;
 
   FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppDataObj); 
 
diff --git a/dlls/d3dxof/main.c b/dlls/d3dxof/main.c
index 4249659..79b7cb2 100644
--- a/dlls/d3dxof/main.c
+++ b/dlls/d3dxof/main.c
@@ -80,7 +80,7 @@
 
 static HRESULT WINAPI XFCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IClassFactory))
@@ -96,13 +96,13 @@
 
 static ULONG WINAPI XFCF_AddRef(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     return ++(This->ref);
 }
 
 static ULONG WINAPI XFCF_Release(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     ULONG ref = --This->ref;
 
@@ -114,7 +114,7 @@
 
 static HRESULT WINAPI XFCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     HRESULT hres;
     LPUNKNOWN punk;
     
@@ -136,7 +136,7 @@
 
 static HRESULT WINAPI XFCF_LockServer(LPCLASSFACTORY iface, BOOL dolock)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     FIXME("(%p)->(%d),stub!\n",This,dolock);
     return S_OK;
 }
diff --git a/dlls/devenum/createdevenum.c b/dlls/devenum/createdevenum.c
index 6f44b46..8860e43 100644
--- a/dlls/devenum/createdevenum.c
+++ b/dlls/devenum/createdevenum.c
@@ -56,7 +56,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(CreateDevEnumImpl, iface);
+    CreateDevEnumImpl *This = (CreateDevEnumImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -78,7 +78,7 @@
  */
 static ULONG WINAPI DEVENUM_ICreateDevEnum_AddRef(ICreateDevEnum * iface)
 {
-    ICOM_THIS(CreateDevEnumImpl, iface);
+    CreateDevEnumImpl *This = (CreateDevEnumImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -94,7 +94,7 @@
  */
 static ULONG WINAPI DEVENUM_ICreateDevEnum_Release(ICreateDevEnum * iface)
 {
-    ICOM_THIS(CreateDevEnumImpl, iface);
+    CreateDevEnumImpl *This = (CreateDevEnumImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -118,7 +118,7 @@
     EnumMonikerImpl * pEnumMoniker;
     HKEY hkey;
     HKEY hbasekey;
-    ICOM_THIS(CreateDevEnumImpl, iface);
+    CreateDevEnumImpl *This = (CreateDevEnumImpl *)iface;
 
     TRACE("(%p)->(%s, %p, %lx)\n\tDeviceClass:\t%s\n", This, debugstr_guid(clsidDeviceClass), ppEnumMoniker, dwFlags, debugstr_guid(clsidDeviceClass));
 
diff --git a/dlls/devenum/factory.c b/dlls/devenum/factory.c
index 21bdd08..8c5409b 100644
--- a/dlls/devenum/factory.c
+++ b/dlls/devenum/factory.c
@@ -33,7 +33,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -59,7 +59,7 @@
  */
 static ULONG WINAPI DEVENUM_IClassFactory_AddRef(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -77,7 +77,7 @@
  */
 static ULONG WINAPI DEVENUM_IClassFactory_Release(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -97,7 +97,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(ClassFactoryImpl, iface);
+    ClassFactoryImpl *This = (ClassFactoryImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
diff --git a/dlls/devenum/mediacatenum.c b/dlls/devenum/mediacatenum.c
index e7f7af3..e709e25 100644
--- a/dlls/devenum/mediacatenum.c
+++ b/dlls/devenum/mediacatenum.c
@@ -43,7 +43,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(RegPropBagImpl, iface);
+    RegPropBagImpl *This = (RegPropBagImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -65,7 +65,7 @@
  */
 static ULONG WINAPI DEVENUM_IPropertyBag_AddRef(LPPROPERTYBAG iface)
 {
-    ICOM_THIS(RegPropBagImpl, iface);
+    RegPropBagImpl *This = (RegPropBagImpl *)iface;
     TRACE("\n");
 
     return InterlockedIncrement(&This->ref);
@@ -76,7 +76,7 @@
  */
 static ULONG WINAPI DEVENUM_IPropertyBag_Release(LPPROPERTYBAG iface)
 {
-    ICOM_THIS(RegPropBagImpl, iface);
+    RegPropBagImpl *This = (RegPropBagImpl *)iface;
 
     TRACE("\n");
 
@@ -97,7 +97,7 @@
     LPVOID pData = NULL;
     LONG received;
     DWORD type = 0;
-    ICOM_THIS(RegPropBagImpl, iface);
+    RegPropBagImpl *This = (RegPropBagImpl *)iface;
     HRESULT res = S_OK;
     LONG reswin32;
 
@@ -202,7 +202,7 @@
     LPCOLESTR pszPropName,
     VARIANT* pVar)
 {
-    ICOM_THIS(RegPropBagImpl, iface);
+    RegPropBagImpl *This = (RegPropBagImpl *)iface;
     LPVOID lpData = NULL;
     DWORD cbData = 0;
     DWORD dwType = 0;
@@ -269,7 +269,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(MediaCatMoniker, iface);
+    MediaCatMoniker *This = (MediaCatMoniker *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -295,7 +295,7 @@
  */
 static ULONG WINAPI DEVENUM_IMediaCatMoniker_AddRef(LPMONIKER iface)
 {
-    ICOM_THIS(MediaCatMoniker, iface);
+    MediaCatMoniker *This = (MediaCatMoniker *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -308,7 +308,7 @@
  */
 static ULONG WINAPI DEVENUM_IMediaCatMoniker_Release(LPMONIKER iface)
 {
-    ICOM_THIS(MediaCatMoniker, iface);
+    MediaCatMoniker *This = (MediaCatMoniker *)iface;
     ULONG ref;
     TRACE("\n");
 
@@ -326,7 +326,7 @@
     LPMONIKER iface,
     CLSID* pClassID)
 {
-    ICOM_THIS(MediaCatMoniker, iface);
+    MediaCatMoniker *This = (MediaCatMoniker *)iface;
     FIXME("(%p)->(%p)\n", This, pClassID);
 
     if (pClassID == NULL)
@@ -380,7 +380,7 @@
     VARIANT var;
     HRESULT res = E_FAIL;
 
-    ICOM_THIS(MediaCatMoniker, iface);
+    MediaCatMoniker *This = (MediaCatMoniker *)iface;
 
     VariantClear(&var);
 
@@ -434,7 +434,7 @@
     REFIID riid,
     void** ppvObj)
 {
-    ICOM_THIS(MediaCatMoniker, iface);
+    MediaCatMoniker *This = (MediaCatMoniker *)iface;
     TRACE("(%p)->(%p, %p, %s, %p)\n", This, pbc, pmkToLeft, debugstr_guid(riid), ppvObj);
 
     *ppvObj = NULL;
@@ -585,7 +585,7 @@
     IMoniker* pmkToLeft,
     LPOLESTR* ppszDisplayName)
 {
-    ICOM_THIS(MediaCatMoniker, iface);
+    MediaCatMoniker *This = (MediaCatMoniker *)iface;
     WCHAR wszBuffer[MAX_PATH];
     static const WCHAR wszFriendlyName[] = {'F','r','i','e','n','d','l','y','N','a','m','e',0};
     LONG received = sizeof(wszFriendlyName);
@@ -681,7 +681,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(EnumMonikerImpl, iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -703,7 +703,7 @@
  */
 static ULONG WINAPI DEVENUM_IEnumMoniker_AddRef(LPENUMMONIKER iface)
 {
-    ICOM_THIS(EnumMonikerImpl, iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     TRACE("\n");
 
@@ -717,7 +717,7 @@
  */
 static ULONG WINAPI DEVENUM_IEnumMoniker_Release(LPENUMMONIKER iface)
 {
-    ICOM_THIS(EnumMonikerImpl, iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     TRACE("\n");
 
@@ -736,7 +736,7 @@
     LONG res;
     ULONG fetched = 0;
     MediaCatMoniker * pMoniker;
-    ICOM_THIS(EnumMonikerImpl, iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     TRACE("(%ld, %p, %p)\n", celt, rgelt, pceltFetched);
 
@@ -775,7 +775,7 @@
 
 static HRESULT WINAPI DEVENUM_IEnumMoniker_Skip(LPENUMMONIKER iface, ULONG celt)
 {
-    ICOM_THIS(EnumMonikerImpl, iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     TRACE("(%ld)\n", celt);
 
@@ -786,7 +786,7 @@
 
 static HRESULT WINAPI DEVENUM_IEnumMoniker_Reset(LPENUMMONIKER iface)
 {
-    ICOM_THIS(EnumMonikerImpl, iface);
+    EnumMonikerImpl *This = (EnumMonikerImpl *)iface;
 
     TRACE("()\n");
 
diff --git a/dlls/devenum/parsedisplayname.c b/dlls/devenum/parsedisplayname.c
index 88775a1..eb8cb07 100644
--- a/dlls/devenum/parsedisplayname.c
+++ b/dlls/devenum/parsedisplayname.c
@@ -32,7 +32,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(ParseDisplayNameImpl, iface);
+    ParseDisplayNameImpl *This = (ParseDisplayNameImpl *)iface;
     TRACE("\n\tIID:\t%s\n",debugstr_guid(riid));
 
     if (This == NULL || ppvObj == NULL) return E_POINTER;
@@ -54,7 +54,7 @@
  */
 static ULONG WINAPI DEVENUM_IParseDisplayName_AddRef(LPPARSEDISPLAYNAME iface)
 {
-    ICOM_THIS(ParseDisplayNameImpl, iface);
+    ParseDisplayNameImpl *This = (ParseDisplayNameImpl *)iface;
     TRACE("\n");
 
     if (This == NULL) return E_POINTER;
@@ -71,7 +71,7 @@
  */
 static ULONG WINAPI DEVENUM_IParseDisplayName_Release(LPPARSEDISPLAYNAME iface)
 {
-    ICOM_THIS(ParseDisplayNameImpl, iface);
+    ParseDisplayNameImpl *This = (ParseDisplayNameImpl *)iface;
     ULONG ref;
     TRACE("\n");
 
diff --git a/dlls/dmband/dmband_main.c b/dlls/dmband/dmband_main.c
index 86d8994..2980a58 100644
--- a/dlls/dmband/dmband_main.c
+++ b/dlls/dmband/dmband_main.c
@@ -32,30 +32,30 @@
  */
  
 static HRESULT WINAPI BandCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n",This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI BandCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI BandCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI BandCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicBandImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI BandCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -76,31 +76,31 @@
  */
  
 static HRESULT WINAPI BandTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI BandTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI BandTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI BandTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicBandTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI BandTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dmcompos/composer.c b/dlls/dmcompos/composer.c
index 0ac39a2..4d5db02 100644
--- a/dlls/dmcompos/composer.c
+++ b/dlls/dmcompos/composer.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicComposerImpl IUnknown part: */
 HRESULT WINAPI IDirectMusicComposerImpl_QueryInterface (LPDIRECTMUSICCOMPOSER iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -37,13 +37,13 @@
 }
 
 ULONG WINAPI IDirectMusicComposerImpl_AddRef (LPDIRECTMUSICCOMPOSER iface) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicComposerImpl_Release (LPDIRECTMUSICCOMPOSER iface) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -54,37 +54,37 @@
 
 /* IDirectMusicComposerImpl IDirectMusicComposer part: */
 HRESULT WINAPI IDirectMusicComposerImpl_ComposeSegmentFromTemplate (LPDIRECTMUSICCOMPOSER iface, IDirectMusicStyle* pStyle, IDirectMusicSegment* pTemplate, WORD wActivity, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppSegment) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	FIXME("(%p, %p, %p, %d, %p, %p): stub\n", This, pStyle, pTemplate, wActivity, pChordMap, ppSegment);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicComposerImpl_ComposeSegmentFromShape (LPDIRECTMUSICCOMPOSER iface, IDirectMusicStyle* pStyle, WORD wNumMeasures, WORD wShape, WORD wActivity, BOOL fIntro, BOOL fEnd, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppSegment) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	FIXME("(%p, %p, %d, %d, %d, %d, %d, %p, %p): stub\n", This, pStyle, wNumMeasures, wShape, wActivity, fIntro, fEnd, pChordMap, ppSegment);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicComposerImpl_ComposeTransition (LPDIRECTMUSICCOMPOSER iface, IDirectMusicSegment* pFromSeg, IDirectMusicSegment* pToSeg, MUSIC_TIME mtTime, WORD wCommand, DWORD dwFlags, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppTransSeg) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	FIXME("(%p, %p, %p, %ld, %d, %ld, %p, %p): stub\n", This, pFromSeg, pToSeg, mtTime, wCommand, dwFlags, pChordMap, ppTransSeg);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicComposerImpl_AutoTransition (LPDIRECTMUSICCOMPOSER iface, IDirectMusicPerformance* pPerformance, IDirectMusicSegment* pToSeg, WORD wCommand, DWORD dwFlags, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppTransSeg, IDirectMusicSegmentState** ppToSegState, IDirectMusicSegmentState** ppTransSegState) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	FIXME("(%p, %p, %d, %ld, %p, %p, %p, %p): stub\n", This, pPerformance, wCommand, dwFlags, pChordMap, ppTransSeg, ppToSegState, ppTransSegState);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicComposerImpl_ComposeTemplateFromShape (LPDIRECTMUSICCOMPOSER iface, WORD wNumMeasures, WORD wShape, BOOL fIntro, BOOL fEnd, WORD wEndLength, IDirectMusicSegment** ppTemplate) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	FIXME("(%p, %d, %d, %d, %d, %d, %p): stub\n", This, wNumMeasures, wShape, fIntro, fEnd, wEndLength, ppTemplate);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicComposerImpl_ChangeChordMap (LPDIRECTMUSICCOMPOSER iface, IDirectMusicSegment* pSegment, BOOL fTrackScale, IDirectMusicChordMap* pChordMap) {
-	ICOM_THIS(IDirectMusicComposerImpl,iface);
+	IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface;
 	FIXME("(%p, %p, %d, %p): stub\n", This, pSegment, fTrackScale, pChordMap);
 	return S_OK;
 }
diff --git a/dlls/dmcompos/dmcompos_main.c b/dlls/dmcompos/dmcompos_main.c
index ccc17a6..f682434 100644
--- a/dlls/dmcompos/dmcompos_main.c
+++ b/dlls/dmcompos/dmcompos_main.c
@@ -31,30 +31,30 @@
  *		DirectMusicChordMap ClassFactory
  */
 static HRESULT WINAPI ChordMapCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ChordMapCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ChordMapCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ChordMapCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicChordMapImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI ChordMapCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -73,30 +73,30 @@
  *		DirectMusicComposer ClassFactory
  */
 static HRESULT WINAPI ComposerCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n",This,debugstr_dmguid(riid),ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ComposerCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ComposerCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ComposerCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicComposerImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI ComposerCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -115,30 +115,30 @@
  *		DirectMusicChordMapTrack ClassFactory
  */
 static HRESULT WINAPI ChordMapTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n",This,debugstr_dmguid(riid),ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ChordMapTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ChordMapTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ChordMapTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicChordMapTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI ChordMapTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -157,24 +157,24 @@
  *		DirectMusicTemplate ClassFactory
  */
 static HRESULT WINAPI TemplateCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI TemplateCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI TemplateCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI TemplateCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing yet */
 	WARN("(%p, %s,%p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -182,7 +182,7 @@
 }
 
 static HRESULT WINAPI TemplateCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -201,30 +201,30 @@
  *		DirectMusicSignPostTrack ClassFactory
  */
 static HRESULT WINAPI SignPostTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n",This,debugstr_dmguid(riid),ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SignPostTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SignPostTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SignPostTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSignPostTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SignPostTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dmcompos/signposttrack.c b/dlls/dmcompos/signposttrack.c
index c9496a2..36cb470 100644
--- a/dlls/dmcompos/signposttrack.c
+++ b/dlls/dmcompos/signposttrack.c
@@ -106,7 +106,7 @@
 }
 
 HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID) {
-	ICOM_THIS(IDirectMusicSignPostTrack,iface);
+	IDirectMusicSignPostTrack *This = (IDirectMusicSignPostTrack *)iface;
 	FIXME("(%p, %p, %ld, %ld, %ld, %ld, %p, %p, %ld): stub\n", This, pStateData, mtStart, mtEnd, mtOffset, dwFlags, pPerf, pSegSt, dwVirtualID);
 	return S_OK;
 }
@@ -168,7 +168,7 @@
 }
 
 HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack) {
-	ICOM_THIS(IDirectMusicSignPostTrack,iface);
+	IDirectMusicSignPostTrack *This = (IDirectMusicSignPostTrack *)iface;
 	FIXME("(%p, %p, %ld, %p): stub\n", This, pContext, dwTrackGroup, ppResultTrack);
 	return S_OK;
 }
diff --git a/dlls/dmime/dmime_main.c b/dlls/dmime/dmime_main.c
index 163b11d..7428797 100644
--- a/dlls/dmime/dmime_main.c
+++ b/dlls/dmime/dmime_main.c
@@ -33,30 +33,30 @@
  *		DirectMusicPerformance ClassFactory
  */
 static HRESULT WINAPI PerformanceCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI PerformanceCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI PerformanceCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI PerformanceCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicPerformanceImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI PerformanceCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -75,30 +75,30 @@
  *		DirectMusicSegment ClassFactory
  */
 static HRESULT WINAPI SegmentCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SegmentCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SegmentCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SegmentCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSegmentImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SegmentCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -117,30 +117,30 @@
  *		DirectMusicSegmentState ClassFactory
  */
 static HRESULT WINAPI SegmentStateCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SegmentStateCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SegmentStateCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SegmentStateCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSegmentStateImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SegmentStateCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -159,30 +159,30 @@
  *		DirectMusicGraph ClassFactory
  */
 static HRESULT WINAPI GraphCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI GraphCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI GraphCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI GraphCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicGraphImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI GraphCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -201,30 +201,30 @@
  *		DirectMusicTempoTrack ClassFactory
  */
 static HRESULT WINAPI TempoTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI TempoTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI TempoTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI TempoTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicTempoTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI TempoTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -243,30 +243,30 @@
  *		DirectMusicSeqTrack ClassFactory
  */
 static HRESULT WINAPI SeqTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SeqTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SeqTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SeqTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSeqTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SeqTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -285,30 +285,30 @@
  *		DirectMusicSysExTrack ClassFactory
  */
 static HRESULT WINAPI SysExTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SysExTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SysExTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SysExTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSysExTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SysExTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -327,30 +327,30 @@
  *		DirectMusicTimeSigTrack ClassFactory
  */
 static HRESULT WINAPI TimeSigTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI TimeSigTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI TimeSigTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI TimeSigTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicTimeSigTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI TimeSigTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -369,30 +369,30 @@
  *		DirectMusicParamControlTrack ClassFactory
  */
 static HRESULT WINAPI ParamControlTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ParamControlTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ParamControlTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ParamControlTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicParamControlTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI ParamControlTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -411,30 +411,30 @@
  *		DirectMusicMarkerTrack ClassFactory
  */
 static HRESULT WINAPI MarkerTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI MarkerTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI MarkerTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI MarkerTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicMarkerTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI MarkerTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -453,30 +453,30 @@
  *		DirectMusicLyricsTrack ClassFactory
  */
 static HRESULT WINAPI LyricsTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI LyricsTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI LyricsTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI LyricsTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicLyricsTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI LyricsTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -496,30 +496,30 @@
  *		DirectMusicSegTriggerTrack ClassFactory
  */
 static HRESULT WINAPI SegTriggerTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SegTriggerTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SegTriggerTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SegTriggerTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSegTriggerTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SegTriggerTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -538,30 +538,30 @@
  *		DirectMusicAudioPath ClassFactory
  */
 static HRESULT WINAPI AudioPathCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI AudioPathCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI AudioPathCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI AudioPathCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicAudioPathImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI AudioPathCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -580,30 +580,30 @@
  *		DirectMusicWaveTrack ClassFactory
  */
 static HRESULT WINAPI WaveTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI WaveTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI WaveTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI WaveTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicWaveTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI WaveTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dmime/patterntrack.c b/dlls/dmime/patterntrack.c
index 6a9c6f3..4287ca8 100644
--- a/dlls/dmime/patterntrack.c
+++ b/dlls/dmime/patterntrack.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicPatternTrack IUnknown parts follow: */
 HRESULT WINAPI IDirectMusicPatternTrackImpl_QueryInterface (LPDIRECTMUSICPATTERNTRACK iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
+	IDirectMusicPatternTrackImpl *This = (IDirectMusicPatternTrackImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -38,13 +38,13 @@
 }
 
 ULONG WINAPI IDirectMusicPatternTrackImpl_AddRef (LPDIRECTMUSICPATTERNTRACK iface) {
-	ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
+	IDirectMusicPatternTrackImpl *This = (IDirectMusicPatternTrackImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicPatternTrackImpl_Release (LPDIRECTMUSICPATTERNTRACK iface) {
-	ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
+	IDirectMusicPatternTrackImpl *This = (IDirectMusicPatternTrackImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -55,19 +55,19 @@
 
 /* IDirectMusicPatternTrack Interface follow: */
 HRESULT WINAPI IDirectMusicPatternTrackImpl_CreateSegment (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicStyle* pStyle, IDirectMusicSegment** ppSegment) {
-	ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
+	IDirectMusicPatternTrackImpl *This = (IDirectMusicPatternTrackImpl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pStyle, ppSegment);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPatternTrackImpl_SetVariation (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, DWORD dwVariationFlags, DWORD dwPart) {
-	ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
+	IDirectMusicPatternTrackImpl *This = (IDirectMusicPatternTrackImpl *)iface;
 	FIXME("(%p, %p, %ld, %ld): stub\n", This, pSegState, dwVariationFlags, dwPart);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPatternTrackImpl_SetPatternByName (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, WCHAR* wszName, IDirectMusicStyle* pStyle, DWORD dwPatternType, DWORD* pdwLength) {
-	ICOM_THIS(IDirectMusicPatternTrackImpl,iface);
+	IDirectMusicPatternTrackImpl *This = (IDirectMusicPatternTrackImpl *)iface;
 	FIXME("(%p, %p, %p, %p, %ld, %p): stub\n", This, pSegState, wszName, pStyle, dwPatternType, pdwLength);
 	return S_OK;
 }
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 46bb9a7..2a7bbc2 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -160,7 +160,7 @@
 
 /* IDirectMusicPerformance8 IUnknown part: */
 HRESULT WINAPI IDirectMusicPerformance8Impl_QueryInterface (LPDIRECTMUSICPERFORMANCE8 iface, REFIID riid, LPVOID *ppobj) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   TRACE("(%p, %s,%p)\n", This, debugstr_dmguid(riid), ppobj);
 
   if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -176,13 +176,13 @@
 }
 
 ULONG WINAPI IDirectMusicPerformance8Impl_AddRef (LPDIRECTMUSICPERFORMANCE8 iface) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   TRACE("(%p): AddRef from %ld\n", This, This->ref);
   return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicPerformance8Impl_Release (LPDIRECTMUSICPERFORMANCE8 iface) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   ULONG ref = --This->ref;
   TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
   if (ref == 0) {
@@ -194,7 +194,7 @@
 
 /* IDirectMusicPerformanceImpl IDirectMusicPerformance Interface part: */
 HRESULT WINAPI IDirectMusicPerformance8Impl_Init (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusic** ppDirectMusic, LPDIRECTSOUND pDirectSound, HWND hWnd) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	FIXME("(iface = %p, dmusic = %p, dsound = %p, hwnd = %p)\n", This, ppDirectMusic, pDirectSound, hWnd);
  	if (This->pDirectMusic || This->pDirectSound)
@@ -241,32 +241,32 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegment (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegment* pSegment, DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState** ppSegmentState) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %ld, %lli, %p): stub\n", This, pSegment, dwFlags, i64StartTime, ppSegmentState);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_Stop (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegment* pSegment, IDirectMusicSegmentState* pSegmentState, MUSIC_TIME mtTime, DWORD dwFlags) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %p, %ld, %ld): stub\n", This, pSegment, pSegmentState, mtTime, dwFlags);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetSegmentState (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegmentState** ppSegmentState, MUSIC_TIME mtTime) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p,%p, %ld): stub\n", This, ppSegmentState, mtTime);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SetPrepareTime (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwMilliSeconds) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   TRACE("(%p, %ld)\n", This, dwMilliSeconds);
   This->dwPrepareTime = dwMilliSeconds;
   return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetPrepareTime (LPDIRECTMUSICPERFORMANCE8 iface, DWORD* pdwMilliSeconds) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   TRACE("(%p, %p)\n", This, pdwMilliSeconds);
   if (NULL == pdwMilliSeconds) {
     return E_POINTER;
@@ -276,14 +276,14 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SetBumperLength (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwMilliSeconds) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   TRACE("(%p, %ld)\n", This, dwMilliSeconds);
   This->dwBumperLength =  dwMilliSeconds;
   return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetBumperLength (LPDIRECTMUSICPERFORMANCE8 iface, DWORD* pdwMilliSeconds) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   TRACE("(%p, %p)\n", This, pdwMilliSeconds);
   if (NULL == pdwMilliSeconds) {
     return E_POINTER;
@@ -293,7 +293,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SendPMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_PMSG* pPMSG) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   DMUS_PMSGItem* pItem = NULL;
   DMUS_PMSGItem* it = NULL;
   DMUS_PMSGItem* prev_it = NULL;
@@ -346,25 +346,25 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToReferenceTime (LPDIRECTMUSICPERFORMANCE8 iface, MUSIC_TIME mtTime, REFERENCE_TIME* prtTime) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %ld, %p): stub\n", This, mtTime, prtTime);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_ReferenceToMusicTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME rtTime, MUSIC_TIME* pmtTime) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %lli, %p): stub\n", This, rtTime, pmtTime);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_IsPlaying (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegment* pSegment, IDirectMusicSegmentState* pSegState) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pSegment, pSegState);
 	return S_FALSE;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME* prtNow, MUSIC_TIME* pmtNow) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   HRESULT hr = S_OK;
   REFERENCE_TIME rtCur = 0;
 
@@ -384,7 +384,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_AllocPMsg (LPDIRECTMUSICPERFORMANCE8 iface, ULONG cb, DMUS_PMSG** ppPMSG) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   DMUS_PMSGItem* pItem = NULL;
   
   FIXME("(%p, %ld, %p): stub\n", This, cb, ppPMSG);
@@ -405,7 +405,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_FreePMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_PMSG* pPMSG) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   DMUS_PMSGItem* pItem = NULL;
   
   FIXME("(%p, %p): stub\n", This, pPMSG);
@@ -432,7 +432,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetGraph (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicGraph** ppGraph) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   FIXME("(%p, %p): to check\n", This, ppGraph);
   if (NULL != This->pToolGraph) {
     *ppGraph = (LPDIRECTMUSICGRAPH) This->pToolGraph; 
@@ -444,7 +444,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SetGraph (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicGraph* pGraph) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   
   FIXME("(%p, %p): to check\n", This, pGraph);
   
@@ -460,7 +460,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SetNotificationHandle (LPDIRECTMUSICPERFORMANCE8 iface, HANDLE hNotification, REFERENCE_TIME rtMinimum) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   FIXME("(%p, %p, %lli): stub\n", This, hNotification, rtMinimum);
   This->hNotification = hNotification;
   if (rtMinimum) This->rtMinimum = rtMinimum;
@@ -468,7 +468,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetNotificationPMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_NOTIFICATION_PMSG** ppNotificationPMsg) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   
   
   FIXME("(%p, %p): stub\n", This, ppNotificationPMsg);
@@ -483,26 +483,26 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_AddNotificationType (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidNotificationType) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_RemoveNotificationType (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidNotificationType) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidNotificationType));
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_AddPort (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicPort* pPort) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pPort);
 	IDirectMusicPort_AddRef (pPort);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_RemovePort (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicPort* pPort) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pPort);
 	IDirectMusicPort_Release (pPort);
 	return S_OK;
@@ -510,7 +510,7 @@
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannelBlock (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwBlockNum, IDirectMusicPort* pPort, DWORD dwGroup) {
 	int i, j, range /* min value in range */;
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	FIXME("(%p, %ld, %p, %ld): semi-stub\n", This, dwBlockNum, pPort, dwGroup-1);
 	range = 16 * dwBlockNum;
@@ -528,7 +528,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannel (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwPChannel, IDirectMusicPort* pPort, DWORD dwGroup, DWORD dwMChannel) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	TRACE("(%p, %ld, %p, %ld, %ld)\n", This, dwPChannel, pPort, dwGroup, dwMChannel);
 	This->PChannel[dwPChannel].port = pPort; 
@@ -539,37 +539,37 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_PChannelInfo (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwPChannel, IDirectMusicPort** ppPort, DWORD* pdwGroup, DWORD* pdwMChannel) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %ld, %p, %p, %p): stub\n", This, dwPChannel, ppPort, pdwGroup, pdwMChannel);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_DownloadInstrument (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicInstrument* pInst, DWORD dwPChannel, IDirectMusicDownloadedInstrument** ppDownInst, DMUS_NOTERANGE* pNoteRanges, DWORD dwNumNoteRanges, IDirectMusicPort** ppPort, DWORD* pdwGroup, DWORD* pdwMChannel) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %ld, %p, %p, %ld, %p, %p, %p): stub\n", This, pInst, dwPChannel, ppDownInst, pNoteRanges, dwNumNoteRanges, ppPort, pdwGroup, pdwMChannel);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_Invalidate (LPDIRECTMUSICPERFORMANCE8 iface, MUSIC_TIME mtTime, DWORD dwFlags) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %ld, %ld): stub\n", This, mtTime, dwFlags);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %s, %ld, %ld, %ld, %p, %p): stub\n", This, debugstr_dmguid(rguidType), dwGroupBits, dwIndex, mtTime, pmtNext, pParam);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SetParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void* pParam) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %s, %ld, %ld, %ld, %p): stub\n", This, debugstr_dmguid(rguidType), dwGroupBits, dwIndex, mtTime, pParam);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetGlobalParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, void* pParam, DWORD dwSize) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	TRACE("(%p, %s, %p, %ld): stub\n", This, debugstr_dmguid(rguidType), pParam, dwSize);
 	
@@ -586,7 +586,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SetGlobalParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, void* pParam, DWORD dwSize) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	TRACE("(%p, %s, %p, %ld)\n", This, debugstr_dmguid(rguidType), pParam, dwSize);
 	
@@ -611,26 +611,26 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetLatencyTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME* prtTime) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	TRACE("(%p, %p): stub\n", This, prtTime);
 	*prtTime = This->rtLatencyTime;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetQueueTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME* prtTime) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, prtTime);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_AdjustTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME rtAmount) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %lli): stub\n", This, rtAmount);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_CloseDown (LPDIRECTMUSICPERFORMANCE8 iface) {
-  ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+  IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
   FIXME("(%p): stub\n", This);
   if (PostMessageToProcessMsgThread(This, PROCESSMSG_EXIT)) {
     WaitForSingleObject(This->procThread, INFINITE);
@@ -649,31 +649,31 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetResolvedTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME rtTime, REFERENCE_TIME* prtResolved, DWORD dwTimeResolveFlags) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %lli, %p, %ld): stub\n", This, rtTime, prtResolved, dwTimeResolveFlags);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_MIDIToMusic (LPDIRECTMUSICPERFORMANCE8 iface, BYTE bMIDIValue, DMUS_CHORD_KEY* pChord, BYTE bPlayMode, BYTE bChordLevel, WORD* pwMusicValue) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %d, %p, %d, %d, %p): stub\n", This, bMIDIValue, pChord, bPlayMode, bChordLevel, pwMusicValue);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToMIDI (LPDIRECTMUSICPERFORMANCE8 iface, WORD wMusicValue, DMUS_CHORD_KEY* pChord, BYTE bPlayMode, BYTE bChordLevel, BYTE* pbMIDIValue) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %d, %p, %d, %d, %p): stub\n", This, wMusicValue, pChord, bPlayMode, bChordLevel, pbMIDIValue);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_TimeToRhythm (LPDIRECTMUSICPERFORMANCE8 iface, MUSIC_TIME mtTime, DMUS_TIMESIGNATURE* pTimeSig, WORD* pwMeasure, BYTE* pbBeat, BYTE* pbGrid, short* pnOffset) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %ld, %p, %p, %p, %p, %p): stub\n", This, mtTime, pTimeSig, pwMeasure, pbBeat, pbGrid, pnOffset);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_RhythmToTime (LPDIRECTMUSICPERFORMANCE8 iface, WORD wMeasure, BYTE bBeat, BYTE bGrid, short nOffset, DMUS_TIMESIGNATURE* pTimeSig, MUSIC_TIME* pmtTime) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %d, %d, %d, %i, %p, %p): stub\n", This, wMeasure, bBeat, bGrid, nOffset, pTimeSig, pmtTime);
 	return S_OK;
 }
@@ -691,7 +691,7 @@
 	IDirectSound* dsound = NULL;
 	HRESULT hr = S_OK;
 	
-        ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+        IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %p, %p, %lx, %lu, %lx, %p): to check\n", This, ppDirectMusic, ppDirectSound, hWnd, dwDefaultPathType, dwPChannelCount, dwFlags, pParams);
 
 	if (This->pDirectMusic || This->pDirectSound)
@@ -740,19 +740,19 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegmentEx (LPDIRECTMUSICPERFORMANCE8 iface, IUnknown* pSource, WCHAR* pwzSegmentName, IUnknown* pTransition, DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState** ppSegmentState, IUnknown* pFrom, IUnknown* pAudioPath) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %p, %p, %ld, %lli, %p, %p, %p): stub\n", This, pSource, pwzSegmentName, pTransition, dwFlags, i64StartTime, ppSegmentState, pFrom, pAudioPath);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_StopEx (LPDIRECTMUSICPERFORMANCE8 iface, IUnknown* pObjectToStop, __int64 i64StopTime, DWORD dwFlags) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %lli, %ld): stub\n", This, pObjectToStop, i64StopTime, dwFlags);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_ClonePMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_PMSG* pSourcePMSG, DMUS_PMSG** ppCopyPMSG) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pSourcePMSG, ppCopyPMSG);
 	return S_OK;
 }
@@ -761,7 +761,7 @@
 	IDirectMusicAudioPathImpl *default_path;
 	IDirectMusicAudioPath *pPath;
 
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	FIXME("(%p, %p, %d, %p): stub\n", This, pSourceConfig, fActivate, ppNewPath);
 
 	if (NULL == ppNewPath) {
@@ -790,7 +790,7 @@
 	LPDIRECTSOUNDBUFFER buffer;
 	HRESULT hr = S_OK;
 
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 	
 	FIXME("(%p)->(%ld, %ld, %d, %p): semi-stub\n", This, dwType, dwPChannelCount, fActivate, ppNewPath);
 
@@ -875,7 +875,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_SetDefaultAudioPath (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicAudioPath* pAudioPath) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	FIXME("(%p, %p): semi-stub\n", This, pAudioPath);
 	if (NULL != This->pDefaultPath) {
@@ -893,7 +893,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetDefaultAudioPath (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicAudioPath** ppAudioPath) {
-    ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+    IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	FIXME("(%p, %p): semi-stub (%p)\n", This, ppAudioPath, This->pDefaultPath);
 
@@ -907,7 +907,7 @@
 }
 
 HRESULT WINAPI IDirectMusicPerformance8Impl_GetParamEx (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, DWORD dwTrackID, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam) {
-	ICOM_THIS(IDirectMusicPerformance8Impl,iface);
+	IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface;
 
 	FIXME("(%p, %s, %ld, %ld, %ld, %ld, %p, %p): stub\n", This, debugstr_dmguid(rguidType), dwTrackID, dwGroupBits, dwIndex, mtTime, pmtNext, pParam);
 
diff --git a/dlls/dmime/segmentstate.c b/dlls/dmime/segmentstate.c
index 7a4f0dc..172ccb4 100644
--- a/dlls/dmime/segmentstate.c
+++ b/dlls/dmime/segmentstate.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicSegmentState8Impl IUnknown part: */
 HRESULT WINAPI IDirectMusicSegmentState8Impl_QueryInterface (LPDIRECTMUSICSEGMENTSTATE8 iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID(riid, &IID_IUnknown) || 
@@ -38,13 +38,13 @@
 }
 
 ULONG WINAPI IDirectMusicSegmentState8Impl_AddRef (LPDIRECTMUSICSEGMENTSTATE8 iface) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicSegmentState8Impl_Release (LPDIRECTMUSICSEGMENTSTATE8 iface) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -55,44 +55,44 @@
 
 /* IDirectMusicSegmentState8Impl IDirectMusicSegmentState part: */
 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetRepeats (LPDIRECTMUSICSEGMENTSTATE8 iface,  DWORD* pdwRepeats) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pdwRepeats);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSegment (LPDIRECTMUSICSEGMENTSTATE8 iface, IDirectMusicSegment** ppSegment) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, ppSegment);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartTime (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pmtStart);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSeek (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtSeek) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pmtSeek);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartPoint (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pmtStart);
 	return S_OK;
 }
 
 /* IDirectMusicSegmentState8Impl IDirectMusicSegmentState8 part: */
 HRESULT WINAPI IDirectMusicSegmentState8Impl_SetTrackConfig (LPDIRECTMUSICSEGMENTSTATE8 iface, REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn, DWORD dwFlagsOff) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	FIXME("(%p, %s, %ld, %ld, %ld, %ld): stub\n", This, debugstr_dmguid(rguidTrackClassID), dwGroupBits, dwIndex, dwFlagsOn, dwFlagsOff);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSegmentState8Impl_GetObjectInPath (LPDIRECTMUSICSEGMENTSTATE8 iface, DWORD dwPChannel, DWORD dwStage, DWORD dwBuffer, REFGUID guidObject, DWORD dwIndex, REFGUID iidInterface, void** ppObject) {
-	ICOM_THIS(IDirectMusicSegmentState8Impl,iface);
+	IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface;
 	FIXME("(%p, %ld, %ld, %ld, %s, %ld, %s, %p): stub\n", This, dwPChannel, dwStage, dwBuffer, debugstr_dmguid(guidObject), dwIndex, debugstr_dmguid(iidInterface), ppObject);
 	return S_OK;
 }
diff --git a/dlls/dmime/tool.c b/dlls/dmime/tool.c
index 60f795b..1927927 100644
--- a/dlls/dmime/tool.c
+++ b/dlls/dmime/tool.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicTool8Impl IUnknown part: */
 HRESULT WINAPI IDirectMusicTool8Impl_QueryInterface (LPDIRECTMUSICTOOL8 iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 	if (IsEqualIID (riid, &IID_IUnknown) || 
 	    IsEqualIID (riid, &IID_IDirectMusicTool) ||
@@ -37,13 +37,13 @@
 }
 
 ULONG WINAPI IDirectMusicTool8Impl_AddRef (LPDIRECTMUSICTOOL8 iface) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	TRACE("(%p) : AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicTool8Impl_Release (LPDIRECTMUSICTOOL8 iface) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -54,44 +54,44 @@
 
 /* IDirectMusicTool8Impl IDirectMusicTool part: */
 HRESULT WINAPI IDirectMusicTool8Impl_Init (LPDIRECTMUSICTOOL8 iface, IDirectMusicGraph* pGraph) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pGraph);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicTool8Impl_GetMsgDeliveryType (LPDIRECTMUSICTOOL8 iface, DWORD* pdwDeliveryType) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pdwDeliveryType);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicTool8Impl_GetMediaTypeArraySize (LPDIRECTMUSICTOOL8 iface, DWORD* pdwNumElements) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pdwNumElements);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicTool8Impl_GetMediaTypes (LPDIRECTMUSICTOOL8 iface, DWORD** padwMediaTypes, DWORD dwNumElements) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	FIXME("(%p, %p, %ld): stub\n", This, padwMediaTypes, dwNumElements);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicTool8Impl_ProcessPMsg (LPDIRECTMUSICTOOL8 iface, IDirectMusicPerformance* pPerf, DMUS_PMSG* pPMSG) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pPerf, pPMSG);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicTool8Impl_Flush (LPDIRECTMUSICTOOL8 iface, IDirectMusicPerformance* pPerf, DMUS_PMSG* pPMSG, REFERENCE_TIME rtTime) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	FIXME("(%p, %p, %p, %lli): stub\n", This, pPerf, pPMSG, rtTime);
 	return S_OK;
 }
 
 /* IDirectMusicTool8Impl IDirectMusicTool8 part: */
 HRESULT WINAPI IDirectMusicTool8Impl_Clone (LPDIRECTMUSICTOOL8 iface, IDirectMusicTool** ppTool) {
-	ICOM_THIS(IDirectMusicTool8Impl,iface);
+	IDirectMusicTool8Impl *This = (IDirectMusicTool8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, ppTool);
 	return S_OK;
 }
diff --git a/dlls/dmloader/classfactory.c b/dlls/dmloader/classfactory.c
index bbd80a4..8d718b9 100644
--- a/dlls/dmloader/classfactory.c
+++ b/dlls/dmloader/classfactory.c
@@ -26,7 +26,7 @@
  * IDirectMusicLoaderCF implementation
  */
 HRESULT WINAPI IDirectMusicLoaderCF_QueryInterface (LPCLASSFACTORY iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicLoaderCF, iface);
+	IDirectMusicLoaderCF *This = (IDirectMusicLoaderCF *)iface;
 	
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -41,13 +41,13 @@
 }
 
 ULONG WINAPI IDirectMusicLoaderCF_AddRef (LPCLASSFACTORY iface) {
-	ICOM_THIS(IDirectMusicLoaderCF, iface);
+	IDirectMusicLoaderCF *This = (IDirectMusicLoaderCF *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->dwRef);
 	return InterlockedIncrement (&This->dwRef);
 }
 
 ULONG WINAPI IDirectMusicLoaderCF_Release (LPCLASSFACTORY iface) {
-	ICOM_THIS(IDirectMusicLoaderCF, iface);
+	IDirectMusicLoaderCF *This = (IDirectMusicLoaderCF *)iface;
 	
 	DWORD dwRef = InterlockedDecrement (&This->dwRef);
 	TRACE("(%p): ReleaseRef to %ld\n", This, dwRef);
@@ -61,7 +61,7 @@
 }
 
 HRESULT WINAPI IDirectMusicLoaderCF_CreateInstance (LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicLoaderCF, iface);
+	IDirectMusicLoaderCF *This = (IDirectMusicLoaderCF *)iface;
 	
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	if (pOuter) {
@@ -73,7 +73,7 @@
 }
 
 HRESULT WINAPI IDirectMusicLoaderCF_LockServer (LPCLASSFACTORY iface, BOOL dolock) {
-	ICOM_THIS(IDirectMusicLoaderCF, iface);
+	IDirectMusicLoaderCF *This = (IDirectMusicLoaderCF *)iface;
 	TRACE("(%p, %d)\n", This, dolock);
 	if (dolock == TRUE)
 		InterlockedIncrement (&dwDirectMusicLoader);
@@ -113,7 +113,7 @@
  * IDirectMusicContainerCF implementation
  */
 HRESULT WINAPI IDirectMusicContainerCF_QueryInterface (LPCLASSFACTORY iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicContainerCF, iface);
+	IDirectMusicContainerCF *This = (IDirectMusicContainerCF *)iface;
 	
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -128,13 +128,13 @@
 }
 
 ULONG WINAPI IDirectMusicContainerCF_AddRef (LPCLASSFACTORY iface) {
-	ICOM_THIS(IDirectMusicContainerCF, iface);
+	IDirectMusicContainerCF *This = (IDirectMusicContainerCF *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->dwRef);
 	return InterlockedIncrement (&This->dwRef);
 }
 
 ULONG WINAPI IDirectMusicContainerCF_Release (LPCLASSFACTORY iface) {
-	ICOM_THIS(IDirectMusicContainerCF, iface);
+	IDirectMusicContainerCF *This = (IDirectMusicContainerCF *)iface;
 	
 	DWORD dwRef = InterlockedDecrement (&This->dwRef);
 	TRACE("(%p): ReleaseRef to %ld\n", This, dwRef);
@@ -148,7 +148,7 @@
 }
 
 HRESULT WINAPI IDirectMusicContainerCF_CreateInstance (LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicContainerCF, iface);
+	IDirectMusicContainerCF *This = (IDirectMusicContainerCF *)iface;
 
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	if (pOuter) {
@@ -160,7 +160,7 @@
 }
 
 HRESULT WINAPI IDirectMusicContainerCF_LockServer (LPCLASSFACTORY iface, BOOL dolock) {
-	ICOM_THIS(IDirectMusicContainerCF, iface);
+	IDirectMusicContainerCF *This = (IDirectMusicContainerCF *)iface;
 	TRACE("(%p, %d)\n", This, dolock);
 	if (dolock == TRUE)
 		InterlockedIncrement (&dwDirectMusicContainer);
diff --git a/dlls/dmscript/dmscript_main.c b/dlls/dmscript/dmscript_main.c
index abd5685..6a58fde 100644
--- a/dlls/dmscript/dmscript_main.c
+++ b/dlls/dmscript/dmscript_main.c
@@ -31,24 +31,24 @@
  *		DirectMusicScriptAutoImplSegment ClassFactory
  */
 static HRESULT WINAPI ScriptAutoImplSegmentCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptAutoImplSegmentCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptAutoImplSegmentCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptAutoImplSegmentCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */	
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -56,7 +56,7 @@
 }
 
 static HRESULT WINAPI ScriptAutoImplSegmentCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -75,30 +75,30 @@
  *		DirectMusicScriptTrack ClassFactory
  */
 static HRESULT WINAPI ScriptTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicScriptTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI ScriptTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -117,24 +117,24 @@
  *		DirectMusicAudioVBScript ClassFactory
  */
 static HRESULT WINAPI AudioVBScriptCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI AudioVBScriptCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI AudioVBScriptCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI AudioVBScriptCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -142,7 +142,7 @@
 }
 
 static HRESULT WINAPI AudioVBScriptCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -161,30 +161,30 @@
  *		DirectMusicScript ClassFactory
  */
 static HRESULT WINAPI ScriptCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicScriptImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI ScriptCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -203,24 +203,24 @@
  *		DirectMusicScriptAutoImplPerformance ClassFactory
  */
 static HRESULT WINAPI ScriptAutoImplPerformanceCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptAutoImplPerformanceCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptAutoImplPerformanceCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptAutoImplPerformanceCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -228,7 +228,7 @@
 }
 
 static HRESULT WINAPI ScriptAutoImplPerformanceCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -247,24 +247,24 @@
  *		DirectMusicScriptSourceCodeLoader ClassFactory
  */
 static HRESULT WINAPI ScriptSourceCodeLoaderCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptSourceCodeLoaderCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptSourceCodeLoaderCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptSourceCodeLoaderCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -272,7 +272,7 @@
 }
 
 static HRESULT WINAPI ScriptSourceCodeLoaderCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -291,24 +291,24 @@
  *		DirectMusicScriptAutoImplSegmentState ClassFactory
  */
 static HRESULT WINAPI ScriptAutoImplSegmentStateCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptAutoImplSegmentStateCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptAutoImplSegmentStateCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptAutoImplSegmentStateCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -316,7 +316,7 @@
 }
 
 static HRESULT WINAPI ScriptAutoImplSegmentStateCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -335,24 +335,24 @@
  *		DirectMusicScriptAutoImplAudioPathConfig ClassFactory
  */
 static HRESULT WINAPI ScriptAutoImplAudioPathConfigCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptAutoImplAudioPathConfigCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptAutoImplAudioPathConfigCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptAutoImplAudioPathConfigCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -360,7 +360,7 @@
 }
 
 static HRESULT WINAPI ScriptAutoImplAudioPathConfigCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -379,24 +379,24 @@
  *		DirectMusicScriptAutoImplAudioPath ClassFactory
  */
 static HRESULT WINAPI ScriptAutoImplAudioPathCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptAutoImplAudioPathCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptAutoImplAudioPathCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptAutoImplAudioPathCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -404,7 +404,7 @@
 }
 
 static HRESULT WINAPI ScriptAutoImplAudioPathCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -423,24 +423,24 @@
  *		DirectMusicScriptAutoImplSong ClassFactory
  */
 static HRESULT WINAPI ScriptAutoImplSongCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ScriptAutoImplSongCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ScriptAutoImplSongCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ScriptAutoImplSongCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -448,7 +448,7 @@
 }
 
 static HRESULT WINAPI ScriptAutoImplSongCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dmstyle/dmstyle_main.c b/dlls/dmstyle/dmstyle_main.c
index 35f8ef3..7bb9c81 100644
--- a/dlls/dmstyle/dmstyle_main.c
+++ b/dlls/dmstyle/dmstyle_main.c
@@ -31,24 +31,24 @@
  *		DirectMusicSection ClassFactory
  */
 static HRESULT WINAPI SectionCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SectionCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SectionCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SectionCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	/* nothing here yet */
 	WARN("(%p, %s, %p): not found\n", This, debugstr_dmguid(riid), ppobj);
@@ -56,7 +56,7 @@
 }
 
 static HRESULT WINAPI SectionCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -75,30 +75,30 @@
  *		DirectMusicStyle ClassFactory
  */
 static HRESULT WINAPI StyleCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI StyleCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI StyleCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI StyleCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicStyleImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI StyleCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -117,30 +117,30 @@
  *		DirectMusicChordTrack ClassFactory
  */
 static HRESULT WINAPI ChordTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI ChordTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI ChordTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI ChordTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicChordTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI ChordTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -159,30 +159,30 @@
  *		DirectMusicCommandTrack ClassFactory
  */
 static HRESULT WINAPI CommandTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI CommandTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI CommandTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI CommandTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicCommandTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI CommandTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -201,30 +201,30 @@
  *		DirectMusicStyleTrack ClassFactory
  */
 static HRESULT WINAPI StyleTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI StyleTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI StyleTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI StyleTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicStyleTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI StyleTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -243,30 +243,30 @@
  *		DirectMusicMotifTrack ClassFactory
  */
 static HRESULT WINAPI MotifTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI MotifTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI MotifTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI MotifTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicMotifTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI MotifTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -285,30 +285,30 @@
  *		DirectMusicAuditionTrack ClassFactory
  */
 static HRESULT WINAPI AuditionTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI AuditionTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI AuditionTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI AuditionTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicAuditionTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI AuditionTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -327,30 +327,30 @@
  *		DirectMusicMuteTrack ClassFactory
  */
 static HRESULT WINAPI MuteTrackCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI MuteTrackCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI MuteTrackCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI MuteTrackCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicMuteTrack (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI MuteTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dmsynth/dmsynth_main.c b/dlls/dmsynth/dmsynth_main.c
index 1b7779c..cb7afb6 100644
--- a/dlls/dmsynth/dmsynth_main.c
+++ b/dlls/dmsynth/dmsynth_main.c
@@ -33,30 +33,30 @@
  *		DirectMusicSynth ClassFactory
  */
 static HRESULT WINAPI SynthCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SynthCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SynthCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SynthCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSynthImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SynthCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -75,30 +75,30 @@
  *		DirectMusicSynthSink ClassFactory
  */
 static HRESULT WINAPI SynthSinkCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI SynthSinkCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI SynthSinkCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI SynthSinkCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicSynthSinkImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI SynthSinkCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dmsynth/synth.c b/dlls/dmsynth/synth.c
index 29729c7..97e6bf2 100644
--- a/dlls/dmsynth/synth.c
+++ b/dlls/dmsynth/synth.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicSynth8Impl IUnknown part: */
 HRESULT WINAPI IDirectMusicSynth8Impl_QueryInterface (LPDIRECTMUSICSYNTH8 iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -38,13 +38,13 @@
 }
 
 ULONG WINAPI IDirectMusicSynth8Impl_AddRef (LPDIRECTMUSICSYNTH8 iface) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicSynth8Impl_Release (LPDIRECTMUSICSYNTH8 iface) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -55,139 +55,139 @@
 
 /* IDirectMusicSynth8Impl IDirectMusicSynth part: */
 HRESULT WINAPI IDirectMusicSynth8Impl_Open (LPDIRECTMUSICSYNTH8 iface, LPDMUS_PORTPARAMS pPortParams) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pPortParams);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_Close (LPDIRECTMUSICSYNTH8 iface) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p): stub\n", This);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_SetNumChannelGroups (LPDIRECTMUSICSYNTH8 iface, DWORD dwGroups) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %ld): stub\n", This, dwGroups);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_Download (LPDIRECTMUSICSYNTH8 iface, LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p, %p, %p): stub\n", This, phDownload, pvData, pbFree);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_Unload (LPDIRECTMUSICSYNTH8 iface, HANDLE hDownload, HRESULT (CALLBACK* lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, hDownload, hUserData);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_PlayBuffer (LPDIRECTMUSICSYNTH8 iface, REFERENCE_TIME rt, LPBYTE pbBuffer, DWORD cbBuffer) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %lli, %p, %ld): stub\n", This, rt, pbBuffer, cbBuffer);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_GetRunningStats (LPDIRECTMUSICSYNTH8 iface, LPDMUS_SYNTHSTATS pStats) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pStats);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_GetPortCaps (LPDIRECTMUSICSYNTH8 iface, LPDMUS_PORTCAPS pCaps) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	TRACE("(%p, %p)\n", This, pCaps);
 	*pCaps = This->pCaps;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_SetMasterClock (LPDIRECTMUSICSYNTH8 iface, IReferenceClock* pClock) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pClock);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_GetLatencyClock (LPDIRECTMUSICSYNTH8 iface, IReferenceClock** ppClock) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	TRACE("(%p, %p)\n", This, ppClock);
 	*ppClock = This->pLatencyClock;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_Activate (LPDIRECTMUSICSYNTH8 iface, BOOL fEnable) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	TRACE("(%p, %d)\n", This, fEnable);
 	This->fActive = fEnable;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_SetSynthSink (LPDIRECTMUSICSYNTH8 iface, IDirectMusicSynthSink* pSynthSink) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	TRACE("(%p, %p)\n", This, pSynthSink);
 	This->pSynthSink = (IDirectMusicSynthSinkImpl*)pSynthSink;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_Render (LPDIRECTMUSICSYNTH8 iface, short* pBuffer, DWORD dwLength, LONGLONG llPosition) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p, %ld, %lli): stub\n", This, pBuffer, dwLength, llPosition);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_SetChannelPriority (LPDIRECTMUSICSYNTH8 iface, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) {
-	/*ICOM_THIS(IDirectMusicSynth8Impl,iface); */
+	/*IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface; */
 	/* silenced because of too many messages - 1000 groups * 16 channels ;=) */
 	/*FIXME("(%p, %ld, %ld, %ld): stub\n", This, dwChannelGroup, dwChannel, dwPriority); */
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_GetChannelPriority (LPDIRECTMUSICSYNTH8 iface, DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %ld, %ld, %p): stub\n", This, dwChannelGroup, dwChannel, pdwPriority);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_GetFormat (LPDIRECTMUSICSYNTH8 iface, LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSiz) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pWaveFormatEx, pdwWaveFormatExSiz);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_GetAppend (LPDIRECTMUSICSYNTH8 iface, DWORD* pdwAppend) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pdwAppend);
 	return S_OK;
 }
 
 /* IDirectMusicSynth8Impl IDirectMusicSynth8 part: */
 HRESULT WINAPI IDirectMusicSynth8Impl_PlayVoice (LPDIRECTMUSICSYNTH8 iface, REFERENCE_TIME rt, DWORD dwVoiceId, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwDLId, long prPitch, long vrVolume, SAMPLE_TIME stVoiceStart, SAMPLE_TIME stLoopStart, SAMPLE_TIME stLoopEnd) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %lli, %ld, %ld, %ld, %ld, %li, %li,%lli, %lli, %lli): stub\n", This, rt, dwVoiceId, dwChannelGroup, dwChannel, dwDLId, prPitch, vrVolume, stVoiceStart, stLoopStart, stLoopEnd);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_StopVoice (LPDIRECTMUSICSYNTH8 iface, REFERENCE_TIME rt, DWORD dwVoiceId) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %lli, %ld): stub\n", This, rt, dwVoiceId);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_GetVoiceState (LPDIRECTMUSICSYNTH8 iface, DWORD dwVoice[], DWORD cbVoice, DMUS_VOICE_STATE dwVoiceState[]) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %p, %ld, %p): stub\n", This, dwVoice, cbVoice, dwVoiceState);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_Refresh (LPDIRECTMUSICSYNTH8 iface, DWORD dwDownloadID, DWORD dwFlags) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %ld, %ld): stub\n", This, dwDownloadID, dwFlags);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynth8Impl_AssignChannelToBuses (LPDIRECTMUSICSYNTH8 iface, DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwBuses, DWORD cBuses) {
-	ICOM_THIS(IDirectMusicSynth8Impl,iface);
+	IDirectMusicSynth8Impl *This = (IDirectMusicSynth8Impl *)iface;
 	FIXME("(%p, %ld, %ld, %p, %ld): stub\n", This, dwChannelGroup, dwChannel, pdwBuses, cBuses);
 	return S_OK;
 }
diff --git a/dlls/dmsynth/synthsink.c b/dlls/dmsynth/synthsink.c
index 0732828..2523936 100644
--- a/dlls/dmsynth/synthsink.c
+++ b/dlls/dmsynth/synthsink.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicSynthSinkImpl IUnknown part: */
 HRESULT WINAPI IDirectMusicSynthSinkImpl_QueryInterface (LPDIRECTMUSICSYNTHSINK iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -37,13 +37,13 @@
 }
 
 ULONG WINAPI IDirectMusicSynthSinkImpl_AddRef (LPDIRECTMUSICSYNTHSINK iface) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicSynthSinkImpl_Release (LPDIRECTMUSICSYNTHSINK iface) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -54,49 +54,49 @@
 
 /* IDirectMusicSynthSinkImpl IDirectMusicSynthSink part: */
 HRESULT WINAPI IDirectMusicSynthSinkImpl_Init (LPDIRECTMUSICSYNTHSINK iface, IDirectMusicSynth* pSynth) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pSynth);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynthSinkImpl_SetMasterClock (LPDIRECTMUSICSYNTHSINK iface, IReferenceClock* pClock) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pClock);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynthSinkImpl_GetLatencyClock (LPDIRECTMUSICSYNTHSINK iface, IReferenceClock** ppClock) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, ppClock);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynthSinkImpl_Activate (LPDIRECTMUSICSYNTHSINK iface, BOOL fEnable) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, fEnable);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynthSinkImpl_SampleToRefTime (LPDIRECTMUSICSYNTHSINK iface, LONGLONG llSampleTime, REFERENCE_TIME* prfTime) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %lli, %p): stub\n", This, llSampleTime, prfTime);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynthSinkImpl_RefTimeToSample (LPDIRECTMUSICSYNTHSINK iface, REFERENCE_TIME rfTime, LONGLONG* pllSampleTime) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %lli, %p): stub\n", This, rfTime, pllSampleTime );
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynthSinkImpl_SetDirectSound (LPDIRECTMUSICSYNTHSINK iface, LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pDirectSound, pDirectSoundBuffer);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicSynthSinkImpl_GetDesiredBufferSize (LPDIRECTMUSICSYNTHSINK iface, LPDWORD pdwBufferSizeInSamples) {
-	ICOM_THIS(IDirectMusicSynthSinkImpl,iface);
+	IDirectMusicSynthSinkImpl *This = (IDirectMusicSynthSinkImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pdwBufferSizeInSamples);
 	return S_OK;
 }
diff --git a/dlls/dmusic/buffer.c b/dlls/dmusic/buffer.c
index b063880..53e3cb2 100644
--- a/dlls/dmusic/buffer.c
+++ b/dlls/dmusic/buffer.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicBufferImpl IUnknown part: */
 HRESULT WINAPI IDirectMusicBufferImpl_QueryInterface (LPDIRECTMUSICBUFFER iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	TRACE("(%p, (%s, %p)\n",This,debugstr_dmguid(riid),ppobj);
 	if (IsEqualIID (riid, &IID_IUnknown) 
 		|| IsEqualIID (riid, &IID_IDirectMusicBuffer)) {
@@ -36,13 +36,13 @@
 }
 
 ULONG WINAPI IDirectMusicBufferImpl_AddRef (LPDIRECTMUSICBUFFER iface) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicBufferImpl_Release (LPDIRECTMUSICBUFFER iface) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -53,79 +53,79 @@
 
 /* IDirectMusicBufferImpl IDirectMusicBuffer part: */
 HRESULT WINAPI IDirectMusicBufferImpl_Flush (LPDIRECTMUSICBUFFER iface) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p): stub\n", This);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_TotalTime (LPDIRECTMUSICBUFFER iface, LPREFERENCE_TIME prtTime) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, prtTime);	
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_PackStructured (LPDIRECTMUSICBUFFER iface, REFERENCE_TIME rt, DWORD dwChannelGroup, DWORD dwChannelMessage) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %lli, %ld, %ld): stub\n", This, rt, dwChannelGroup, dwChannelMessage);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_PackUnstructured (LPDIRECTMUSICBUFFER iface, REFERENCE_TIME rt, DWORD dwChannelGroup, DWORD cb, LPBYTE lpb) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %lli, %ld, %ld, %p): stub\n", This, rt, dwChannelGroup, cb, lpb);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_ResetReadPtr (LPDIRECTMUSICBUFFER iface) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p): stub\n", This);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_GetNextEvent (LPDIRECTMUSICBUFFER iface, LPREFERENCE_TIME prt, LPDWORD pdwChannelGroup, LPDWORD pdwLength, LPBYTE* ppData) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %p, %p, %p, %p): stub\n", This, prt, pdwChannelGroup, pdwLength, ppData);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_GetRawBufferPtr (LPDIRECTMUSICBUFFER iface, LPBYTE* ppData) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, ppData);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_GetStartTime (LPDIRECTMUSICBUFFER iface, LPREFERENCE_TIME prt) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, prt);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_GetUsedBytes (LPDIRECTMUSICBUFFER iface, LPDWORD pcb) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pcb);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_GetMaxBytes (LPDIRECTMUSICBUFFER iface, LPDWORD pcb) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pcb);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_GetBufferFormat (LPDIRECTMUSICBUFFER iface, LPGUID pGuidFormat) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pGuidFormat);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_SetStartTime (LPDIRECTMUSICBUFFER iface, REFERENCE_TIME rt) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %lli): stub\n", This, rt);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicBufferImpl_SetUsedBytes (LPDIRECTMUSICBUFFER iface, DWORD cb) {
-	ICOM_THIS(IDirectMusicBufferImpl,iface);
+	IDirectMusicBufferImpl *This = (IDirectMusicBufferImpl *)iface;
 	FIXME("(%p, %ld): stub\n", This, cb);
 	return S_OK;
 }
diff --git a/dlls/dmusic/clock.c b/dlls/dmusic/clock.c
index d15e1b7..ccd6c5a 100644
--- a/dlls/dmusic/clock.c
+++ b/dlls/dmusic/clock.c
@@ -23,7 +23,7 @@
 
 /* IReferenceClockImpl IUnknown part: */
 HRESULT WINAPI IReferenceClockImpl_QueryInterface (IReferenceClock *iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IReferenceClockImpl,iface);
+	IReferenceClockImpl *This = (IReferenceClockImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -37,13 +37,13 @@
 }
 
 ULONG WINAPI IReferenceClockImpl_AddRef (IReferenceClock *iface) {
-	ICOM_THIS(IReferenceClockImpl,iface);
+	IReferenceClockImpl *This = (IReferenceClockImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IReferenceClockImpl_Release (IReferenceClock *iface) {
-	ICOM_THIS(IReferenceClockImpl,iface);
+	IReferenceClockImpl *This = (IReferenceClockImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -54,26 +54,26 @@
 
 /* IReferenceClockImpl IReferenceClock part: */
 HRESULT WINAPI IReferenceClockImpl_GetTime (IReferenceClock *iface, REFERENCE_TIME* pTime) {
-	ICOM_THIS(IReferenceClockImpl,iface);
+	IReferenceClockImpl *This = (IReferenceClockImpl *)iface;
 	TRACE("(%p, %p)\n", This, pTime);
 	*pTime = This->rtTime;
 	return S_OK;
 }
 
 HRESULT WINAPI IReferenceClockImpl_AdviseTime (IReferenceClock *iface, REFERENCE_TIME baseTime, REFERENCE_TIME streamTime, HANDLE hEvent, DWORD* pdwAdviseCookie) {
-	ICOM_THIS(IReferenceClockImpl,iface);
+	IReferenceClockImpl *This = (IReferenceClockImpl *)iface;
 	FIXME("(%p, %lli, %lli, %p, %p): stub\n", This, baseTime, streamTime, hEvent, pdwAdviseCookie);
 	return S_OK;
 }
 
 HRESULT WINAPI IReferenceClockImpl_AdvisePeriodic (IReferenceClock *iface, REFERENCE_TIME startTime, REFERENCE_TIME periodTime, HANDLE hSemaphore, DWORD* pdwAdviseCookie) {
-	ICOM_THIS(IReferenceClockImpl,iface);
+	IReferenceClockImpl *This = (IReferenceClockImpl *)iface;
 	FIXME("(%p, %lli, %lli, %p, %p): stub\n", This, startTime, periodTime, hSemaphore, pdwAdviseCookie);
 	return S_OK;
 }
 
 HRESULT WINAPI IReferenceClockImpl_Unadvise (IReferenceClock *iface, DWORD dwAdviseCookie) {
-	ICOM_THIS(IReferenceClockImpl,iface);
+	IReferenceClockImpl *This = (IReferenceClockImpl *)iface;
 	FIXME("(%p, %ld): stub\n", This, dwAdviseCookie);
 	return S_OK;
 }
diff --git a/dlls/dmusic/dmusic.c b/dlls/dmusic/dmusic.c
index 0c8a4e6..f08a8b6 100644
--- a/dlls/dmusic/dmusic.c
+++ b/dlls/dmusic/dmusic.c
@@ -22,7 +22,7 @@
 
 /* IDirectMusic8Impl IUnknown part: */
 HRESULT WINAPI IDirectMusic8Impl_QueryInterface (LPDIRECTMUSIC8 iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -39,13 +39,13 @@
 }
 
 ULONG WINAPI IDirectMusic8Impl_AddRef (LPDIRECTMUSIC8 iface) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusic8Impl_Release (LPDIRECTMUSIC8 iface) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -56,7 +56,7 @@
 
 /* IDirectMusic8Impl IDirectMusic part: */
 HRESULT WINAPI IDirectMusic8Impl_EnumPort(LPDIRECTMUSIC8 iface, DWORD dwIndex, LPDMUS_PORTCAPS pPortCaps) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	
 	TRACE("(%p, %ld, %p)\n", This, dwIndex, pPortCaps);
 	/* i guess the first port shown is always software synthesizer */
@@ -97,13 +97,13 @@
 }
 
 HRESULT WINAPI IDirectMusic8Impl_CreateMusicBuffer (LPDIRECTMUSIC8 iface, LPDMUS_BUFFERDESC pBufferDesc, LPDIRECTMUSICBUFFER** ppBuffer, LPUNKNOWN pUnkOuter) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	FIXME("(%p, %p, %p, %p): stub\n", This, pBufferDesc, ppBuffer, pUnkOuter);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusic8Impl_CreatePort (LPDIRECTMUSIC8 iface, REFCLSID rclsidPort, LPDMUS_PORTPARAMS pPortParams, LPDIRECTMUSICPORT* ppPort, LPUNKNOWN pUnkOuter) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	int i/*, j*/;
 	DMUS_PORTCAPS PortCaps;
 	
@@ -159,13 +159,13 @@
 }
 
 HRESULT WINAPI IDirectMusic8Impl_EnumMasterClock (LPDIRECTMUSIC8 iface, DWORD dwIndex, LPDMUS_CLOCKINFO lpClockInfo) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	FIXME("(%p, %ld, %p): stub\n", This, dwIndex, lpClockInfo);
 	return S_FALSE;
 }
 
 HRESULT WINAPI IDirectMusic8Impl_GetMasterClock (LPDIRECTMUSIC8 iface, LPGUID pguidClock, IReferenceClock** ppReferenceClock) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 
 	TRACE("(%p, %p, %p)\n", This, pguidClock, ppReferenceClock);
 	if (pguidClock)
@@ -177,13 +177,13 @@
 }
 
 HRESULT WINAPI IDirectMusic8Impl_SetMasterClock (LPDIRECTMUSIC8 iface, REFGUID rguidClock) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	FIXME("(%p, %s): stub\n", This, debugstr_dmguid(rguidClock));
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusic8Impl_Activate (LPDIRECTMUSIC8 iface, BOOL fEnable) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	int i;
 	
 	FIXME("(%p, %d): stub\n", This, fEnable);
@@ -195,7 +195,7 @@
 }
 
 HRESULT WINAPI IDirectMusic8Impl_GetDefaultPort (LPDIRECTMUSIC8 iface, LPGUID pguidPort) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	HKEY hkGUID;
 	DWORD returnTypeGUID, sizeOfReturnBuffer = 50;
 	char returnBuffer[51];
@@ -219,13 +219,13 @@
 }
 
 HRESULT WINAPI IDirectMusic8Impl_SetDirectSound (LPDIRECTMUSIC8 iface, LPDIRECTSOUND pDirectSound, HWND hWnd) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pDirectSound, hWnd);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusic8Impl_SetExternalMasterClock (LPDIRECTMUSIC8 iface, IReferenceClock* pClock) {
-	ICOM_THIS(IDirectMusic8Impl,iface);
+	IDirectMusic8Impl *This = (IDirectMusic8Impl *)iface;
 	FIXME("(%p, %p): stub\n", This, pClock);
 	return S_OK;
 }
diff --git a/dlls/dmusic/dmusic_main.c b/dlls/dmusic/dmusic_main.c
index c05afa2..088114d 100644
--- a/dlls/dmusic/dmusic_main.c
+++ b/dlls/dmusic/dmusic_main.c
@@ -33,30 +33,30 @@
  *		DirectMusic ClassFactory
  */
 static HRESULT WINAPI DirectMusicCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n",This,debugstr_dmguid(riid),ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI DirectMusicCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI DirectMusicCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI DirectMusicCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicImpl (riid, (LPVOID*) ppobj, pOuter);
 }
 
 static HRESULT WINAPI DirectMusicCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
@@ -75,30 +75,30 @@
  *		DirectMusicCollection ClassFactory
  */
 static HRESULT WINAPI CollectionCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n",This,debugstr_dmguid(riid),ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI CollectionCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI CollectionCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI CollectionCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicCollectionImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI CollectionCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dmusic/download.c b/dlls/dmusic/download.c
index c5868ff..e1878a1 100644
--- a/dlls/dmusic/download.c
+++ b/dlls/dmusic/download.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicDownloadImpl IUnknown part: */
 HRESULT WINAPI IDirectMusicDownloadImpl_QueryInterface (LPDIRECTMUSICDOWNLOAD iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicDownloadImpl,iface);
+	IDirectMusicDownloadImpl *This = (IDirectMusicDownloadImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) 
@@ -37,13 +37,13 @@
 }
 
 ULONG WINAPI IDirectMusicDownloadImpl_AddRef (LPDIRECTMUSICDOWNLOAD iface) {
-	ICOM_THIS(IDirectMusicDownloadImpl,iface);
+	IDirectMusicDownloadImpl *This = (IDirectMusicDownloadImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicDownloadImpl_Release (LPDIRECTMUSICDOWNLOAD iface) {
-	ICOM_THIS(IDirectMusicDownloadImpl,iface);
+	IDirectMusicDownloadImpl *This = (IDirectMusicDownloadImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -54,7 +54,7 @@
 
 /* IDirectMusicDownloadImpl IDirectMusicDownload part: */
 HRESULT WINAPI IDirectMusicDownloadImpl_GetBuffer (LPDIRECTMUSICDOWNLOAD iface, void** ppvBuffer, DWORD* pdwSize) {
-	ICOM_THIS(IDirectMusicDownloadImpl,iface);
+	IDirectMusicDownloadImpl *This = (IDirectMusicDownloadImpl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, ppvBuffer, pdwSize);
 	return S_OK;
 }
diff --git a/dlls/dmusic/downloadedinstrument.c b/dlls/dmusic/downloadedinstrument.c
index 7f3891b..14baa11 100644
--- a/dlls/dmusic/downloadedinstrument.c
+++ b/dlls/dmusic/downloadedinstrument.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicDownloadedInstrumentImpl IUnknown part: */
 HRESULT WINAPI IDirectMusicDownloadedInstrumentImpl_QueryInterface (LPDIRECTMUSICDOWNLOADEDINSTRUMENT iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicDownloadedInstrumentImpl,iface);
+	IDirectMusicDownloadedInstrumentImpl *This = (IDirectMusicDownloadedInstrumentImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown)
@@ -37,13 +37,13 @@
 }
 
 ULONG WINAPI IDirectMusicDownloadedInstrumentImpl_AddRef (LPDIRECTMUSICDOWNLOADEDINSTRUMENT iface) {
-	ICOM_THIS(IDirectMusicDownloadedInstrumentImpl,iface);
+	IDirectMusicDownloadedInstrumentImpl *This = (IDirectMusicDownloadedInstrumentImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicDownloadedInstrumentImpl_Release (LPDIRECTMUSICDOWNLOADEDINSTRUMENT iface) {
-	ICOM_THIS(IDirectMusicDownloadedInstrumentImpl,iface);
+	IDirectMusicDownloadedInstrumentImpl *This = (IDirectMusicDownloadedInstrumentImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
diff --git a/dlls/dmusic/port.c b/dlls/dmusic/port.c
index e9fe7ad..d7ef380 100644
--- a/dlls/dmusic/port.c
+++ b/dlls/dmusic/port.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicPortImpl IUnknown part: */
 HRESULT WINAPI IDirectMusicPortImpl_QueryInterface (LPDIRECTMUSICPORT iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicPort)) {
@@ -36,13 +36,13 @@
 }
 
 ULONG WINAPI IDirectMusicPortImpl_AddRef (LPDIRECTMUSICPORT iface) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicPortImpl_Release (LPDIRECTMUSICPORT iface) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -53,37 +53,37 @@
 
 /* IDirectMusicPortImpl IDirectMusicPort part: */
 HRESULT WINAPI IDirectMusicPortImpl_PlayBuffer (LPDIRECTMUSICPORT iface, LPDIRECTMUSICBUFFER pBuffer) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pBuffer);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_SetReadNotificationHandle (LPDIRECTMUSICPORT iface, HANDLE hEvent) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, hEvent);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_Read (LPDIRECTMUSICPORT iface, LPDIRECTMUSICBUFFER pBuffer) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pBuffer);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_DownloadInstrument (LPDIRECTMUSICPORT iface, IDirectMusicInstrument* pInstrument, IDirectMusicDownloadedInstrument** ppDownloadedInstrument, DMUS_NOTERANGE* pNoteRanges, DWORD dwNumNoteRanges) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p, %p, %p, %ld): stub\n", This, pInstrument, ppDownloadedInstrument, pNoteRanges, dwNumNoteRanges);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_UnloadInstrument (LPDIRECTMUSICPORT iface, IDirectMusicDownloadedInstrument *pDownloadedInstrument) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pDownloadedInstrument);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_GetLatencyClock (LPDIRECTMUSICPORT iface, IReferenceClock** ppClock) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	TRACE("(%p, %p)\n", This, ppClock);
 	*ppClock = This->pLatencyClock;
 	IReferenceClock_AddRef (*ppClock);
@@ -91,53 +91,53 @@
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_GetRunningStats (LPDIRECTMUSICPORT iface, LPDMUS_SYNTHSTATS pStats) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pStats);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_Compact (LPDIRECTMUSICPORT iface) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p): stub\n", This);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_GetCaps (LPDIRECTMUSICPORT iface, LPDMUS_PORTCAPS pPortCaps) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	TRACE("(%p, %p)\n", This, pPortCaps);
 	pPortCaps = This->pCaps;	
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_DeviceIoControl (LPDIRECTMUSICPORT iface, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %ld, %p, %ld, %p, %ld, %p, %p): stub\n", This, dwIoControlCode, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_SetNumChannelGroups (LPDIRECTMUSICPORT iface, DWORD dwChannelGroups) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %ld): semi-stub\n", This, dwChannelGroups);
 	This->nrofgroups = dwChannelGroups;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_GetNumChannelGroups (LPDIRECTMUSICPORT iface, LPDWORD pdwChannelGroups) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	TRACE("(%p, %p)\n", This, pdwChannelGroups);
 	*pdwChannelGroups = This->nrofgroups;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_Activate (LPDIRECTMUSICPORT iface, BOOL fActive) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	TRACE("(%p, %d)\n", This, fActive);
 	This->fActive = fActive;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_SetChannelPriority (LPDIRECTMUSICPORT iface, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %ld, %ld, %ld): semi-stub\n", This, dwChannelGroup, dwChannel, dwPriority);
 	if (dwChannel > 16) {
 		WARN("isn't there supposed to be 16 channels (no. %ld requested)?! (faking as it is ok)\n", dwChannel);
@@ -147,20 +147,20 @@
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_GetChannelPriority (LPDIRECTMUSICPORT iface, DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	TRACE("(%p, %ld, %ld, %p)\n", This, dwChannelGroup, dwChannel, pdwPriority);
 	*pdwPriority = This->group[dwChannelGroup-1].channel[dwChannel].priority;
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_SetDirectSound (LPDIRECTMUSICPORT iface, LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p, %p): stub\n", This, pDirectSound, pDirectSoundBuffer);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortImpl_GetFormat (LPDIRECTMUSICPORT iface, LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSize, LPDWORD pdwBufferSize) {
-	ICOM_THIS(IDirectMusicPortImpl,iface);
+	IDirectMusicPortImpl *This = (IDirectMusicPortImpl *)iface;
 	FIXME("(%p, %p, %p, %p): stub\n", This, pWaveFormatEx, pdwWaveFormatExSize, pdwBufferSize);
 	return S_OK;
 }
diff --git a/dlls/dmusic/portdownload.c b/dlls/dmusic/portdownload.c
index 5a90e0b..0c47b06 100644
--- a/dlls/dmusic/portdownload.c
+++ b/dlls/dmusic/portdownload.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicPortDownload IUnknown parts follow: */
 HRESULT WINAPI IDirectMusicPortDownloadImpl_QueryInterface (LPDIRECTMUSICPORTDOWNLOAD iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || IsEqualGUID(riid, &IID_IDirectMusicPortDownload)) {
@@ -36,13 +36,13 @@
 }
 
 ULONG WINAPI IDirectMusicPortDownloadImpl_AddRef (LPDIRECTMUSICPORTDOWNLOAD iface) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicPortDownloadImpl_Release (LPDIRECTMUSICPORTDOWNLOAD iface) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -53,37 +53,37 @@
 
 /* IDirectMusicPortDownload Interface follow: */
 HRESULT WINAPI IDirectMusicPortDownloadImpl_GetBuffer (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD dwDLId, IDirectMusicDownload** ppIDMDownload) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	FIXME("(%p, %ld, %p): stub\n", This, dwDLId, ppIDMDownload);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortDownloadImpl_AllocateBuffer (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD dwSize, IDirectMusicDownload** ppIDMDownload) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	FIXME("(%p, %ld, %p): stub\n", This, dwSize, ppIDMDownload);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortDownloadImpl_GetDLId (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD* pdwStartDLId, DWORD dwCount) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	FIXME("(%p, %p, %ld): stub\n", This, pdwStartDLId, dwCount);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortDownloadImpl_GetAppend (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD* pdwAppend) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pdwAppend);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortDownloadImpl_Download (LPDIRECTMUSICPORTDOWNLOAD iface, IDirectMusicDownload* pIDMDownload) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pIDMDownload);
 	return S_OK;
 }
 
 HRESULT WINAPI IDirectMusicPortDownloadImpl_Unload (LPDIRECTMUSICPORTDOWNLOAD iface, IDirectMusicDownload* pIDMDownload) {
-	ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
+	IDirectMusicPortDownloadImpl *This = (IDirectMusicPortDownloadImpl *)iface;
 	FIXME("(%p, %p): stub\n", This, pIDMDownload);
 	return S_OK;
 }
diff --git a/dlls/dmusic/thru.c b/dlls/dmusic/thru.c
index 90983e9..4886e86 100644
--- a/dlls/dmusic/thru.c
+++ b/dlls/dmusic/thru.c
@@ -23,7 +23,7 @@
 
 /* IDirectMusicThru IUnknown parts follow: */
 HRESULT WINAPI IDirectMusicThruImpl_QueryInterface (LPDIRECTMUSICTHRU iface, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IDirectMusicThruImpl,iface);
+	IDirectMusicThruImpl *This = (IDirectMusicThruImpl *)iface;
 	TRACE("(%p, %s, %p)\n", This, debugstr_dmguid(riid), ppobj);
 
 	if (IsEqualIID (riid, &IID_IUnknown) || 
@@ -37,13 +37,13 @@
 }
 
 ULONG WINAPI IDirectMusicThruImpl_AddRef (LPDIRECTMUSICTHRU iface) {
-	ICOM_THIS(IDirectMusicThruImpl,iface);
+	IDirectMusicThruImpl *This = (IDirectMusicThruImpl *)iface;
 	TRACE("(%p): AddRef from %ld\n", This, This->ref);
 	return ++(This->ref);
 }
 
 ULONG WINAPI IDirectMusicThruImpl_Release (LPDIRECTMUSICTHRU iface) {
-	ICOM_THIS(IDirectMusicThruImpl,iface);
+	IDirectMusicThruImpl *This = (IDirectMusicThruImpl *)iface;
 	ULONG ref = --This->ref;
 	TRACE("(%p): ReleaseRef to %ld\n", This, This->ref);
 	if (ref == 0) {
@@ -54,7 +54,7 @@
 
 /* IDirectMusicThru Interface follow: */
 HRESULT WINAPI IDirectMusicThruImpl_ThruChannel (LPDIRECTMUSICTHRU iface, DWORD dwSourceChannelGroup, DWORD dwSourceChannel, DWORD dwDestinationChannelGroup, DWORD dwDestinationChannel, LPDIRECTMUSICPORT pDestinationPort) {
-	ICOM_THIS(IDirectMusicThruImpl,iface);
+	IDirectMusicThruImpl *This = (IDirectMusicThruImpl *)iface;
 	FIXME("(%p, %ld, %ld, %ld, %ld, %p): stub\n", This, dwSourceChannelGroup, dwSourceChannel, dwDestinationChannelGroup, dwDestinationChannel, pDestinationPort);
 	return S_OK;
 }
diff --git a/dlls/dplayx/dpclassfactory.c b/dlls/dplayx/dpclassfactory.c
index 579ee59..98dfcea 100644
--- a/dlls/dplayx/dpclassfactory.c
+++ b/dlls/dplayx/dpclassfactory.c
@@ -42,7 +42,7 @@
 
 static HRESULT WINAPI
 DP_and_DPL_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-        ICOM_THIS(IClassFactoryImpl,iface);
+        IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
         FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
 
@@ -51,12 +51,12 @@
 
 static ULONG WINAPI
 DP_and_DPL_AddRef(LPCLASSFACTORY iface) {
-        ICOM_THIS(IClassFactoryImpl,iface);
+        IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
         return ++(This->ref);
 }
 
 static ULONG WINAPI DP_and_DPL_Release(LPCLASSFACTORY iface) {
-        ICOM_THIS(IClassFactoryImpl,iface);
+        IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
         /* static class (reference starts @ 1), won't ever be freed */
         return --(This->ref);
 }
@@ -64,7 +64,7 @@
 static HRESULT WINAPI DP_and_DPL_CreateInstance(
         LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj
 ) {
-        ICOM_THIS(IClassFactoryImpl,iface);
+        IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
         TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
 
@@ -81,7 +81,7 @@
 }
 
 static HRESULT WINAPI DP_and_DPL_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-        ICOM_THIS(IClassFactoryImpl,iface);
+        IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
         FIXME("(%p)->(%d),stub!\n",This,dolock);
         return S_OK;
 }
diff --git a/dlls/dplayx/dplay.c b/dlls/dplayx/dplay.c
index 00037d2..16e918d 100644
--- a/dlls/dplayx/dplay.c
+++ b/dlls/dplayx/dplay.c
@@ -234,7 +234,7 @@
 
 static BOOL DP_CreateIUnknown( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay2AImpl,lpDP);
+  IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP;
 
   This->unk = (DirectPlayIUnknownData*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                                   sizeof( *(This->unk) ) );
@@ -250,7 +250,7 @@
 
 static BOOL DP_DestroyIUnknown( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay2AImpl,lpDP);
+  IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP;
 
   DeleteCriticalSection( &This->unk->DP_lock );
   HeapFree( GetProcessHeap(), 0, This->unk );
@@ -260,7 +260,7 @@
 
 static BOOL DP_CreateDirectPlay2( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay2AImpl,lpDP);
+  IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP;
 
   This->dp2 = (DirectPlay2Data*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                            sizeof( *(This->dp2) ) );
@@ -366,7 +366,7 @@
 
 static BOOL DP_DestroyDirectPlay2( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay2AImpl,lpDP);
+  IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)lpDP;
 
   if( This->dp2->hEnumSessionThread != INVALID_HANDLE_VALUE )
   {
@@ -424,7 +424,7 @@
 
 static BOOL DP_CreateDirectPlay3( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay3AImpl,lpDP);
+  IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)lpDP;
 
   This->dp3 = (DirectPlay3Data*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                            sizeof( *(This->dp3) ) );
@@ -438,7 +438,7 @@
 
 static BOOL DP_DestroyDirectPlay3( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay3AImpl,lpDP);
+  IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)lpDP;
 
   /* Delete the contents */
   HeapFree( GetProcessHeap(), 0, This->dp3 );
@@ -448,7 +448,7 @@
 
 static BOOL DP_CreateDirectPlay4( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay4AImpl,lpDP);
+  IDirectPlay4AImpl *This = (IDirectPlay4AImpl *)lpDP;
 
   This->dp4 = (DirectPlay4Data*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                            sizeof( *(This->dp4) ) );
@@ -462,7 +462,7 @@
 
 static BOOL DP_DestroyDirectPlay4( LPVOID lpDP )
 {
-  ICOM_THIS(IDirectPlay3AImpl,lpDP);
+  IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)lpDP;
 
   /* Delete the contents */
   HeapFree( GetProcessHeap(), 0, This->dp4 );
@@ -488,32 +488,32 @@
 
   if( IsEqualGUID( &IID_IDirectPlay2, riid ) )
   {
-    ICOM_THIS(IDirectPlay2Impl,*ppvObj);
+    IDirectPlay2Impl *This = (IDirectPlay2Impl *)*ppvObj;
     This->lpVtbl = &directPlay2WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay2A, riid ) )
   {
-    ICOM_THIS(IDirectPlay2AImpl,*ppvObj);
+    IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)*ppvObj;
     This->lpVtbl = &directPlay2AVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay3, riid ) )
   {
-    ICOM_THIS(IDirectPlay3Impl,*ppvObj);
+    IDirectPlay3Impl *This = (IDirectPlay3Impl *)*ppvObj;
     This->lpVtbl = &directPlay3WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay3A, riid ) )
   {
-    ICOM_THIS(IDirectPlay3AImpl,*ppvObj);
+    IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)*ppvObj;
     This->lpVtbl = &directPlay3AVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay4, riid ) )
   {
-    ICOM_THIS(IDirectPlay4Impl,*ppvObj);
+    IDirectPlay4Impl *This = (IDirectPlay4Impl *)*ppvObj;
     This->lpVtbl = &directPlay4WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay4A, riid ) )
   {
-    ICOM_THIS(IDirectPlay4AImpl,*ppvObj);
+    IDirectPlay4AImpl *This = (IDirectPlay4AImpl *)*ppvObj;
     This->lpVtbl = &directPlay4AVT;
   }
   else
@@ -556,7 +556,7 @@
 static HRESULT WINAPI DP_QueryInterface
          ( LPDIRECTPLAY2 iface, REFIID riid, LPVOID* ppvObj )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   TRACE("(%p)->(%s,%p)\n", This, debugstr_guid( riid ), ppvObj );
 
   *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
@@ -572,32 +572,32 @@
 
   if( IsEqualGUID( &IID_IDirectPlay2, riid ) )
   {
-    ICOM_THIS(IDirectPlay2Impl,*ppvObj);
+    IDirectPlay2Impl *This = (IDirectPlay2Impl *)*ppvObj;
     This->lpVtbl = &directPlay2WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay2A, riid ) )
   {
-    ICOM_THIS(IDirectPlay2AImpl,*ppvObj);
+    IDirectPlay2AImpl *This = (IDirectPlay2AImpl *)*ppvObj;
     This->lpVtbl = &directPlay2AVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay3, riid ) )
   {
-    ICOM_THIS(IDirectPlay3Impl,*ppvObj);
+    IDirectPlay3Impl *This = (IDirectPlay3Impl *)*ppvObj;
     This->lpVtbl = &directPlay3WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay3A, riid ) )
   {
-    ICOM_THIS(IDirectPlay3AImpl,*ppvObj);
+    IDirectPlay3AImpl *This = (IDirectPlay3AImpl *)*ppvObj;
     This->lpVtbl = &directPlay3AVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay4, riid ) )
   {
-    ICOM_THIS(IDirectPlay4Impl,*ppvObj);
+    IDirectPlay4Impl *This = (IDirectPlay4Impl *)*ppvObj;
     This->lpVtbl = &directPlay4WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlay4A, riid ) )
   {
-    ICOM_THIS(IDirectPlay4AImpl,*ppvObj);
+    IDirectPlay4AImpl *This = (IDirectPlay4AImpl *)*ppvObj;
     This->lpVtbl = &directPlay4AVT;
   }
   else
@@ -619,7 +619,7 @@
          ( LPDIRECTPLAY3 iface )
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
 
   ulObjRefCount       = InterlockedIncrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedIncrement( &This->ulInterfaceRef );
@@ -635,7 +635,7 @@
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
 
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
 
   ulObjRefCount       = InterlockedDecrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedDecrement( &This->ulInterfaceRef );
@@ -865,14 +865,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_AddPlayerToGroup
           ( LPDIRECTPLAY2A iface, DPID idGroup, DPID idPlayer )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_AddPlayerToGroup( This, NULL, idGroup, idPlayer, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_AddPlayerToGroup
           ( LPDIRECTPLAY2 iface, DPID idGroup, DPID idPlayer )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_AddPlayerToGroup( This, NULL, idGroup, idPlayer, FALSE );
 }
 
@@ -911,14 +911,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_Close
           ( LPDIRECTPLAY2A iface )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_Close( This, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_Close
           ( LPDIRECTPLAY2 iface )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_Close( This, FALSE );
 }
 
@@ -1614,7 +1614,7 @@
           ( LPDIRECTPLAY2A iface, LPDPID lpidPlayer, LPDPNAME lpPlayerName,
             HANDLE hEvent, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
 
   if( dwFlags & DPPLAYER_SERVERPLAYER )
   {
@@ -1633,7 +1633,7 @@
           ( LPDIRECTPLAY2 iface, LPDPID lpidPlayer, LPDPNAME lpPlayerName,
             HANDLE hEvent, LPVOID lpData, DWORD dwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
 
   if( dwFlags & DPPLAYER_SERVERPLAYER )
   {
@@ -1717,14 +1717,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_DeletePlayerFromGroup
           ( LPDIRECTPLAY2A iface, DPID idGroup, DPID idPlayer )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_DeletePlayerFromGroup( This, NULL, idGroup, idPlayer, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_DeletePlayerFromGroup
           ( LPDIRECTPLAY2 iface, DPID idGroup, DPID idPlayer )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_DeletePlayerFromGroup( This, NULL, idGroup, idPlayer, FALSE );
 }
 
@@ -1836,14 +1836,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_DestroyGroup
           ( LPDIRECTPLAY2A iface, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_DestroyGroup( This, NULL, idGroup, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_DestroyGroup
           ( LPDIRECTPLAY2 iface, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_DestroyGroup( This, NULL, idGroup, FALSE );
 }
 
@@ -1941,14 +1941,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_DestroyPlayer
           ( LPDIRECTPLAY2A iface, DPID idPlayer )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_DestroyPlayer( This, NULL, idPlayer, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_DestroyPlayer
           ( LPDIRECTPLAY2 iface, DPID idPlayer )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_DestroyPlayer( This, NULL, idPlayer, FALSE );
 }
 
@@ -2022,7 +2022,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumGroupPlayers( This, idGroup, lpguidInstance,
                                lpEnumPlayersCallback2, lpContext,
                                dwFlags, TRUE );
@@ -2033,7 +2033,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumGroupPlayers( This, idGroup, lpguidInstance,
                                lpEnumPlayersCallback2, lpContext,
                                dwFlags, FALSE );
@@ -2056,7 +2056,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumGroups( This, lpguidInstance, lpEnumPlayersCallback2,
                          lpContext, dwFlags, TRUE );
 }
@@ -2066,7 +2066,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumGroups( This, lpguidInstance, lpEnumPlayersCallback2,
                          lpContext, dwFlags, FALSE );
 }
@@ -2086,7 +2086,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumPlayers( This, lpguidInstance, lpEnumPlayersCallback2,
                           lpContext, dwFlags, TRUE );
 }
@@ -2096,7 +2096,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumPlayers( This, lpguidInstance, lpEnumPlayersCallback2,
                           lpContext, dwFlags, FALSE );
 }
@@ -2365,7 +2365,7 @@
             LPDPENUMSESSIONSCALLBACK2 lpEnumSessionsCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumSessions( This, lpsd, dwTimeout, lpEnumSessionsCallback2,
                              lpContext, dwFlags, TRUE );
 }
@@ -2375,7 +2375,7 @@
             LPDPENUMSESSIONSCALLBACK2 lpEnumSessionsCallback2,
             LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_EnumSessions( This, lpsd, dwTimeout, lpEnumSessionsCallback2,
                              lpContext, dwFlags, FALSE );
 }
@@ -2406,14 +2406,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_GetCaps
           ( LPDIRECTPLAY2A iface, LPDPCAPS lpDPCaps, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetCaps( This, lpDPCaps, dwFlags );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_GetCaps
           ( LPDIRECTPLAY2 iface, LPDPCAPS lpDPCaps, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetCaps( This, lpDPCaps, dwFlags );
 }
 
@@ -2469,7 +2469,7 @@
           ( LPDIRECTPLAY2A iface, DPID idGroup, LPVOID lpData,
             LPDWORD lpdwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetGroupData( This, idGroup, lpData, lpdwDataSize,
                            dwFlags, TRUE );
 }
@@ -2478,7 +2478,7 @@
           ( LPDIRECTPLAY2 iface, DPID idGroup, LPVOID lpData,
             LPDWORD lpdwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetGroupData( This, idGroup, lpData, lpdwDataSize,
                            dwFlags, FALSE );
 }
@@ -2549,7 +2549,7 @@
           ( LPDIRECTPLAY2A iface, DPID idGroup, LPVOID lpData,
             LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetGroupName( This, idGroup, lpData, lpdwDataSize, TRUE );
 }
 
@@ -2557,7 +2557,7 @@
           ( LPDIRECTPLAY2 iface, DPID idGroup, LPVOID lpData,
             LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetGroupName( This, idGroup, lpData, lpdwDataSize, FALSE );
 }
 
@@ -2574,21 +2574,21 @@
 static HRESULT WINAPI DirectPlay2AImpl_GetMessageCount
           ( LPDIRECTPLAY2A iface, DPID idPlayer, LPDWORD lpdwCount )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetMessageCount( This, idPlayer, lpdwCount, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_GetMessageCount
           ( LPDIRECTPLAY2 iface, DPID idPlayer, LPDWORD lpdwCount )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetMessageCount( This, idPlayer, lpdwCount, FALSE );
 }
 
 static HRESULT WINAPI DirectPlay2AImpl_GetPlayerAddress
           ( LPDIRECTPLAY2A iface, DPID idPlayer, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p,%p): stub\n", This, idPlayer, lpData, lpdwDataSize );
   return DP_OK;
 }
@@ -2596,7 +2596,7 @@
 static HRESULT WINAPI DirectPlay2WImpl_GetPlayerAddress
           ( LPDIRECTPLAY2 iface, DPID idPlayer, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p,%p): stub\n", This, idPlayer, lpData, lpdwDataSize );
   return DP_OK;
 }
@@ -2605,7 +2605,7 @@
           ( LPDIRECTPLAY2A iface, DPID idPlayer, LPDPCAPS lpPlayerCaps,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetPlayerCaps( This, idPlayer, lpPlayerCaps, dwFlags );
 }
 
@@ -2613,7 +2613,7 @@
           ( LPDIRECTPLAY2 iface, DPID idPlayer, LPDPCAPS lpPlayerCaps,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetPlayerCaps( This, idPlayer, lpPlayerCaps, dwFlags );
 }
 
@@ -2674,7 +2674,7 @@
           ( LPDIRECTPLAY2A iface, DPID idPlayer, LPVOID lpData,
             LPDWORD lpdwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetPlayerData( This, idPlayer, lpData, lpdwDataSize,
                             dwFlags, TRUE );
 }
@@ -2683,7 +2683,7 @@
           ( LPDIRECTPLAY2 iface, DPID idPlayer, LPVOID lpData,
             LPDWORD lpdwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetPlayerData( This, idPlayer, lpData, lpdwDataSize,
                             dwFlags, FALSE );
 }
@@ -2754,7 +2754,7 @@
           ( LPDIRECTPLAY2A iface, DPID idPlayer, LPVOID lpData,
             LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetPlayerName( This, idPlayer, lpData, lpdwDataSize, TRUE );
 }
 
@@ -2762,7 +2762,7 @@
           ( LPDIRECTPLAY2 iface, DPID idPlayer, LPVOID lpData,
             LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_GetPlayerName( This, idPlayer, lpData, lpdwDataSize, FALSE );
 }
 
@@ -2803,14 +2803,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_GetSessionDesc
           ( LPDIRECTPLAY2A iface, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_GetSessionDesc( This, lpData, lpdwDataSize, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_GetSessionDesc
           ( LPDIRECTPLAY2 iface, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_GetSessionDesc( This, lpData, lpdwDataSize, TRUE );
 }
 
@@ -2818,7 +2818,7 @@
 static HRESULT WINAPI DirectPlay2AImpl_Initialize
           ( LPDIRECTPLAY2A iface, LPGUID lpGUID )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   TRACE("(%p)->(%p): stub\n", This, lpGUID );
   return DPERR_ALREADYINITIALIZED;
 }
@@ -2827,7 +2827,7 @@
 static HRESULT WINAPI DirectPlay2WImpl_Initialize
           ( LPDIRECTPLAY2 iface, LPGUID lpGUID )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   TRACE("(%p)->(%p): stub\n", This, lpGUID );
   return DPERR_ALREADYINITIALIZED;
 }
@@ -2937,7 +2937,7 @@
 static HRESULT WINAPI DirectPlay2AImpl_Open
           ( LPDIRECTPLAY2A iface, LPDPSESSIONDESC2 lpsd, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   TRACE("(%p)->(%p,0x%08lx)\n", This, lpsd, dwFlags );
   return DP_SecureOpen( This, lpsd, dwFlags, NULL, NULL, TRUE );
 }
@@ -2945,7 +2945,7 @@
 static HRESULT WINAPI DirectPlay2WImpl_Open
           ( LPDIRECTPLAY2 iface, LPDPSESSIONDESC2 lpsd, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   TRACE("(%p)->(%p,0x%08lx)\n", This, lpsd, dwFlags );
   return DP_SecureOpen( This, lpsd, dwFlags, NULL, NULL, FALSE );
 }
@@ -3012,7 +3012,7 @@
           ( LPDIRECTPLAY2A iface, LPDPID lpidFrom, LPDPID lpidTo,
             DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_Receive( This, lpidFrom, lpidTo, dwFlags,
                         lpData, lpdwDataSize, TRUE );
 }
@@ -3021,7 +3021,7 @@
           ( LPDIRECTPLAY2 iface, LPDPID lpidFrom, LPDPID lpidTo,
             DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_Receive( This, lpidFrom, lpidTo, dwFlags,
                         lpData, lpdwDataSize, FALSE );
 }
@@ -3029,7 +3029,7 @@
 static HRESULT WINAPI DirectPlay2AImpl_Send
           ( LPDIRECTPLAY2A iface, DPID idFrom, DPID idTo, DWORD dwFlags, LPVOID lpData, DWORD dwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_SendEx( This, idFrom, idTo, dwFlags, lpData, dwDataSize,
                     0, 0, NULL, NULL, TRUE );
 }
@@ -3037,7 +3037,7 @@
 static HRESULT WINAPI DirectPlay2WImpl_Send
           ( LPDIRECTPLAY2 iface, DPID idFrom, DPID idTo, DWORD dwFlags, LPVOID lpData, DWORD dwDataSize )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_SendEx( This, idFrom, idTo, dwFlags, lpData, dwDataSize,
                     0, 0, NULL, NULL, FALSE );
 }
@@ -3090,7 +3090,7 @@
           ( LPDIRECTPLAY2A iface, DPID idGroup, LPVOID lpData,
             DWORD dwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetGroupData( This, idGroup, lpData, dwDataSize, dwFlags, TRUE );
 }
 
@@ -3098,7 +3098,7 @@
           ( LPDIRECTPLAY2 iface, DPID idGroup, LPVOID lpData,
             DWORD dwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetGroupData( This, idGroup, lpData, dwDataSize, dwFlags, FALSE );
 }
 
@@ -3128,7 +3128,7 @@
           ( LPDIRECTPLAY2A iface, DPID idGroup, LPDPNAME lpGroupName,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetGroupName( This, idGroup, lpGroupName, dwFlags, TRUE );
 }
 
@@ -3136,7 +3136,7 @@
           ( LPDIRECTPLAY2 iface, DPID idGroup, LPDPNAME lpGroupName,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetGroupName( This, idGroup, lpGroupName, dwFlags, FALSE );
 }
 
@@ -3185,7 +3185,7 @@
           ( LPDIRECTPLAY2A iface, DPID idPlayer, LPVOID lpData,
             DWORD dwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetPlayerData( This, idPlayer, lpData, dwDataSize,
                               dwFlags, TRUE );
 }
@@ -3194,7 +3194,7 @@
           ( LPDIRECTPLAY2 iface, DPID idPlayer, LPVOID lpData,
             DWORD dwDataSize, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetPlayerData( This, idPlayer, lpData, dwDataSize,
                               dwFlags, FALSE );
 }
@@ -3225,7 +3225,7 @@
           ( LPDIRECTPLAY2A iface, DPID idPlayer, LPDPNAME lpPlayerName,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetPlayerName( This, idPlayer, lpPlayerName, dwFlags, TRUE );
 }
 
@@ -3233,7 +3233,7 @@
           ( LPDIRECTPLAY2 iface, DPID idPlayer, LPDPNAME lpPlayerName,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_IF_SetPlayerName( This, idPlayer, lpPlayerName, dwFlags, FALSE );
 }
 
@@ -3297,14 +3297,14 @@
 static HRESULT WINAPI DirectPlay2AImpl_SetSessionDesc
           ( LPDIRECTPLAY2A iface, LPDPSESSIONDESC2 lpSessDesc, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_SetSessionDesc( This, lpSessDesc, dwFlags, FALSE, TRUE );
 }
 
 static HRESULT WINAPI DirectPlay2WImpl_SetSessionDesc
           ( LPDIRECTPLAY2 iface, LPDPSESSIONDESC2 lpSessDesc, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface);
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface;
   return DP_SetSessionDesc( This, lpSessDesc, dwFlags, FALSE, TRUE );
 }
 
@@ -3454,14 +3454,14 @@
 static HRESULT WINAPI DirectPlay3AImpl_AddGroupToGroup
           ( LPDIRECTPLAY3A iface, DPID idParentGroup, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_AddGroupToGroup( This, idParentGroup, idGroup );
 }
 
 static HRESULT WINAPI DirectPlay3WImpl_AddGroupToGroup
           ( LPDIRECTPLAY3 iface, DPID idParentGroup, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_AddGroupToGroup( This, idParentGroup, idGroup );
 }
 
@@ -3560,7 +3560,7 @@
             LPDPNAME lpGroupName, LPVOID lpData, DWORD dwDataSize,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
 
   *lpidGroup = DPID_UNKNOWN;
 
@@ -3574,7 +3574,7 @@
             LPDPNAME lpGroupName, LPVOID lpData, DWORD dwDataSize,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
 
   *lpidGroup = DPID_UNKNOWN;
 
@@ -3620,14 +3620,14 @@
 static HRESULT WINAPI DirectPlay3AImpl_DeleteGroupFromGroup
           ( LPDIRECTPLAY3 iface, DPID idParentGroup, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_DeleteGroupFromGroup( This, idParentGroup, idGroup );
 }
 
 static HRESULT WINAPI DirectPlay3WImpl_DeleteGroupFromGroup
           ( LPDIRECTPLAY3 iface, DPID idParentGroup, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_DeleteGroupFromGroup( This, idParentGroup, idGroup );
 }
 
@@ -3673,7 +3673,7 @@
 static HRESULT WINAPI DirectPlay3AImpl_EnumConnections
           ( LPDIRECTPLAY3A iface, LPCGUID lpguidApplication, LPDPENUMCONNECTIONSCALLBACK lpEnumCallback, LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   TRACE("(%p)->(%p,%p,%p,0x%08lx)\n", This, lpguidApplication, lpEnumCallback, lpContext, dwFlags );
 
   /* A default dwFlags (0) is backwards compatible -- DPCONNECTION_DIRECTPLAY */
@@ -3899,7 +3899,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_EnumConnections
           ( LPDIRECTPLAY3 iface, LPCGUID lpguidApplication, LPDPENUMCONNECTIONSCALLBACK lpEnumCallback, LPVOID lpContext, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(%p,%p,%p,0x%08lx): stub\n", This, lpguidApplication, lpEnumCallback, lpContext, dwFlags );
   return DP_OK;
 }
@@ -3956,7 +3956,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, LPVOID lpContext,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_EnumGroupsInGroup( This, idGroup, lpguidInstance,
                                   lpEnumPlayersCallback2, lpContext, dwFlags,
                                   TRUE );
@@ -3967,7 +3967,7 @@
             LPDPENUMPLAYERSCALLBACK2 lpEnumPlayersCallback2, LPVOID lpContext,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_EnumGroupsInGroup( This, idGroup, lpguidInstance,
                                   lpEnumPlayersCallback2, lpContext, dwFlags,
                                   FALSE );
@@ -3976,7 +3976,7 @@
 static HRESULT WINAPI DirectPlay3AImpl_GetGroupConnectionSettings
           ( LPDIRECTPLAY3A iface, DWORD dwFlags, DPID idGroup, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,%p,%p): stub\n", This, dwFlags, idGroup, lpData, lpdwDataSize );
   return DP_OK;
 }
@@ -3984,7 +3984,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_GetGroupConnectionSettings
           ( LPDIRECTPLAY3 iface, DWORD dwFlags, DPID idGroup, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,%p,%p): stub\n", This, dwFlags, idGroup, lpData, lpdwDataSize );
   return DP_OK;
 }
@@ -4296,7 +4296,7 @@
 static HRESULT WINAPI DirectPlay3AImpl_InitializeConnection
           ( LPDIRECTPLAY3A iface, LPVOID lpConnection, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
 
   /* This may not be externally invoked once either an SP or LP is initialized */
   if( This->dp2->connectionInitialized != NO_PROVIDER )
@@ -4310,7 +4310,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_InitializeConnection
           ( LPDIRECTPLAY3 iface, LPVOID lpConnection, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
 
   /* This may not be externally invoked once either an SP or LP is initialized */
   if( This->dp2->connectionInitialized != NO_PROVIDER )
@@ -4325,7 +4325,7 @@
           ( LPDIRECTPLAY3A iface, LPCDPSESSIONDESC2 lpsd, DWORD dwFlags,
             LPCDPSECURITYDESC lpSecurity, LPCDPCREDENTIALS lpCredentials )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface); /* Yes a dp 2 interface */
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface; /* Yes a dp 2 interface */
   return DP_SecureOpen( This, lpsd, dwFlags, lpSecurity, lpCredentials, TRUE );
 }
 
@@ -4333,14 +4333,14 @@
           ( LPDIRECTPLAY3 iface, LPCDPSESSIONDESC2 lpsd, DWORD dwFlags,
             LPCDPSECURITYDESC lpSecurity, LPCDPCREDENTIALS lpCredentials )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface); /* Yes a dp 2 interface */
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface; /* Yes a dp 2 interface */
   return DP_SecureOpen( This, lpsd, dwFlags, lpSecurity, lpCredentials, FALSE );
 }
 
 static HRESULT WINAPI DirectPlay3AImpl_SendChatMessage
           ( LPDIRECTPLAY3A iface, DPID idFrom, DPID idTo, DWORD dwFlags, LPDPCHAT lpChatMessage )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,0x%08lx,%p): stub\n", This, idFrom, idTo, dwFlags, lpChatMessage );
   return DP_OK;
 }
@@ -4348,7 +4348,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_SendChatMessage
           ( LPDIRECTPLAY3 iface, DPID idFrom, DPID idTo, DWORD dwFlags, LPDPCHAT lpChatMessage )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,0x%08lx,%p): stub\n", This, idFrom, idTo, dwFlags, lpChatMessage );
   return DP_OK;
 }
@@ -4356,7 +4356,7 @@
 static HRESULT WINAPI DirectPlay3AImpl_SetGroupConnectionSettings
           ( LPDIRECTPLAY3A iface, DWORD dwFlags, DPID idGroup, LPDPLCONNECTION lpConnection )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,%p): stub\n", This, dwFlags, idGroup, lpConnection );
   return DP_OK;
 }
@@ -4364,7 +4364,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_SetGroupConnectionSettings
           ( LPDIRECTPLAY3 iface, DWORD dwFlags, DPID idGroup, LPDPLCONNECTION lpConnection )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,%p): stub\n", This, dwFlags, idGroup, lpConnection );
   return DP_OK;
 }
@@ -4372,7 +4372,7 @@
 static HRESULT WINAPI DirectPlay3AImpl_StartSession
           ( LPDIRECTPLAY3A iface, DWORD dwFlags, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx): stub\n", This, dwFlags, idGroup );
   return DP_OK;
 }
@@ -4380,7 +4380,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_StartSession
           ( LPDIRECTPLAY3 iface, DWORD dwFlags, DPID idGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx): stub\n", This, dwFlags, idGroup );
   return DP_OK;
 }
@@ -4388,7 +4388,7 @@
 static HRESULT WINAPI DirectPlay3AImpl_GetGroupFlags
           ( LPDIRECTPLAY3A iface, DPID idGroup, LPDWORD lpdwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p): stub\n", This, idGroup, lpdwFlags );
   return DP_OK;
 }
@@ -4396,7 +4396,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_GetGroupFlags
           ( LPDIRECTPLAY3 iface, DPID idGroup, LPDWORD lpdwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p): stub\n", This, idGroup, lpdwFlags );
   return DP_OK;
 }
@@ -4422,20 +4422,20 @@
 static HRESULT WINAPI DirectPlay3AImpl_GetGroupParent
           ( LPDIRECTPLAY3A iface, DPID idGroup, LPDPID lpidGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_GetGroupParent( This, idGroup, lpidGroup, TRUE );
 }
 static HRESULT WINAPI DirectPlay3WImpl_GetGroupParent
           ( LPDIRECTPLAY3 iface, DPID idGroup, LPDPID lpidGroup )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   return DP_IF_GetGroupParent( This, idGroup, lpidGroup, FALSE );
 }
 
 static HRESULT WINAPI DirectPlay3AImpl_GetPlayerAccount
           ( LPDIRECTPLAY3A iface, DPID idPlayer, DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,%p,%p): stub\n", This, idPlayer, dwFlags, lpData, lpdwDataSize );
   return DP_OK;
 }
@@ -4443,7 +4443,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_GetPlayerAccount
           ( LPDIRECTPLAY3 iface, DPID idPlayer, DWORD dwFlags, LPVOID lpData, LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx,%p,%p): stub\n", This, idPlayer, dwFlags, lpData, lpdwDataSize );
   return DP_OK;
 }
@@ -4451,7 +4451,7 @@
 static HRESULT WINAPI DirectPlay3AImpl_GetPlayerFlags
           ( LPDIRECTPLAY3A iface, DPID idPlayer, LPDWORD lpdwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p): stub\n", This, idPlayer, lpdwFlags );
   return DP_OK;
 }
@@ -4459,7 +4459,7 @@
 static HRESULT WINAPI DirectPlay3WImpl_GetPlayerFlags
           ( LPDIRECTPLAY3 iface, DPID idPlayer, LPDWORD lpdwFlags )
 {
-  ICOM_THIS(IDirectPlay3Impl,iface);
+  IDirectPlay3Impl *This = (IDirectPlay3Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p): stub\n", This, idPlayer, lpdwFlags );
   return DP_OK;
 }
@@ -4467,7 +4467,7 @@
 static HRESULT WINAPI DirectPlay4AImpl_GetGroupOwner
           ( LPDIRECTPLAY4A iface, DPID idGroup, LPDPID lpidGroupOwner )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p): stub\n", This, idGroup, lpidGroupOwner );
   return DP_OK;
 }
@@ -4475,7 +4475,7 @@
 static HRESULT WINAPI DirectPlay4WImpl_GetGroupOwner
           ( LPDIRECTPLAY4 iface, DPID idGroup, LPDPID lpidGroupOwner )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
   FIXME("(%p)->(0x%08lx,%p): stub\n", This, idGroup, lpidGroupOwner );
   return DP_OK;
 }
@@ -4483,7 +4483,7 @@
 static HRESULT WINAPI DirectPlay4AImpl_SetGroupOwner
           ( LPDIRECTPLAY4A iface, DPID idGroup , DPID idGroupOwner )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx): stub\n", This, idGroup, idGroupOwner );
   return DP_OK;
 }
@@ -4491,7 +4491,7 @@
 static HRESULT WINAPI DirectPlay4WImpl_SetGroupOwner
           ( LPDIRECTPLAY4 iface, DPID idGroup , DPID idGroupOwner )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
   FIXME("(%p)->(0x%08lx,0x%08lx): stub\n", This, idGroup, idGroupOwner );
   return DP_OK;
 }
@@ -4617,7 +4617,7 @@
             LPVOID lpData, DWORD dwDataSize, DWORD dwPriority, DWORD dwTimeout,
             LPVOID lpContext, LPDWORD lpdwMsgID )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface); /* yes downcast to 2 */
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface; /* yes downcast to 2 */
   return DP_SendEx( This, idFrom, idTo, dwFlags, lpData, dwDataSize,
                     dwPriority, dwTimeout, lpContext, lpdwMsgID, TRUE );
 }
@@ -4627,7 +4627,7 @@
             LPVOID lpData, DWORD dwDataSize, DWORD dwPriority, DWORD dwTimeout,
             LPVOID lpContext, LPDWORD lpdwMsgID )
 {
-  ICOM_THIS(IDirectPlay2Impl,iface); /* yes downcast to 2 */
+  IDirectPlay2Impl *This = (IDirectPlay2Impl *)iface; /* yes downcast to 2 */
   return DP_SendEx( This, idFrom, idTo, dwFlags, lpData, dwDataSize,
                     dwPriority, dwTimeout, lpContext, lpdwMsgID, FALSE );
 }
@@ -4697,7 +4697,7 @@
           ( LPDIRECTPLAY4A iface, DPID idFrom, DPID idTo, DWORD dwFlags,
             LPDWORD lpdwNumMsgs, LPDWORD lpdwNumBytes )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
   return DP_IF_GetMessageQueue( This, idFrom, idTo, dwFlags, lpdwNumMsgs,
                                 lpdwNumBytes, TRUE );
 }
@@ -4706,7 +4706,7 @@
           ( LPDIRECTPLAY4 iface, DPID idFrom, DPID idTo, DWORD dwFlags,
             LPDWORD lpdwNumMsgs, LPDWORD lpdwNumBytes )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
   return DP_IF_GetMessageQueue( This, idFrom, idTo, dwFlags, lpdwNumMsgs,
                                 lpdwNumBytes, FALSE );
 }
@@ -4748,7 +4748,7 @@
 static HRESULT WINAPI DirectPlay4AImpl_CancelMessage
           ( LPDIRECTPLAY4A iface, DWORD dwMsgID, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
 
   if( dwFlags != 0 )
   {
@@ -4766,7 +4766,7 @@
 static HRESULT WINAPI DirectPlay4WImpl_CancelMessage
           ( LPDIRECTPLAY4 iface, DWORD dwMsgID, DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
 
   if( dwFlags != 0 )
   {
@@ -4785,7 +4785,7 @@
           ( LPDIRECTPLAY4A iface, DWORD dwMinPriority, DWORD dwMaxPriority,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
 
   if( dwFlags != 0 )
   {
@@ -4800,7 +4800,7 @@
           ( LPDIRECTPLAY4 iface, DWORD dwMinPriority, DWORD dwMaxPriority,
             DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlay4Impl,iface);
+  IDirectPlay4Impl *This = (IDirectPlay4Impl *)iface;
 
   if( dwFlags != 0 )
   {
diff --git a/dlls/dplayx/dplaysp.c b/dlls/dplayx/dplaysp.c
index 2227823..42f4154 100644
--- a/dlls/dplayx/dplaysp.c
+++ b/dlls/dplayx/dplaysp.c
@@ -101,7 +101,7 @@
 
   if( IsEqualGUID( &IID_IDirectPlaySP, riid ) )
   {
-    ICOM_THIS(IDirectPlaySPImpl,*ppvObj);
+    IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)*ppvObj;
     This->lpVtbl = &directPlaySPVT;
   }
   else
@@ -134,7 +134,7 @@
 
 static BOOL DPSP_CreateIUnknown( LPVOID lpSP )
 {
-  ICOM_THIS(IDirectPlaySPImpl,lpSP);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)lpSP;
 
   This->unk = (DirectPlaySPIUnknownData*)HeapAlloc( GetProcessHeap(),
                                                     HEAP_ZERO_MEMORY,
@@ -152,7 +152,7 @@
 
 static BOOL DPSP_DestroyIUnknown( LPVOID lpSP )
 {
-  ICOM_THIS(IDirectPlaySPImpl,lpSP);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)lpSP;
 
   DeleteCriticalSection( &This->unk->DPSP_lock );
   HeapFree( GetProcessHeap(), 0, This->unk );
@@ -163,7 +163,7 @@
 
 static BOOL DPSP_CreateDirectPlaySP( LPVOID lpSP, IDirectPlay2Impl* dp )
 {
-  ICOM_THIS(IDirectPlaySPImpl,lpSP);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)lpSP;
 
   This->sp = (DirectPlaySPData*)HeapAlloc( GetProcessHeap(),
                                            HEAP_ZERO_MEMORY,
@@ -196,7 +196,7 @@
 
 static BOOL DPSP_DestroyDirectPlaySP( LPVOID lpSP )
 {
-  ICOM_THIS(IDirectPlaySPImpl,lpSP);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)lpSP;
 
   /* Normally we should be keeping a reference, but since only the dplay
    * interface that created us can destroy us, we do not keep a reference
@@ -222,7 +222,7 @@
   REFIID riid,
   LPVOID* ppvObj )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
   TRACE("(%p)->(%s,%p)\n", This, debugstr_guid( riid ), ppvObj );
 
   *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
@@ -238,7 +238,7 @@
 
   if( IsEqualGUID( &IID_IDirectPlaySP, riid ) )
   {
-    ICOM_THIS(IDirectPlaySPImpl,*ppvObj);
+    IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)*ppvObj;
     This->lpVtbl = &directPlaySPVT;
   }
   else
@@ -259,7 +259,7 @@
 ( LPDIRECTPLAYSP iface )
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   ulObjRefCount       = InterlockedIncrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedIncrement( &This->ulInterfaceRef );
@@ -274,7 +274,7 @@
 ( LPDIRECTPLAYSP iface )
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   ulObjRefCount       = InterlockedDecrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedDecrement( &This->ulInterfaceRef );
@@ -306,7 +306,7 @@
   DWORD   dwMaxEntries
 )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   /* Should be able to call the comctl32 undocumented MRU routines.
      I suspect that the interface works appropriately */
@@ -326,7 +326,7 @@
   LPDWORD lpdwAddressSize
 )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   FIXME( "(%p)->(%s,%s,%p,0x%08lx,%p,%p): stub\n",
          This, debugstr_guid(guidSP), debugstr_guid(guidDataType),
@@ -343,7 +343,7 @@
   LPVOID lpContext
 )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   TRACE( "(%p)->(%p,%p,0x%08lx,%p)\n",
          This, lpEnumAddressCallback, lpAddress, dwAddressSize, lpContext );
@@ -361,7 +361,7 @@
   LPVOID lpContext
 )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   /* Should be able to call the comctl32 undocumented MRU routines.
      I suspect that the interface works appropriately */
@@ -377,7 +377,7 @@
   LPDWORD lpdwPlayerFlags
 )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   FIXME( "(%p)->(0x%08lx,%p): stub\n",
          This, idPlayer, lpdwPlayerFlags );
@@ -395,7 +395,7 @@
 {
   HRESULT hr;
   LPDP_SPPLAYERDATA lpPlayerData;
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   TRACE( "(%p)->(0x%08lx,%p,%p,0x%08lx)\n",
          This, idPlayer, lplpData, lpdwDataSize, dwFlags );
@@ -451,7 +451,7 @@
   WORD wVersion;
   DPSP_REPLYDATA data;
 
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   FIXME( "(%p)->(%p,0x%08lx,%p): mostly stub\n",
          This, lpMessageBody, dwMessageBodySize, lpMessageHeader );
@@ -764,7 +764,7 @@
   LPDP_SPPLAYERDATA lpPlayerEntry;
   LPVOID            lpPlayerData;
 
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
 /*  TRACE( "Called on process 0x%08lx\n", GetCurrentProcessId() ); */
   TRACE( "(%p)->(0x%08lx,%p,0x%08lx,0x%08lx)\n",
@@ -804,7 +804,7 @@
   LPDWORD lpdwAddressSize
 )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   FIXME( "(%p)->(%p,0x%08lx,%p,%p): stub\n",
          This, lpElements, dwElementCount, lpAddress, lpdwAddressSize );
@@ -820,7 +820,7 @@
 )
 {
   HRESULT hr = DP_OK;
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
 /*  TRACE( "Called on process 0x%08lx\n", GetCurrentProcessId() ); */
   TRACE( "(%p)->(%p,%p,0x%08lx)\n",
@@ -879,7 +879,7 @@
 {
   LPVOID lpSpData;
 
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
 /*  TRACE( "Called on process 0x%08lx\n", GetCurrentProcessId() ); */
   TRACE( "(%p)->(%p,0x%08lx,0x%08lx)\n",
@@ -936,7 +936,7 @@
   DWORD unknownB
 )
 {
-  ICOM_THIS(IDirectPlaySPImpl,iface);
+  IDirectPlaySPImpl *This = (IDirectPlaySPImpl *)iface;
 
   FIXME( "(%p)->(%p,0x%08lx): stub\n",
          This, unknownA, unknownB );
diff --git a/dlls/dplayx/dplobby.c b/dlls/dplayx/dplobby.c
index 325d7ab..c4eafb4 100644
--- a/dlls/dplayx/dplobby.c
+++ b/dlls/dplayx/dplobby.c
@@ -149,7 +149,7 @@
 
 static BOOL DPL_CreateIUnknown( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,lpDPL);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)lpDPL;
 
   This->unk = (DirectPlayLobbyIUnknownData*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                                        sizeof( *(This->unk) ) );
@@ -165,7 +165,7 @@
 
 static BOOL DPL_DestroyIUnknown( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,lpDPL);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)lpDPL;
 
   DeleteCriticalSection( &This->unk->DPL_lock );
   HeapFree( GetProcessHeap(), 0, This->unk );
@@ -175,7 +175,7 @@
 
 static BOOL DPL_CreateLobby1( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,lpDPL);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)lpDPL;
 
   This->dpl = (DirectPlayLobbyData*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                                sizeof( *(This->dpl) ) );
@@ -191,7 +191,7 @@
 
 static BOOL DPL_DestroyLobby1( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,lpDPL);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)lpDPL;
 
   if( This->dpl->dwMsgThread )
   {
@@ -208,7 +208,7 @@
 
 static BOOL DPL_CreateLobby2( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobby2AImpl,lpDPL);
+  IDirectPlayLobby2AImpl *This = (IDirectPlayLobby2AImpl *)lpDPL;
 
   This->dpl2 = (DirectPlayLobby2Data*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                                  sizeof( *(This->dpl2) ) );
@@ -222,7 +222,7 @@
 
 static BOOL DPL_DestroyLobby2( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobby2AImpl,lpDPL);
+  IDirectPlayLobby2AImpl *This = (IDirectPlayLobby2AImpl *)lpDPL;
 
   HeapFree( GetProcessHeap(), 0, This->dpl2 );
 
@@ -231,7 +231,7 @@
 
 static BOOL DPL_CreateLobby3( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobby3AImpl,lpDPL);
+  IDirectPlayLobby3AImpl *This = (IDirectPlayLobby3AImpl *)lpDPL;
 
   This->dpl3 = (DirectPlayLobby3Data*)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
                                                  sizeof( *(This->dpl3) ) );
@@ -245,7 +245,7 @@
 
 static BOOL DPL_DestroyLobby3( LPVOID lpDPL )
 {
-  ICOM_THIS(IDirectPlayLobby3AImpl,lpDPL);
+  IDirectPlayLobby3AImpl *This = (IDirectPlayLobby3AImpl *)lpDPL;
 
   HeapFree( GetProcessHeap(), 0, This->dpl3 );
 
@@ -292,32 +292,32 @@
 
   if( IsEqualGUID( &IID_IDirectPlayLobby, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobbyWImpl,*ppvObj);
+    IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobbyWVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobbyA, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobbyAImpl,*ppvObj);
+    IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobbyAVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby2, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby2WImpl,*ppvObj);
+    IDirectPlayLobby2WImpl *This = (IDirectPlayLobby2WImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby2WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby2A, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby2AImpl,*ppvObj);
+    IDirectPlayLobby2AImpl *This = (IDirectPlayLobby2AImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby2AVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby3, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby3WImpl,*ppvObj);
+    IDirectPlayLobby3WImpl *This = (IDirectPlayLobby3WImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby3WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby3A, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby3AImpl,*ppvObj);
+    IDirectPlayLobby3AImpl *This = (IDirectPlayLobby3AImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby3AVT;
   }
   else
@@ -356,7 +356,7 @@
   REFIID riid,
   LPVOID* ppvObj )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
   TRACE("(%p)->(%s,%p)\n", This, debugstr_guid( riid ), ppvObj );
 
   *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
@@ -372,32 +372,32 @@
 
   if( IsEqualGUID( &IID_IDirectPlayLobby, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobbyWImpl,*ppvObj);
+    IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobbyWVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobbyA, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobbyAImpl,*ppvObj);
+    IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobbyAVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby2, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby2WImpl,*ppvObj);
+    IDirectPlayLobby2WImpl *This = (IDirectPlayLobby2WImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby2WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby2A, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby2AImpl,*ppvObj);
+    IDirectPlayLobby2AImpl *This = (IDirectPlayLobby2AImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby2AVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby3, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby3WImpl,*ppvObj);
+    IDirectPlayLobby3WImpl *This = (IDirectPlayLobby3WImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby3WVT;
   }
   else if( IsEqualGUID( &IID_IDirectPlayLobby3A, riid ) )
   {
-    ICOM_THIS(IDirectPlayLobby3AImpl,*ppvObj);
+    IDirectPlayLobby3AImpl *This = (IDirectPlayLobby3AImpl *)*ppvObj;
     This->lpVtbl = &directPlayLobby3AVT;
   }
   else
@@ -422,7 +422,7 @@
 ( LPDIRECTPLAYLOBBY iface )
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
-  ICOM_THIS(IDirectPlayLobbyWImpl,iface);
+  IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)iface;
 
   ulObjRefCount       = InterlockedIncrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedIncrement( &This->ulInterfaceRef );
@@ -442,7 +442,7 @@
 ( LPDIRECTPLAYLOBBYA iface )
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
 
   ulObjRefCount       = InterlockedDecrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedDecrement( &This->ulInterfaceRef );
@@ -565,7 +565,7 @@
   LPDIRECTPLAY2A* lplpDP,
   IUnknown* pUnk)
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
   return DPL_ConnectEx( This, dwFlags, &IID_IDirectPlay2A,
                         (LPVOID)lplpDP, pUnk );
 }
@@ -576,7 +576,7 @@
   LPDIRECTPLAY2* lplpDP,
   IUnknown* pUnk)
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface); /* Yes cast to A */
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface; /* Yes cast to A */
   return DPL_ConnectEx( This, dwFlags, &IID_IDirectPlay2,
                         (LPVOID)lplpDP, pUnk );
 }
@@ -662,7 +662,7 @@
   DWORD dwAddressSize,
   LPVOID lpContext )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
 
   TRACE("(%p)->(%p,%p,0x%08lx,%p)\n", This, lpEnumAddressCallback, lpAddress,
                                       dwAddressSize, lpContext );
@@ -677,7 +677,7 @@
   DWORD dwAddressSize,
   LPVOID lpContext )
 {
-  ICOM_THIS(IDirectPlayLobbyWImpl,iface);
+  IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)iface;
 
   TRACE("(%p)->(%p,%p,0x%08lx,%p)\n", This, lpEnumAddressCallback, lpAddress,
                                       dwAddressSize, lpContext );
@@ -727,7 +727,7 @@
   LPVOID lpContext,
   DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
 
   HKEY   hkResult;
   LPCSTR searchSubKey    = "SOFTWARE\\Microsoft\\DirectPlay\\Service Providers";
@@ -869,7 +869,7 @@
   LPVOID lpContext,
   DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlayLobbyWImpl,iface);
+  IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)iface;
 
   FIXME("(%p)->(%p,%p,0x%08lx):stub\n", This, lpEnumLocalAppCallback, lpContext, dwFlags );
 
@@ -882,7 +882,7 @@
   LPVOID lpContext,
   DWORD dwFlags )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
 
   HKEY hkResult;
   LPCSTR searchSubKey    = "SOFTWARE\\Microsoft\\DirectPlay\\Applications";
@@ -984,7 +984,7 @@
   LPVOID lpData,
   LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
   HRESULT hr;
 
   TRACE("(%p)->(0x%08lx,%p,%p)\n", This, dwAppID, lpData, lpdwDataSize );
@@ -1007,7 +1007,7 @@
   LPVOID lpData,
   LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlayLobbyWImpl,iface);
+  IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)iface;
   HRESULT hr;
 
   TRACE("(%p)->(0x%08lx,%p,%p)\n", This, dwAppID, lpData, lpdwDataSize );
@@ -1038,7 +1038,7 @@
   LPVOID lpData,
   LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
   FIXME(":stub %p %08lx %08lx %p %p %p\n", This, dwFlags, dwAppID, lpdwMessageFlags, lpData,
          lpdwDataSize );
   return DPERR_OUTOFMEMORY;
@@ -1052,7 +1052,7 @@
   LPVOID lpData,
   LPDWORD lpdwDataSize )
 {
-  ICOM_THIS(IDirectPlayLobbyWImpl,iface);
+  IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)iface;
   FIXME(":stub %p %08lx %08lx %p %p %p\n", This, dwFlags, dwAppID, lpdwMessageFlags, lpData,
          lpdwDataSize );
   return DPERR_OUTOFMEMORY;
@@ -1212,7 +1212,7 @@
   LPDPLCONNECTION lpConn,
   HANDLE hReceiveEvent )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
   HRESULT hr;
   RunApplicationEnumStruct enumData;
   char temp[200];
@@ -1342,7 +1342,7 @@
   LPDPLCONNECTION lpConn,
   HANDLE hReceiveEvent )
 {
-  ICOM_THIS(IDirectPlayLobbyWImpl,iface);
+  IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)iface;
   FIXME( "(%p)->(0x%08lx,%p,%p,%p):stub\n", This, dwFlags, lpdwAppID, lpConn, (void *)hReceiveEvent );
   return DPERR_OUTOFMEMORY;
 }
@@ -1387,7 +1387,7 @@
   DWORD dwAppID,
   LPDPLCONNECTION lpConn )
 {
-  ICOM_THIS(IDirectPlayLobbyWImpl,iface);
+  IDirectPlayLobbyWImpl *This = (IDirectPlayLobbyWImpl *)iface;
   HRESULT hr;
 
   TRACE("(%p)->(0x%08lx,0x%08lx,%p)\n", This, dwFlags, dwAppID, lpConn );
@@ -1421,7 +1421,7 @@
   DWORD dwAppID,
   LPDPLCONNECTION lpConn )
 {
-  ICOM_THIS(IDirectPlayLobbyAImpl,iface);
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface;
   HRESULT hr;
 
   TRACE("(%p)->(0x%08lx,0x%08lx,%p)\n", This, dwFlags, dwAppID, lpConn );
@@ -1678,7 +1678,7 @@
 ( LPDIRECTPLAYLOBBY3 iface, DWORD dwFlags, REFIID riid,
   LPVOID* lplpDP, IUnknown* pUnk )
 {
-  ICOM_THIS( IDirectPlayLobbyAImpl, iface );
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface ;
   return DPL_ConnectEx( This, dwFlags, riid, lplpDP, pUnk );
 }
 
@@ -1686,7 +1686,7 @@
 ( LPDIRECTPLAYLOBBY3A iface, DWORD dwFlags, REFIID riid,
   LPVOID* lplpDP, IUnknown* pUnk )
 {
-  ICOM_THIS( IDirectPlayLobbyAImpl, iface );
+  IDirectPlayLobbyAImpl *This = (IDirectPlayLobbyAImpl *)iface ;
   return DPL_ConnectEx( This, dwFlags, riid, lplpDP, pUnk );
 }
 
diff --git a/dlls/dplayx/lobbysp.c b/dlls/dplayx/lobbysp.c
index 4f57d98..8e42a15 100644
--- a/dlls/dplayx/lobbysp.c
+++ b/dlls/dplayx/lobbysp.c
@@ -77,7 +77,7 @@
 
   if( IsEqualGUID( &IID_IDPLobbySP, riid ) )
   {
-    ICOM_THIS(IDPLobbySPImpl,*ppvObj);
+    IDPLobbySPImpl *This = (IDPLobbySPImpl *)*ppvObj;
     This->lpVtbl = &dpLobbySPVT;
   }
   else
@@ -110,7 +110,7 @@
 
 static BOOL DPLSP_CreateIUnknown( LPVOID lpSP )
 {
-  ICOM_THIS(IDPLobbySPImpl,lpSP);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)lpSP;
 
   This->unk = (DPLobbySPIUnknownData*)HeapAlloc( GetProcessHeap(),
                                                     HEAP_ZERO_MEMORY,
@@ -128,7 +128,7 @@
 
 static BOOL DPLSP_DestroyIUnknown( LPVOID lpSP )
 {
-  ICOM_THIS(IDPLobbySPImpl,lpSP);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)lpSP;
 
   DeleteCriticalSection( &This->unk->DPLSP_lock );
   HeapFree( GetProcessHeap(), 0, This->unk );
@@ -138,7 +138,7 @@
 
 static BOOL DPLSP_CreateDPLobbySP( LPVOID lpSP, IDirectPlay2Impl* dp )
 {
-  ICOM_THIS(IDPLobbySPImpl,lpSP);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)lpSP;
 
   This->sp = (DPLobbySPData*)HeapAlloc( GetProcessHeap(),
                                         HEAP_ZERO_MEMORY,
@@ -172,7 +172,7 @@
 
 static BOOL DPLSP_DestroyDPLobbySP( LPVOID lpSP )
 {
-  ICOM_THIS(IDPLobbySPImpl,lpSP);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)lpSP;
 
   HeapFree( GetProcessHeap(), 0, This->sp );
 
@@ -186,7 +186,7 @@
   LPVOID* ppvObj
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   TRACE("(%p)->(%s,%p)\n", This, debugstr_guid( riid ), ppvObj );
 
   *ppvObj = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY,
@@ -202,7 +202,7 @@
 
   if( IsEqualGUID( &IID_IDPLobbySP, riid ) )
   {
-    ICOM_THIS(IDPLobbySPImpl,*ppvObj);
+    IDPLobbySPImpl *This = (IDPLobbySPImpl *)*ppvObj;
     This->lpVtbl = &dpLobbySPVT;
   }
   else
@@ -224,7 +224,7 @@
 ( LPDPLOBBYSP iface )
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
 
   ulObjRefCount       = InterlockedIncrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedIncrement( &This->ulInterfaceRef );
@@ -240,7 +240,7 @@
 ( LPDPLOBBYSP iface )
 {
   ULONG ulInterfaceRefCount, ulObjRefCount;
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
 
   ulObjRefCount       = InterlockedDecrement( &This->unk->ulObjRef );
   ulInterfaceRefCount = InterlockedDecrement( &This->ulInterfaceRef );
@@ -269,7 +269,7 @@
   LPSPDATA_ADDREMOTEGROUPTOGROUP argtg
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, argtg );
   return DP_OK;
 }
@@ -280,7 +280,7 @@
   LPSPDATA_ADDREMOTEPLAYERTOGROUP arptg
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, arptg );
   return DP_OK;
 }
@@ -291,7 +291,7 @@
   LPSPDATA_CREATEREMOTEGROUP crg
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, crg );
   return DP_OK;
 }
@@ -302,7 +302,7 @@
   LPSPDATA_CREATEREMOTEGROUPINGROUP crgig
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, crgig );
   return DP_OK;
 }
@@ -313,7 +313,7 @@
   LPSPDATA_DELETEREMOTEGROUPFROMGROUP drgfg
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, drgfg );
   return DP_OK;
 }
@@ -324,7 +324,7 @@
   LPSPDATA_DELETEREMOTEPLAYERFROMGROUP drpfg
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, drpfg );
   return DP_OK;
 }
@@ -335,7 +335,7 @@
   LPSPDATA_DESTROYREMOTEGROUP drg
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, drg );
   return DP_OK;
 }
@@ -346,7 +346,7 @@
   LPSPDATA_ENUMSESSIONSRESPONSE er
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, er );
   return DP_OK;
 }
@@ -357,7 +357,7 @@
   LPVOID* lplpData
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, lplpData );
   return DP_OK;
 }
@@ -368,7 +368,7 @@
   LPSPDATA_HANDLEMESSAGE hm
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, hm );
   return DP_OK;
 }
@@ -379,7 +379,7 @@
   LPSPDATA_CHATMESSAGE cm
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, cm );
   return DP_OK;
 }
@@ -390,7 +390,7 @@
   LPSPDATA_SETREMOTEGROUPNAME srgn
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, srgn );
   return DP_OK;
 }
@@ -401,7 +401,7 @@
   LPSPDATA_SETREMOTEPLAYERNAME srpn
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, srpn );
   return DP_OK;
 }
@@ -412,7 +412,7 @@
   LPSPDATA_SETSESSIONDESC ssd
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, ssd );
   return DP_OK;
 }
@@ -423,7 +423,7 @@
   LPVOID lpData
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, lpData );
   return DP_OK;
 }
@@ -434,7 +434,7 @@
   LPSPDATA_STARTSESSIONCOMMAND ssc
 )
 {
-  ICOM_THIS(IDPLobbySPImpl,iface);
+  IDPLobbySPImpl *This = (IDPLobbySPImpl *)iface;
   FIXME( "(%p)->(%p):stub\n", This, ssc );
   return DP_OK;
 }
diff --git a/dlls/dpnet/address.c b/dlls/dpnet/address.c
index 7fb508c..4737a2a 100644
--- a/dlls/dpnet/address.c
+++ b/dlls/dpnet/address.c
@@ -39,7 +39,7 @@
 /* IDirectPlay8Address IUnknown parts follow: */
 HRESULT WINAPI IDirectPlay8AddressImpl_QueryInterface(PDIRECTPLAY8ADDRESS iface, REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IDirectPlay8AddressImpl,iface);
+    IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
         || IsEqualGUID(riid, &IID_IDirectPlay8Address)) {
@@ -53,13 +53,13 @@
 }
 
 ULONG WINAPI IDirectPlay8AddressImpl_AddRef(PDIRECTPLAY8ADDRESS iface) {
-    ICOM_THIS(IDirectPlay8AddressImpl,iface);
+    IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
     TRACE("(%p) : AddRef from %ld\n", This, This->ref);
     return ++(This->ref);
 }
 
 ULONG WINAPI IDirectPlay8AddressImpl_Release(PDIRECTPLAY8ADDRESS iface) {
-    ICOM_THIS(IDirectPlay8AddressImpl,iface);
+    IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
     ULONG ref = --This->ref;
     TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
     if (ref == 0) {
@@ -71,101 +71,101 @@
 /* IDirectPlay8Address Interface follow: */
 
 HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromURLW(PDIRECTPLAY8ADDRESS iface, WCHAR* pwszSourceURL) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %s): stub\n", This, debugstr_w(pwszSourceURL));
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromURLA(PDIRECTPLAY8ADDRESS iface, CHAR* pszSourceURL) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %s): stub\n", This, pszSourceURL);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_Duplicate(PDIRECTPLAY8ADDRESS iface, PDIRECTPLAY8ADDRESS* ppdpaNewAddress) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %p): stub\n", This, ppdpaNewAddress);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_SetEqual(PDIRECTPLAY8ADDRESS iface, PDIRECTPLAY8ADDRESS pdpaAddress) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %p): stub\n", This, pdpaAddress);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_IsEqual(PDIRECTPLAY8ADDRESS iface, PDIRECTPLAY8ADDRESS pdpaAddress) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %p): stub\n", This, pdpaAddress);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_Clear(PDIRECTPLAY8ADDRESS iface) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetURLW(PDIRECTPLAY8ADDRESS iface, WCHAR* pwszURL, PDWORD pdwNumChars) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetURLA(PDIRECTPLAY8ADDRESS iface, CHAR* pszURL, PDWORD pdwNumChars) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetSP(PDIRECTPLAY8ADDRESS iface, GUID* pguidSP) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %p)\n", iface, pguidSP);
   memcpy(pguidSP, &This->SP_guid, sizeof(GUID));
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetUserData(PDIRECTPLAY8ADDRESS iface, LPVOID pvUserData, PDWORD pdwBufferSize) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_SetSP(PDIRECTPLAY8ADDRESS iface, CONST GUID* CONST pguidSP) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %s)\n", iface, debugstr_SP(pguidSP));
   memcpy(&This->SP_guid, pguidSP, sizeof(GUID));
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_SetUserData(PDIRECTPLAY8ADDRESS iface, CONST void* CONST pvUserData, CONST DWORD dwDataSize) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetNumComponents(PDIRECTPLAY8ADDRESS iface, PDWORD pdwNumComponents) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetComponentByName(PDIRECTPLAY8ADDRESS iface, CONST WCHAR* CONST pwszName, LPVOID pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetComponentByIndex(PDIRECTPLAY8ADDRESS iface, CONST DWORD dwComponentID, WCHAR* pwszName, 
 							   PDWORD pdwNameLen, void* pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_AddComponent(PDIRECTPLAY8ADDRESS iface, CONST WCHAR* CONST pwszName, 
 						    CONST void* CONST lpvData, CONST DWORD dwDataSize, CONST DWORD dwDataType) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %s, %p, %lu, %lx): stub\n", This, debugstr_w(pwszName), lpvData, dwDataSize, dwDataType);
   
   if (NULL == lpvData) return DPNERR_INVALIDPOINTER;
@@ -190,19 +190,19 @@
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_GetDevice(PDIRECTPLAY8ADDRESS iface, GUID* pDevGuid) {   
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_SetDevice(PDIRECTPLAY8ADDRESS iface, CONST GUID* CONST devGuid) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p, %s): stub\n", This, debugstr_guid(devGuid));
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8AddressImpl_BuildFromDirectPlay4Address(PDIRECTPLAY8ADDRESS iface, LPVOID pvAddress, DWORD dwDataSize) { 
-  ICOM_THIS(IDirectPlay8AddressImpl,iface);
+  IDirectPlay8AddressImpl *This = (IDirectPlay8AddressImpl *)iface;
   TRACE("(%p): stub\n", This);
   return DPN_OK; 
 }
diff --git a/dlls/dpnet/client.c b/dlls/dpnet/client.c
index bcb8957..4596f95 100644
--- a/dlls/dpnet/client.c
+++ b/dlls/dpnet/client.c
@@ -39,7 +39,7 @@
 /* IDirectPlay8Client IUnknown parts follow: */
 HRESULT WINAPI IDirectPlay8ClientImpl_QueryInterface(PDIRECTPLAY8CLIENT iface, REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IDirectPlay8ClientImpl,iface);
+    IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
         || IsEqualGUID(riid, &IID_IDirectPlay8Client)) {
@@ -53,13 +53,13 @@
 }
 
 ULONG WINAPI IDirectPlay8ClientImpl_AddRef(PDIRECTPLAY8CLIENT iface) {
-    ICOM_THIS(IDirectPlay8ClientImpl,iface);
+    IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
     TRACE("(%p) : AddRef from %ld\n", This, This->ref);
     return ++(This->ref);
 }
 
 ULONG WINAPI IDirectPlay8ClientImpl_Release(PDIRECTPLAY8CLIENT iface) {
-    ICOM_THIS(IDirectPlay8ClientImpl,iface);
+    IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
     ULONG ref = --This->ref;
     TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
     if (ref == 0) {
@@ -71,7 +71,7 @@
 /* IDirectPlay8Client Interface follow: */
 
 HRESULT WINAPI IDirectPlay8ClientImpl_Initialize(PDIRECTPLAY8CLIENT iface,  PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvUserContext, pfn, dwFlags);
   return DPN_OK; 
 }
@@ -83,7 +83,7 @@
 							   PDWORD CONST pcbEnumData, 
 							   PDWORD CONST pcReturned, 
 							   CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
@@ -98,14 +98,14 @@
 						PVOID CONST pvUserContext, 
 						DPNHANDLE * CONST pAsyncHandle, 
 						CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   /*FIXME("(%p):(%p,%p,%p,%p,%lu,%lu,%lu,%lu): Stub\n", This, pApplicationDesc, pAddrHost, pDeviceInfo, pUserEnumData, dwUserEnumDataSize, dwEnumCount, dwRetryInterval, dwTimeOut);*/
   FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvUserContext, pAsyncHandle, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_CancelAsyncOperation(PDIRECTPLAY8CLIENT iface, CONST DPNHANDLE hAsyncHandle, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lu,%lx): Stub\n", This, hAsyncHandle, dwFlags);
   return DPN_OK; 
 }
@@ -121,7 +121,7 @@
 					      void * CONST pvAsyncContext, 
 					      DPNHANDLE * CONST phAsyncHandle, 
 					      CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
   return DPN_OK; 
 }
@@ -133,19 +133,19 @@
 					   void * CONST pvAsyncContext, 
 					   DPNHANDLE * CONST phAsyncHandle, 
 					   CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_GetSendQueueInfo(PDIRECTPLAY8CLIENT iface, DWORD * CONST pdwNumMsgs, DWORD * CONST pdwNumBytes, CONST DWORD dwFlags) {
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_GetApplicationDesc(PDIRECTPLAY8CLIENT iface, DPN_APPLICATION_DESC * CONST pAppDescBuffer, DWORD * CONST pcbDataSize, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
@@ -155,67 +155,67 @@
 						    PVOID CONST pvAsyncContext, 
 						    DPNHANDLE * CONST phAsyncHandle, 
 						    CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%p,%p,%lx): Stub\n", This, pvAsyncContext, phAsyncHandle, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_GetServerInfo(PDIRECTPLAY8CLIENT iface, DPN_PLAYER_INFO * CONST pdpnPlayerInfo, DWORD * CONST pdwSize, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_GetServerAddress(PDIRECTPLAY8CLIENT iface, IDirectPlay8Address ** CONST pAddress, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_Close(PDIRECTPLAY8CLIENT iface, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_ReturnBuffer(PDIRECTPLAY8CLIENT iface, CONST DPNHANDLE hBufferHandle, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_GetCaps(PDIRECTPLAY8CLIENT iface, DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_SetCaps(PDIRECTPLAY8CLIENT iface, CONST DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_SetSPCaps(PDIRECTPLAY8CLIENT iface, CONST GUID * CONST pguidSP, CONST DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags ) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_GetSPCaps(PDIRECTPLAY8CLIENT iface, CONST GUID * CONST pguidSP, DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_GetConnectionInfo(PDIRECTPLAY8CLIENT iface, DPN_CONNECTION_INFO * CONST pdpConnectionInfo, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
 
 HRESULT WINAPI IDirectPlay8ClientImpl_RegisterLobby(PDIRECTPLAY8CLIENT iface, CONST DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication * CONST pIDP8LobbiedApplication, CONST DWORD dwFlags) { 
-  ICOM_THIS(IDirectPlay8ClientImpl,iface);
+  IDirectPlay8ClientImpl *This = (IDirectPlay8ClientImpl *)iface;
   FIXME("(%p):(%lx): Stub\n", This, dwFlags);
   return DPN_OK; 
 }
diff --git a/dlls/dpnet/dpnet_main.c b/dlls/dpnet/dpnet_main.c
index fe951eb..9977377 100644
--- a/dlls/dpnet/dpnet_main.c
+++ b/dlls/dpnet/dpnet_main.c
@@ -72,32 +72,32 @@
 } IClassFactoryImpl;
 
 static HRESULT WINAPI DICF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   
   FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
   return E_NOINTERFACE;
 }
 
 static ULONG WINAPI DICF_AddRef(LPCLASSFACTORY iface) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   return ++(This->ref);
 }
 
 static ULONG WINAPI DICF_Release(LPCLASSFACTORY iface) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   /* static class, won't be  freed */
   return --(This->ref);
 }
 
 static HRESULT WINAPI DICF_CreateInstance(LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   
   TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
   return This->pfnCreateInstanceFactory(iface, pOuter, riid, ppobj);
 }
 
 static HRESULT WINAPI DICF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   FIXME("(%p)->(%d),stub!\n",This,dolock);
   return S_OK;
 }
diff --git a/dlls/dswave/dswave_main.c b/dlls/dswave/dswave_main.c
index 556ee68..e4427e1 100644
--- a/dlls/dswave/dswave_main.c
+++ b/dlls/dswave/dswave_main.c
@@ -33,30 +33,30 @@
  *		DirectMusicWave ClassFactory
  */
 static HRESULT WINAPI WaveCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %s, %p): stub\n", This, debugstr_dmguid(riid), ppobj);
 	return E_NOINTERFACE;
 }
 
 static ULONG WINAPI WaveCF_AddRef(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	return ++(This->ref);
 }
 
 static ULONG WINAPI WaveCF_Release(LPCLASSFACTORY iface) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	/* static class, won't be  freed */
 	return --(This->ref);
 }
 
 static HRESULT WINAPI WaveCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	TRACE ("(%p, %p, %s, %p)\n", This, pOuter, debugstr_dmguid(riid), ppobj);
 	return DMUSIC_CreateDirectMusicWaveImpl (riid, ppobj, pOuter);
 }
 
 static HRESULT WINAPI WaveCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-	ICOM_THIS(IClassFactoryImpl,iface);
+	IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 	FIXME("(%p, %d): stub\n", This, dolock);
 	return S_OK;
 }
diff --git a/dlls/dxdiagn/container.c b/dlls/dxdiagn/container.c
index b5e25bb..04348c0 100644
--- a/dlls/dxdiagn/container.c
+++ b/dlls/dxdiagn/container.c
@@ -29,7 +29,7 @@
 /* IDxDiagContainer IUnknown parts follow: */
 HRESULT WINAPI IDxDiagContainerImpl_QueryInterface(PDXDIAGCONTAINER iface, REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IDxDiagContainerImpl,iface);
+    IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
         || IsEqualGUID(riid, &IID_IDxDiagContainer)) {
@@ -43,13 +43,13 @@
 }
 
 ULONG WINAPI IDxDiagContainerImpl_AddRef(PDXDIAGCONTAINER iface) {
-    ICOM_THIS(IDxDiagContainerImpl,iface);
+    IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
     TRACE("(%p) : AddRef from %ld\n", This, This->ref);
     return ++(This->ref);
 }
 
 ULONG WINAPI IDxDiagContainerImpl_Release(PDXDIAGCONTAINER iface) {
-    ICOM_THIS(IDxDiagContainerImpl,iface);
+    IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
     ULONG ref = --This->ref;
     TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
     if (ref == 0) {
@@ -60,7 +60,7 @@
 
 /* IDxDiagContainer Interface follow: */
 HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfChildContainers(PDXDIAGCONTAINER iface, DWORD* pdwCount) {
-  ICOM_THIS(IDxDiagContainerImpl,iface);
+  IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
   TRACE("(%p)\n", iface);
   if (NULL == pdwCount) {
     return E_INVALIDARG;
@@ -72,7 +72,7 @@
 HRESULT WINAPI IDxDiagContainerImpl_EnumChildContainerNames(PDXDIAGCONTAINER iface, DWORD dwIndex, LPWSTR pwszContainer, DWORD cchContainer) {
   IDxDiagContainerImpl_SubContainer* p = NULL;
   DWORD i = 0;
-  ICOM_THIS(IDxDiagContainerImpl,iface);
+  IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
   
   TRACE("(%p, %lu, %s, %lu)\n", iface, dwIndex, debugstr_w(pwszContainer), cchContainer);
 
@@ -100,7 +100,7 @@
 
 HRESULT WINAPI IDxDiagContainerImpl_GetChildContainer(PDXDIAGCONTAINER iface, LPCWSTR pwszContainer, IDxDiagContainer** ppInstance) {
   IDxDiagContainerImpl_SubContainer* p = NULL;
-  ICOM_THIS(IDxDiagContainerImpl,iface);
+  IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface;
 
   FIXME("(%p, %s, %p)\n", iface, debugstr_w(pwszContainer), ppInstance);
 
@@ -121,19 +121,19 @@
 }
 
 HRESULT WINAPI IDxDiagContainerImpl_GetNumberOfProps(PDXDIAGCONTAINER iface, DWORD* pdwCount) {
-  /* ICOM_THIS(IDxDiagContainerImpl,iface); */
+  /* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
   FIXME("(%p, %p): stub\n", iface, pdwCount);
   return S_OK;
 }
 
 HRESULT WINAPI IDxDiagContainerImpl_EnumPropNames(PDXDIAGCONTAINER iface, DWORD dwIndex, LPWSTR pwszPropName, DWORD cchPropName) {
-  /* ICOM_THIS(IDxDiagContainerImpl,iface); */
+  /* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
   FIXME("(%p, %lu, %s, %lu): stub\n", iface, dwIndex, debugstr_w(pwszPropName), cchPropName);
   return S_OK;
 }
 
 HRESULT WINAPI IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface, LPCWSTR pwszPropName, VARIANT* pvarProp) {
-  /* ICOM_THIS(IDxDiagContainerImpl,iface); */
+  /* IDxDiagContainerImpl *This = (IDxDiagContainerImpl *)iface; */
   FIXME("(%p, %s, %p): stub\n", iface, debugstr_w(pwszPropName), pvarProp);
   return S_OK;
 }
diff --git a/dlls/dxdiagn/dxdiag_main.c b/dlls/dxdiagn/dxdiag_main.c
index b1fb211..0283fce 100644
--- a/dlls/dxdiagn/dxdiag_main.c
+++ b/dlls/dxdiagn/dxdiag_main.c
@@ -47,32 +47,32 @@
 } IClassFactoryImpl;
 
 static HRESULT WINAPI DXDiagCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   
   FIXME("(%p)->(%s,%p),stub!\n",This,debugstr_guid(riid),ppobj);
   return E_NOINTERFACE;
 }
 
 static ULONG WINAPI DXDiagCF_AddRef(LPCLASSFACTORY iface) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   return ++(This->ref);
 }
 
 static ULONG WINAPI DXDiagCF_Release(LPCLASSFACTORY iface) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   /* static class, won't be  freed */
   return --(This->ref);
 }
 
 static HRESULT WINAPI DXDiagCF_CreateInstance(LPCLASSFACTORY iface,LPUNKNOWN pOuter,REFIID riid,LPVOID *ppobj) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   
   TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
   return This->pfnCreateInstanceFactory(iface, pOuter, riid, ppobj);
 }
 
 static HRESULT WINAPI DXDiagCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   FIXME("(%p)->(%d),stub!\n",This,dolock);
   return S_OK;
 }
diff --git a/dlls/dxdiagn/provider.c b/dlls/dxdiagn/provider.c
index 1b259d2..3e65119 100644
--- a/dlls/dxdiagn/provider.c
+++ b/dlls/dxdiagn/provider.c
@@ -28,7 +28,7 @@
 /* IDxDiagProvider IUnknown parts follow: */
 HRESULT WINAPI IDxDiagProviderImpl_QueryInterface(PDXDIAGPROVIDER iface, REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IDxDiagProviderImpl,iface);
+    IDxDiagProviderImpl *This = (IDxDiagProviderImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
         || IsEqualGUID(riid, &IID_IDxDiagProvider)) {
@@ -42,13 +42,13 @@
 }
 
 ULONG WINAPI IDxDiagProviderImpl_AddRef(PDXDIAGPROVIDER iface) {
-    ICOM_THIS(IDxDiagProviderImpl,iface);
+    IDxDiagProviderImpl *This = (IDxDiagProviderImpl *)iface;
     TRACE("(%p) : AddRef from %ld\n", This, This->ref);
     return ++(This->ref);
 }
 
 ULONG WINAPI IDxDiagProviderImpl_Release(PDXDIAGPROVIDER iface) {
-    ICOM_THIS(IDxDiagProviderImpl,iface);
+    IDxDiagProviderImpl *This = (IDxDiagProviderImpl *)iface;
     ULONG ref = --This->ref;
     TRACE("(%p) : ReleaseRef to %ld\n", This, This->ref);
     if (ref == 0) {
@@ -59,7 +59,7 @@
 
 /* IDxDiagProvider Interface follow: */
 HRESULT WINAPI IDxDiagProviderImpl_Initialize(PDXDIAGPROVIDER iface, DXDIAG_INIT_PARAMS* pParams) {
-    ICOM_THIS(IDxDiagProviderImpl, iface);
+    IDxDiagProviderImpl *This = (IDxDiagProviderImpl *)iface;
     TRACE("(%p,%p)\n", iface, pParams);
 
     if (NULL == pParams) {
@@ -76,7 +76,7 @@
 
 HRESULT WINAPI IDxDiagProviderImpl_GetRootContainer(PDXDIAGPROVIDER iface, IDxDiagContainer** ppInstance) {
   HRESULT hr = S_OK;
-  ICOM_THIS(IDxDiagProviderImpl, iface);
+  IDxDiagProviderImpl *This = (IDxDiagProviderImpl *)iface;
   TRACE("(%p,%p)\n", iface, ppInstance);
 
   if (NULL == ppInstance) {
diff --git a/dlls/itss/itss.c b/dlls/itss/itss.c
index 25e1938..263fdac 100644
--- a/dlls/itss/itss.c
+++ b/dlls/itss/itss.c
@@ -89,7 +89,7 @@
 static HRESULT WINAPI
 ITSSCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IClassFactory))
@@ -104,12 +104,12 @@
 }
 
 static ULONG WINAPI ITSSCF_AddRef(LPCLASSFACTORY iface) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     return ++(This->ref);
 }
 
 static ULONG WINAPI ITSSCF_Release(LPCLASSFACTORY iface) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     ULONG ref = --This->ref;
 
@@ -122,7 +122,7 @@
 
 static HRESULT WINAPI ITSSCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter,
 					  REFIID riid, LPVOID *ppobj) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     HRESULT hres;
     LPUNKNOWN punk;
     
@@ -143,7 +143,7 @@
 }
 
 static HRESULT WINAPI ITSSCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     FIXME("(%p)->(%d),stub!\n",This,dolock);
     return S_OK;
 }
@@ -211,7 +211,7 @@
     REFIID riid,
     void** ppvObject)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IITStorage))
     {
@@ -227,7 +227,7 @@
 ULONG WINAPI ITStorageImpl_AddRef(
     IITStorage* iface)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     TRACE("%p\n", This);
     return ++(This->ref);
 }
@@ -235,7 +235,7 @@
 ULONG WINAPI ITStorageImpl_Release(
     IITStorage* iface)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     ULONG ref = --This->ref;
 
     if (ref == 0)
@@ -251,7 +251,7 @@
     DWORD reserved,
     IStorage** ppstgOpen)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
 
     TRACE("%p %s %lu %lu %p\n", This,
           debugstr_w(pwcsName), grfMode, reserved, ppstgOpen );
@@ -267,7 +267,7 @@
     DWORD reserved,
     IStorage** ppstgOpen)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
@@ -276,7 +276,7 @@
     IITStorage* iface,
     const WCHAR* pwcsName)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
@@ -285,7 +285,7 @@
     IITStorage* iface,
     ILockBytes* plkbyt)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
@@ -299,7 +299,7 @@
     DWORD reserved,
     IStorage** ppstgOpen)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
 
     TRACE("%p %s %p %ld %p\n", This, debugstr_w( pwcsName ),
            pstgPriority, grfMode, snbExclude );
@@ -317,7 +317,7 @@
     DWORD reserved,
     IStorage** ppstgOpen)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
@@ -329,7 +329,7 @@
     FILETIME* patime,
     FILETIME* pmtime)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
@@ -338,7 +338,7 @@
     IITStorage* iface,
     PITS_Control_Data pControlData)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
@@ -347,7 +347,7 @@
     IITStorage* iface,
     PITS_Control_Data* ppControlData)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
@@ -357,7 +357,7 @@
     const WCHAR* pwcsName,
     ECompactionLev iLev)
 {
-    ICOM_THIS(ITStorageImpl,iface);
+    ITStorageImpl *This = (ITStorageImpl *)iface;
     FIXME("%p\n", This);
     return E_NOTIMPL;
 }
diff --git a/dlls/itss/moniker.c b/dlls/itss/moniker.c
index b96db4e..62b222f 100644
--- a/dlls/itss/moniker.c
+++ b/dlls/itss/moniker.c
@@ -57,7 +57,7 @@
     REFIID riid,
     void** ppvObject)
 {
-    ICOM_THIS(ITS_IMonikerImpl,iface);
+    ITS_IMonikerImpl *This = (ITS_IMonikerImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IParseDisplayName))
@@ -74,7 +74,7 @@
 static ULONG WINAPI ITS_IMonikerImpl_AddRef(
     IMoniker* iface)
 {
-    ICOM_THIS(ITS_IMonikerImpl,iface);
+    ITS_IMonikerImpl *This = (ITS_IMonikerImpl *)iface;
     TRACE("%p\n", This);
     return ++(This->ref);
 }
@@ -82,7 +82,7 @@
 static ULONG WINAPI ITS_IMonikerImpl_Release(
     IMoniker* iface)
 {
-    ICOM_THIS(ITS_IMonikerImpl,iface);
+    ITS_IMonikerImpl *This = (ITS_IMonikerImpl *)iface;
     ULONG ref = --This->ref;
 
     if (ref == 0)
@@ -96,7 +96,7 @@
     IMoniker* iface,
     CLSID* pClassID)
 {
-    ICOM_THIS(ITS_IMonikerImpl,iface);
+    ITS_IMonikerImpl *This = (ITS_IMonikerImpl *)iface;
 
     TRACE("%p %p\n", This, pClassID);
     memcpy( pClassID, &CLSID_ITStorage, sizeof (CLSID) );
@@ -155,7 +155,7 @@
     REFIID riid,
     void** ppvObj)
 {
-    ICOM_THIS(ITS_IMonikerImpl,iface);
+    ITS_IMonikerImpl *This = (ITS_IMonikerImpl *)iface;
     DWORD grfMode = STGM_SIMPLE | STGM_READ | STGM_SHARE_EXCLUSIVE;
     HRESULT r;
     IStorage *stg = NULL;
@@ -279,7 +279,7 @@
     IMoniker* pmkToLeft,
     LPOLESTR* ppszDisplayName)
 {
-    ICOM_THIS(ITS_IMonikerImpl,iface);
+    ITS_IMonikerImpl *This = (ITS_IMonikerImpl *)iface;
     static const WCHAR szFormat[] = {
         'm','s','-','i','t','s',':','%','s',':',':','%','s',0 };
     DWORD len = sizeof szFormat / sizeof(WCHAR);
@@ -379,7 +379,7 @@
     REFIID riid,
     void** ppvObject)
 {
-    ICOM_THIS(ITS_IParseDisplayNameImpl,iface);
+    ITS_IParseDisplayNameImpl *This = (ITS_IParseDisplayNameImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IParseDisplayName))
@@ -396,7 +396,7 @@
 static ULONG WINAPI ITS_IParseDisplayNameImpl_AddRef(
     IParseDisplayName* iface)
 {
-    ICOM_THIS(ITS_IParseDisplayNameImpl,iface);
+    ITS_IParseDisplayNameImpl *This = (ITS_IParseDisplayNameImpl *)iface;
     TRACE("%p\n", This);
     return ++(This->ref);
 }
@@ -404,7 +404,7 @@
 static ULONG WINAPI ITS_IParseDisplayNameImpl_Release(
     IParseDisplayName* iface)
 {
-    ICOM_THIS(ITS_IParseDisplayNameImpl,iface);
+    ITS_IParseDisplayNameImpl *This = (ITS_IParseDisplayNameImpl *)iface;
     ULONG ref = --This->ref;
 
     if (ref == 0)
@@ -425,7 +425,7 @@
     const DWORD prefix_len = (sizeof szPrefix/sizeof szPrefix[0])-1;
     DWORD n;
 
-    ICOM_THIS(ITS_IParseDisplayNameImpl,iface);
+    ITS_IParseDisplayNameImpl *This = (ITS_IParseDisplayNameImpl *)iface;
 
     TRACE("%p %s %p %p\n", This,
           debugstr_w( pszDisplayName ), pchEaten, ppmkOut );
diff --git a/dlls/itss/storage.c b/dlls/itss/storage.c
index 066f96a..3c7e706 100644
--- a/dlls/itss/storage.c
+++ b/dlls/itss/storage.c
@@ -87,7 +87,7 @@
     REFIID riid,
     void** ppvObject)
 {
-    ICOM_THIS(IEnumSTATSTG_Impl,iface);
+    IEnumSTATSTG_Impl *This = (IEnumSTATSTG_Impl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IEnumSTATSTG))
@@ -104,14 +104,14 @@
 static ULONG WINAPI ITSS_IEnumSTATSTG_AddRef(
     IEnumSTATSTG* iface)
 {
-    ICOM_THIS(IEnumSTATSTG_Impl,iface);
+    IEnumSTATSTG_Impl *This = (IEnumSTATSTG_Impl *)iface;
     return ++(This->ref);
 }
 
 static ULONG WINAPI ITSS_IEnumSTATSTG_Release(
     IEnumSTATSTG* iface)
 {
-    ICOM_THIS(IEnumSTATSTG_Impl,iface);
+    IEnumSTATSTG_Impl *This = (IEnumSTATSTG_Impl *)iface;
 
     ULONG ref = --This->ref;
 
@@ -135,7 +135,7 @@
         STATSTG* rgelt,
         ULONG* pceltFetched)
 {
-    ICOM_THIS(IEnumSTATSTG_Impl,iface);
+    IEnumSTATSTG_Impl *This = (IEnumSTATSTG_Impl *)iface;
     DWORD len, n;
     struct enum_info *cur;
 
@@ -187,7 +187,7 @@
         IEnumSTATSTG* iface,
         ULONG celt)
 {
-    ICOM_THIS(IEnumSTATSTG_Impl,iface);
+    IEnumSTATSTG_Impl *This = (IEnumSTATSTG_Impl *)iface;
     DWORD n;
     struct enum_info *cur;
 
@@ -211,7 +211,7 @@
 static HRESULT WINAPI ITSS_IEnumSTATSTG_Reset(
         IEnumSTATSTG* iface)
 {
-    ICOM_THIS(IEnumSTATSTG_Impl,iface);
+    IEnumSTATSTG_Impl *This = (IEnumSTATSTG_Impl *)iface;
 
     TRACE("%p\n", This );
 
@@ -262,7 +262,7 @@
     REFIID riid,
     void** ppvObject)
 {
-    ICOM_THIS(ITSS_IStorageImpl,iface);
+    ITSS_IStorageImpl *This = (ITSS_IStorageImpl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_IStorage))
@@ -279,14 +279,14 @@
 ULONG WINAPI ITSS_IStorageImpl_AddRef(
     IStorage* iface)
 {
-    ICOM_THIS(ITSS_IStorageImpl,iface);
+    ITSS_IStorageImpl *This = (ITSS_IStorageImpl *)iface;
     return ++(This->ref);
 }
 
 ULONG WINAPI ITSS_IStorageImpl_Release(
     IStorage* iface)
 {
-    ICOM_THIS(ITSS_IStorageImpl,iface);
+    ITSS_IStorageImpl *This = (ITSS_IStorageImpl *)iface;
 
     ULONG ref = --This->ref;
 
@@ -318,7 +318,7 @@
     DWORD reserved2,
     IStream** ppstm)
 {
-    ICOM_THIS(ITSS_IStorageImpl,iface);
+    ITSS_IStorageImpl *This = (ITSS_IStorageImpl *)iface;
     IStream_Impl *stm;
     DWORD len;
     struct chmUnitInfo ui;
@@ -377,7 +377,7 @@
     DWORD reserved,
     IStorage** ppstg)
 {
-    ICOM_THIS(ITSS_IStorageImpl,iface);
+    ITSS_IStorageImpl *This = (ITSS_IStorageImpl *)iface;
 
     FIXME("%p %s %p %lu %p %lu %p\n", This, debugstr_w(pwcsName),
           pstgPriority, grfMode, snbExclude, reserved, ppstg);
@@ -452,7 +452,7 @@
     DWORD reserved3,
     IEnumSTATSTG** ppenum)
 {
-    ICOM_THIS(ITSS_IStorageImpl,iface);
+    ITSS_IStorageImpl *This = (ITSS_IStorageImpl *)iface;
     IEnumSTATSTG_Impl* stgenum;
 
     TRACE("%p %ld %p %ld %p\n", This, reserved1, reserved2, reserved3, ppenum );
@@ -598,7 +598,7 @@
     REFIID riid,
     void** ppvObject)
 {
-    ICOM_THIS(IStream_Impl,iface);
+    IStream_Impl *This = (IStream_Impl *)iface;
 
     if (IsEqualGUID(riid, &IID_IUnknown)
 	|| IsEqualGUID(riid, &IID_ISequentialStream)
@@ -616,14 +616,14 @@
 static ULONG WINAPI ITSS_IStream_AddRef(
     IStream* iface)
 {
-    ICOM_THIS(IStream_Impl,iface);
+    IStream_Impl *This = (IStream_Impl *)iface;
     return ++(This->ref);
 }
 
 static ULONG WINAPI ITSS_IStream_Release(
     IStream* iface)
 {
-    ICOM_THIS(IStream_Impl,iface);
+    IStream_Impl *This = (IStream_Impl *)iface;
 
     ULONG ref = --This->ref;
 
@@ -642,7 +642,7 @@
         ULONG cb,
         ULONG* pcbRead)
 {
-    ICOM_THIS(IStream_Impl,iface);
+    IStream_Impl *This = (IStream_Impl *)iface;
     ULONG count;
 
     TRACE("%p %p %lu %p\n", This, pv, cb, pcbRead);
@@ -672,7 +672,7 @@
         DWORD dwOrigin,
         ULARGE_INTEGER* plibNewPosition)
 {
-    ICOM_THIS(IStream_Impl,iface);
+    IStream_Impl *This = (IStream_Impl *)iface;
     LONGLONG newpos;
 
     TRACE("%p %s %lu %p\n", This,
@@ -761,7 +761,7 @@
         STATSTG* pstatstg,
         DWORD grfStatFlag)
 {
-    ICOM_THIS(IStream_Impl,iface);
+    IStream_Impl *This = (IStream_Impl *)iface;
 
     TRACE("%p %p %ld\n", This, pstatstg, grfStatFlag);
 
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c
index 871fd9a..a91b021 100644
--- a/dlls/mlang/mlang.c
+++ b/dlls/mlang/mlang.c
@@ -606,7 +606,7 @@
 static HRESULT WINAPI
 MLANGCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
 {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     TRACE("%s\n", debugstr_guid(riid) );
 
@@ -623,12 +623,12 @@
 }
 
 static ULONG WINAPI MLANGCF_AddRef(LPCLASSFACTORY iface) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     return ++(This->ref);
 }
 
 static ULONG WINAPI MLANGCF_Release(LPCLASSFACTORY iface) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     ULONG ref = --This->ref;
 
@@ -643,7 +643,7 @@
 
 static HRESULT WINAPI MLANGCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter,
 					  REFIID riid, LPVOID *ppobj) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     HRESULT hres;
     LPUNKNOWN punk;
     
@@ -665,7 +665,7 @@
 }
 
 static HRESULT WINAPI MLANGCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-    ICOM_THIS(IClassFactoryImpl,iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     FIXME("(%p)->(%d),stub!\n",This,dolock);
     return S_OK;
 }
diff --git a/dlls/msdmo/dmoreg.c b/dlls/msdmo/dmoreg.c
index 7f74438..03cc5ee 100644
--- a/dlls/msdmo/dmoreg.c
+++ b/dlls/msdmo/dmoreg.c
@@ -289,7 +289,7 @@
 */
 static BOOL IEnumDMO_Destructor(IEnumDMO* iface)
 {
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
 
     TRACE("%p\n", This);
 
@@ -385,7 +385,7 @@
  */
 static ULONG WINAPI IEnumDMO_fnAddRef(IEnumDMO * iface)
 {
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
     return ++(This->ref);
 }
 
@@ -398,7 +398,7 @@
     REFIID riid,
     LPVOID *ppvObj)
 {
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
 
     *ppvObj = NULL;
 
@@ -422,7 +422,7 @@
  */
 static ULONG WINAPI IEnumDMO_fnRelease(IEnumDMO * iface)
 {
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
 
     if (!--(This->ref))
     {
@@ -454,7 +454,7 @@
     UINT count = 0;
     HRESULT hres = S_OK;
 
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
 
     TRACE("%ld\n", cItemsToFetch);
 
@@ -585,7 +585,7 @@
  */
 static HRESULT WINAPI IEnumDMO_fnSkip(IEnumDMO * iface, DWORD cItemsToSkip)
 {
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
 
     This->index += cItemsToSkip;
 
@@ -598,7 +598,7 @@
  */
 static HRESULT WINAPI IEnumDMO_fnReset(IEnumDMO * iface)
 {
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
 
     This->index = -1;
 
@@ -611,7 +611,7 @@
  */
 static HRESULT WINAPI IEnumDMO_fnClone(IEnumDMO * iface, IEnumDMO **ppEnum)
 {
-    ICOM_THIS(IEnumDMOImpl,iface);
+    IEnumDMOImpl *This = (IEnumDMOImpl *)iface;
 
     FIXME("(%p)->() to (%p)->() E_NOTIMPL\n", This, ppEnum);
 
diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index 159a45b..6af95f5 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -1382,30 +1382,30 @@
 } IClassFactoryImpl;
 
 static HRESULT WINAPI MsiCF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   FIXME("(%p, %s, %p): stub\n",This,debugstr_guid(riid),ppobj);
   return E_NOINTERFACE;
 }
 
 static ULONG WINAPI MsiCF_AddRef(LPCLASSFACTORY iface) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   return ++(This->ref);
 }
 
 static ULONG WINAPI MsiCF_Release(LPCLASSFACTORY iface) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   /* static class, won't be  freed */
   return --(This->ref);
 }
 
 static HRESULT WINAPI MsiCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   FIXME ("(%p, %p, %s, %p): to implement\n", This, pOuter, debugstr_guid(riid), ppobj);
   return 0;
 }
 
 static HRESULT WINAPI MsiCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) {
-  ICOM_THIS(IClassFactoryImpl,iface);
+  IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
   FIXME("(%p, %d): stub\n", This, dolock);
   return S_OK;
 }
diff --git a/dlls/ole32/ftmarshal.c b/dlls/ole32/ftmarshal.c
index dbddf4e..b978688 100644
--- a/dlls/ole32/ftmarshal.c
+++ b/dlls/ole32/ftmarshal.c
@@ -52,7 +52,7 @@
 HRESULT WINAPI IiFTMUnknown_fnQueryInterface (IUnknown * iface, REFIID riid, LPVOID * ppv)
 {
 
-    ICOM_THIS (FTMarshalImpl, iface);
+    FTMarshalImpl *This = (FTMarshalImpl *)iface;
 
     TRACE ("\n");
     *ppv = NULL;
@@ -72,7 +72,7 @@
 ULONG WINAPI IiFTMUnknown_fnAddRef (IUnknown * iface)
 {
 
-    ICOM_THIS (FTMarshalImpl, iface);
+    FTMarshalImpl *This = (FTMarshalImpl *)iface;
 
     TRACE ("\n");
     return InterlockedIncrement (&This->ref);
@@ -81,7 +81,7 @@
 ULONG WINAPI IiFTMUnknown_fnRelease (IUnknown * iface)
 {
 
-    ICOM_THIS (FTMarshalImpl, iface);
+    FTMarshalImpl *This = (FTMarshalImpl *)iface;
 
     TRACE ("\n");
     if (InterlockedDecrement (&This->ref))
diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c
index 0c385f8..7009cd3 100644
--- a/dlls/ole32/ifs.c
+++ b/dlls/ole32/ifs.c
@@ -391,7 +391,7 @@
 static ULONG WINAPI IMallocSpy_fnAddRef (LPMALLOCSPY iface)
 {
 
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -407,7 +407,7 @@
 static ULONG WINAPI IMallocSpy_fnRelease (LPMALLOCSPY iface)
 {
 
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -419,32 +419,32 @@
 
 static ULONG WINAPI IMallocSpy_fnPreAlloc(LPMALLOCSPY iface, ULONG cbRequest)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%lu)\n", This, cbRequest);
     return cbRequest;
 }
 static PVOID WINAPI IMallocSpy_fnPostAlloc(LPMALLOCSPY iface, void* pActual)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p)\n", This, pActual);
     return pActual;
 }
 
 static PVOID WINAPI IMallocSpy_fnPreFree(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This, pRequest, fSpyed);
     return pRequest;
 }
 static void  WINAPI IMallocSpy_fnPostFree(LPMALLOCSPY iface, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%u)\n", This, fSpyed);
 }
 
 static ULONG WINAPI IMallocSpy_fnPreRealloc(LPMALLOCSPY iface, void* pRequest, ULONG cbRequest, void** ppNewRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %lu %u)\n", This, pRequest, cbRequest, fSpyed);
     *ppNewRequest = pRequest;
     return cbRequest;
@@ -452,48 +452,48 @@
 
 static PVOID WINAPI IMallocSpy_fnPostRealloc(LPMALLOCSPY iface, void* pActual, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This, pActual, fSpyed);
     return pActual;
 }
 
 static PVOID WINAPI IMallocSpy_fnPreGetSize(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This,  pRequest, fSpyed);
     return pRequest;
 }
 
 static ULONG WINAPI IMallocSpy_fnPostGetSize(LPMALLOCSPY iface, ULONG cbActual, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%lu %u)\n", This, cbActual, fSpyed);
     return cbActual;
 }
 
 static PVOID WINAPI IMallocSpy_fnPreDidAlloc(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u)\n", This, pRequest, fSpyed);
     return pRequest;
 }
 
 static int WINAPI IMallocSpy_fnPostDidAlloc(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed, int fActual)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->(%p %u %u)\n", This, pRequest, fSpyed, fActual);
     return fActual;
 }
 
 static void WINAPI IMallocSpy_fnPreHeapMinimize(LPMALLOCSPY iface)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->()\n", This);
 }
 
 static void WINAPI IMallocSpy_fnPostHeapMinimize(LPMALLOCSPY iface)
 {
-    ICOM_THIS (_MallocSpy, iface);
+    _MallocSpy *This = (_MallocSpy *)iface;
     TRACE ("(%p)->()\n", This);
 }
 
diff --git a/dlls/oleaut32/olefont.c b/dlls/oleaut32/olefont.c
index fea9ce6..54b4274 100644
--- a/dlls/oleaut32/olefont.c
+++ b/dlls/oleaut32/olefont.c
@@ -104,7 +104,7 @@
  * There is a version to accomodate all of the VTables implemented
  * by this object.
  */
-#define _ICOM_THIS(class,name) class* this = (class*)name
+#define class *this = (class *)name class* this = (class*)name
 #define _ICOM_THIS_From_IDispatch(class, name) class* this = (class*)(((char*)name)-sizeof(void*))
 #define _ICOM_THIS_From_IPersistStream(class, name) class* this = (class*)(((char*)name)-2*sizeof(void*))
 #define _ICOM_THIS_From_IConnectionPointContainer(class, name) class* this = (class*)(((char*)name)-3*sizeof(void*))
@@ -474,7 +474,7 @@
   REFIID  riid,
   void**  ppvObject)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%s, %p)\n", this, debugstr_guid(riid), ppvObject);
 
   /*
@@ -528,7 +528,7 @@
 ULONG WINAPI OLEFontImpl_AddRef(
   IFont* iface)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(ref=%ld)\n", this, this->ref);
   this->ref++;
 
@@ -543,7 +543,7 @@
 ULONG WINAPI OLEFontImpl_Release(
       IFont* iface)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(ref=%ld)\n", this, this->ref);
 
   /*
@@ -573,7 +573,7 @@
   IFont*  iface,
   BSTR* pname)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, pname);
   /*
    * Sanity check.
@@ -598,7 +598,7 @@
   IFont* iface,
   BSTR name)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, name);
 
   if (this->description.lpstrName==0)
@@ -633,7 +633,7 @@
   IFont* iface,
   CY*    psize)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, psize);
 
   /*
@@ -657,7 +657,7 @@
   IFont* iface,
   CY     size)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%ld)\n", this, size.s.Lo);
   this->description.cySize.s.Hi = 0;
   this->description.cySize.s.Lo = size.s.Lo;
@@ -675,7 +675,7 @@
   IFont*  iface,
   BOOL* pbold)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, pbold);
   /*
    * Sanity check
@@ -697,7 +697,7 @@
   IFont* iface,
   BOOL bold)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%d)\n", this, bold);
   this->description.sWeight = bold ? FW_BOLD : FW_NORMAL;
   OLEFont_SendNotify(this, DISPID_FONT_BOLD);
@@ -714,7 +714,7 @@
   IFont*  iface,
   BOOL* pitalic)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, pitalic);
   /*
    * Sanity check
@@ -736,7 +736,7 @@
   IFont* iface,
   BOOL italic)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%d)\n", this, italic);
 
   this->description.fItalic = italic;
@@ -754,7 +754,7 @@
   IFont*  iface,
   BOOL* punderline)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, punderline);
 
   /*
@@ -777,7 +777,7 @@
   IFont* iface,
   BOOL underline)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%d)\n", this, underline);
 
   this->description.fUnderline = underline;
@@ -795,7 +795,7 @@
   IFont*  iface,
   BOOL* pstrikethrough)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, pstrikethrough);
 
   /*
@@ -818,7 +818,7 @@
  IFont* iface,
  BOOL strikethrough)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%d)\n", this, strikethrough);
 
   this->description.fStrikethrough = strikethrough;
@@ -836,7 +836,7 @@
   IFont* iface,
   short* pweight)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, pweight);
 
   /*
@@ -859,7 +859,7 @@
   IFont* iface,
   short  weight)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%d)\n", this, weight);
 
   this->description.sWeight = weight;
@@ -877,7 +877,7 @@
   IFont* iface,
   short* pcharset)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, pcharset);
 
   /*
@@ -900,7 +900,7 @@
   IFont* iface,
   short charset)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%d)\n", this, charset);
 
   this->description.sCharset = charset;
@@ -918,7 +918,7 @@
   IFont*   iface,
   HFONT* phfont)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, phfont);
   if (phfont==NULL)
     return E_POINTER;
@@ -978,7 +978,7 @@
   LOGFONTW logFont;
   INT      fontHeight;
   CY       cySize;
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p)\n", this, ppfont);
 
   if (ppfont == NULL)
@@ -1058,7 +1058,7 @@
   long   cyLogical,
   long   cyHimetric)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%ld, %ld)\n", this, cyLogical, cyHimetric);
 
   this->cyLogical  = cyLogical;
@@ -1089,7 +1089,7 @@
   IFont*  iface,
   HFONT hfont)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p) (lock=%ld)\n", this, hfont, this->fontLock);
 
   if ( (hfont == 0) ||
@@ -1110,7 +1110,7 @@
   IFont*  iface,
   HFONT hfont)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   TRACE("(%p)->(%p) (lock=%ld)\n", this, hfont, this->fontLock);
 
   if ( (hfont == 0) ||
@@ -1140,7 +1140,7 @@
   IFont* iface,
   HDC  hdc)
 {
-  _ICOM_THIS(OLEFontImpl, iface);
+  OLEFontImpl *this = (OLEFontImpl *)iface;
   FIXME("(%p)->(%p): Stub\n", this, hdc);
   return E_NOTIMPL;
 }
diff --git a/dlls/rpcrt4/cpsf.c b/dlls/rpcrt4/cpsf.c
index 4950c20..4e5c0cb 100644
--- a/dlls/rpcrt4/cpsf.c
+++ b/dlls/rpcrt4/cpsf.c
@@ -55,7 +55,7 @@
                                                   REFIID riid,
                                                   LPVOID *obj)
 {
-  ICOM_THIS(CStdPSFactoryBuffer,iface);
+  CStdPSFactoryBuffer *This = (CStdPSFactoryBuffer *)iface;
   TRACE("(%p)->QueryInterface(%s,%p)\n",iface,debugstr_guid(riid),obj);
   if (IsEqualGUID(&IID_IUnknown,riid) ||
       IsEqualGUID(&IID_IPSFactoryBuffer,riid)) {
@@ -68,14 +68,14 @@
 
 static ULONG WINAPI CStdPSFactory_AddRef(LPPSFACTORYBUFFER iface)
 {
-  ICOM_THIS(CStdPSFactoryBuffer,iface);
+  CStdPSFactoryBuffer *This = (CStdPSFactoryBuffer *)iface;
   TRACE("(%p)->AddRef()\n",iface);
   return ++(This->RefCount);
 }
 
 static ULONG WINAPI CStdPSFactory_Release(LPPSFACTORYBUFFER iface)
 {
-  ICOM_THIS(CStdPSFactoryBuffer,iface);
+  CStdPSFactoryBuffer *This = (CStdPSFactoryBuffer *)iface;
   TRACE("(%p)->Release()\n",iface);
   return --(This->RefCount);
 }
@@ -86,7 +86,7 @@
                                                LPRPCPROXYBUFFER *ppProxy,
                                                LPVOID *ppv)
 {
-  ICOM_THIS(CStdPSFactoryBuffer,iface);
+  CStdPSFactoryBuffer *This = (CStdPSFactoryBuffer *)iface;
   const ProxyFileInfo *ProxyInfo;
   int Index;
   TRACE("(%p)->CreateProxy(%p,%s,%p,%p)\n",iface,pUnkOuter,
@@ -103,7 +103,7 @@
                                               LPUNKNOWN pUnkServer,
                                               LPRPCSTUBBUFFER *ppStub)
 {
-  ICOM_THIS(CStdPSFactoryBuffer,iface);
+  CStdPSFactoryBuffer *This = (CStdPSFactoryBuffer *)iface;
   const ProxyFileInfo *ProxyInfo;
   int Index;
   TRACE("(%p)->CreateStub(%s,%p,%p)\n",iface,debugstr_guid(riid),
diff --git a/dlls/rpcrt4/cstub.c b/dlls/rpcrt4/cstub.c
index bc215da..83b61f2 100644
--- a/dlls/rpcrt4/cstub.c
+++ b/dlls/rpcrt4/cstub.c
@@ -72,7 +72,7 @@
                                             REFIID riid,
                                             LPVOID *obj)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(riid),obj);
 
   if (IsEqualGUID(&IID_IUnknown,riid) ||
@@ -86,7 +86,7 @@
 
 ULONG WINAPI CStdStubBuffer_AddRef(LPRPCSTUBBUFFER iface)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->AddRef()\n",This);
   return ++(This->RefCount);
 }
@@ -94,7 +94,7 @@
 ULONG WINAPI NdrCStdStubBuffer_Release(LPRPCSTUBBUFFER iface,
                                       LPPSFACTORYBUFFER pPSF)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->Release()\n",This);
 
   if (!--(This->RefCount)) {
@@ -111,7 +111,7 @@
 HRESULT WINAPI CStdStubBuffer_Connect(LPRPCSTUBBUFFER iface,
                                      LPUNKNOWN lpUnkServer)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->Connect(%p)\n",This,lpUnkServer);
   This->pvServerObject = lpUnkServer;
   return S_OK;
@@ -119,7 +119,7 @@
 
 void WINAPI CStdStubBuffer_Disconnect(LPRPCSTUBBUFFER iface)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->Disconnect()\n",This);
   This->pvServerObject = NULL;
 }
@@ -128,7 +128,7 @@
                                     PRPCOLEMESSAGE pMsg,
                                     LPRPCCHANNELBUFFER pChannel)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   DWORD dwPhase = STUB_UNMARSHAL;
   TRACE("(%p)->Invoke(%p,%p)\n",This,pMsg,pChannel);
 
@@ -139,14 +139,14 @@
 LPRPCSTUBBUFFER WINAPI CStdStubBuffer_IsIIDSupported(LPRPCSTUBBUFFER iface,
                                                     REFIID riid)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->IsIIDSupported(%s)\n",This,debugstr_guid(riid));
   return IsEqualGUID(STUB_HEADER(This).piid, riid) ? iface : NULL;
 }
 
 ULONG WINAPI CStdStubBuffer_CountRefs(LPRPCSTUBBUFFER iface)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->CountRefs()\n",This);
   return This->RefCount;
 }
@@ -154,7 +154,7 @@
 HRESULT WINAPI CStdStubBuffer_DebugServerQueryInterface(LPRPCSTUBBUFFER iface,
                                                        LPVOID *ppv)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->DebugServerQueryInterface(%p)\n",This,ppv);
   return S_OK;
 }
@@ -162,6 +162,6 @@
 void WINAPI CStdStubBuffer_DebugServerRelease(LPRPCSTUBBUFFER iface,
                                              LPVOID pv)
 {
-  ICOM_THIS(CStdStubBuffer,iface);
+  CStdStubBuffer *This = (CStdStubBuffer *)iface;
   TRACE("(%p)->DebugServerRelease(%p)\n",This,pv);
 }
diff --git a/dlls/rpcrt4/ndr_ole.c b/dlls/rpcrt4/ndr_ole.c
index ee2d68c..3774a85 100644
--- a/dlls/rpcrt4/ndr_ole.c
+++ b/dlls/rpcrt4/ndr_ole.c
@@ -89,7 +89,7 @@
                                               REFIID riid,
                                               LPVOID *obj)
 {
-  ICOM_THIS(RpcStreamImpl, iface);
+  RpcStreamImpl *This = (RpcStreamImpl *)iface;
   if (IsEqualGUID(&IID_IUnknown, riid) ||
       IsEqualGUID(&IID_ISequentialStream, riid) ||
       IsEqualGUID(&IID_IStream, riid)) {
@@ -102,13 +102,13 @@
 
 static ULONG WINAPI RpcStream_AddRef(LPSTREAM iface)
 {
-  ICOM_THIS(RpcStreamImpl, iface);
+  RpcStreamImpl *This = (RpcStreamImpl *)iface;
   return ++(This->RefCount);
 }
 
 static ULONG WINAPI RpcStream_Release(LPSTREAM iface)
 {
-  ICOM_THIS(RpcStreamImpl, iface);
+  RpcStreamImpl *This = (RpcStreamImpl *)iface;
   if (!--(This->RefCount)) {
     TRACE("size=%ld\n", *This->size);
     This->pMsg->Buffer = This->data + *This->size;
@@ -123,7 +123,7 @@
                                     ULONG cb,
                                     ULONG *pcbRead)
 {
-  ICOM_THIS(RpcStreamImpl, iface);
+  RpcStreamImpl *This = (RpcStreamImpl *)iface;
   if (This->pos + cb > *This->size) cb = *This->size - This->pos;
   if (cb) {
     memcpy(pv, This->data + This->pos, cb);
@@ -138,7 +138,7 @@
                                      ULONG cb,
                                      ULONG *pcbWritten)
 {
-  ICOM_THIS(RpcStreamImpl, iface);
+  RpcStreamImpl *This = (RpcStreamImpl *)iface;
   memcpy(This->data + This->pos, pv, cb);
   This->pos += cb;
   if (This->pos > *This->size) *This->size = This->pos;
@@ -151,7 +151,7 @@
                                     DWORD origin,
                                     ULARGE_INTEGER *newPos)
 {
-  ICOM_THIS(RpcStreamImpl, iface);
+  RpcStreamImpl *This = (RpcStreamImpl *)iface;
   switch (origin) {
   case STREAM_SEEK_SET:
     This->pos = move.u.LowPart;
@@ -175,7 +175,7 @@
 static HRESULT WINAPI RpcStream_SetSize(LPSTREAM iface,
                                        ULARGE_INTEGER newSize)
 {
-  ICOM_THIS(RpcStreamImpl, iface);
+  RpcStreamImpl *This = (RpcStreamImpl *)iface;
   *This->size = newSize.u.LowPart;
   return S_OK;
 }
diff --git a/dlls/shdocvw/classinfo.c b/dlls/shdocvw/classinfo.c
index 2e90c57..1316452 100644
--- a/dlls/shdocvw/classinfo.c
+++ b/dlls/shdocvw/classinfo.c
@@ -38,7 +38,7 @@
 static HRESULT WINAPI WBPCI_QueryInterface(LPPROVIDECLASSINFO iface,
                                            REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IProvideClassInfoImpl, iface);
+    IProvideClassInfoImpl *This = (IProvideClassInfoImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -46,7 +46,7 @@
 
 static ULONG WINAPI WBPCI_AddRef(LPPROVIDECLASSINFO iface)
 {
-    ICOM_THIS(IProvideClassInfoImpl, iface);
+    IProvideClassInfoImpl *This = (IProvideClassInfoImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -54,7 +54,7 @@
 
 static ULONG WINAPI WBPCI_Release(LPPROVIDECLASSINFO iface)
 {
-    ICOM_THIS(IProvideClassInfoImpl, iface);
+    IProvideClassInfoImpl *This = (IProvideClassInfoImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
@@ -93,7 +93,7 @@
 static HRESULT WINAPI WBPCI2_QueryInterface(LPPROVIDECLASSINFO2 iface,
                                             REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IProvideClassInfo2Impl, iface);
+    IProvideClassInfo2Impl *This = (IProvideClassInfo2Impl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -101,7 +101,7 @@
 
 static ULONG WINAPI WBPCI2_AddRef(LPPROVIDECLASSINFO2 iface)
 {
-    ICOM_THIS(IProvideClassInfo2Impl, iface);
+    IProvideClassInfo2Impl *This = (IProvideClassInfo2Impl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -109,7 +109,7 @@
 
 static ULONG WINAPI WBPCI2_Release(LPPROVIDECLASSINFO2 iface)
 {
-    ICOM_THIS(IProvideClassInfo2Impl, iface);
+    IProvideClassInfo2Impl *This = (IProvideClassInfo2Impl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
diff --git a/dlls/shdocvw/events.c b/dlls/shdocvw/events.c
index 57265ac..9f6a8f9 100644
--- a/dlls/shdocvw/events.c
+++ b/dlls/shdocvw/events.c
@@ -38,7 +38,7 @@
 static HRESULT WINAPI WBCPC_QueryInterface(LPCONNECTIONPOINTCONTAINER iface,
                                            REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IConnectionPointContainerImpl, iface);
+    IConnectionPointContainerImpl *This = (IConnectionPointContainerImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -46,7 +46,7 @@
 
 static ULONG WINAPI WBCPC_AddRef(LPCONNECTIONPOINTCONTAINER iface)
 {
-    ICOM_THIS(IConnectionPointContainerImpl, iface);
+    IConnectionPointContainerImpl *This = (IConnectionPointContainerImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -54,7 +54,7 @@
 
 static ULONG WINAPI WBCPC_Release(LPCONNECTIONPOINTCONTAINER iface)
 {
-    ICOM_THIS(IConnectionPointContainerImpl, iface);
+    IConnectionPointContainerImpl *This = (IConnectionPointContainerImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
@@ -122,7 +122,7 @@
 static HRESULT WINAPI WBCP_QueryInterface(LPCONNECTIONPOINT iface,
                                           REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IConnectionPointImpl, iface);
+    IConnectionPointImpl *This = (IConnectionPointImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -130,7 +130,7 @@
 
 static ULONG WINAPI WBCP_AddRef(LPCONNECTIONPOINT iface)
 {
-    ICOM_THIS(IConnectionPointImpl, iface);
+    IConnectionPointImpl *This = (IConnectionPointImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -138,7 +138,7 @@
 
 static ULONG WINAPI WBCP_Release(LPCONNECTIONPOINT iface)
 {
-    ICOM_THIS(IConnectionPointImpl, iface);
+    IConnectionPointImpl *This = (IConnectionPointImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
diff --git a/dlls/shdocvw/factory.c b/dlls/shdocvw/factory.c
index d933044..2187204 100644
--- a/dlls/shdocvw/factory.c
+++ b/dlls/shdocvw/factory.c
@@ -36,7 +36,7 @@
 static HRESULT WINAPI WBCF_QueryInterface(LPCLASSFACTORY iface,
                                           REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IClassFactoryImpl, iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     TRACE ("\n");
 
@@ -54,7 +54,7 @@
  */
 static ULONG WINAPI WBCF_AddRef(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(IClassFactoryImpl, iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -65,7 +65,7 @@
  */
 static ULONG WINAPI WBCF_Release(LPCLASSFACTORY iface)
 {
-    ICOM_THIS(IClassFactoryImpl, iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
@@ -78,7 +78,7 @@
 static HRESULT WINAPI WBCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter,
                                           REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IClassFactoryImpl, iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
     /* Don't support aggregation (yet?) */
     if (pOuter)
@@ -104,7 +104,7 @@
  */
 static HRESULT WINAPI WBCF_LockServer(LPCLASSFACTORY iface, BOOL dolock)
 {
-    ICOM_THIS(IClassFactoryImpl, iface);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
     FIXME("(%p)->(%d),stub!\n", This, dolock);
     return S_OK;
 }
diff --git a/dlls/shdocvw/misc.c b/dlls/shdocvw/misc.c
index df90534..4142a7a 100644
--- a/dlls/shdocvw/misc.c
+++ b/dlls/shdocvw/misc.c
@@ -32,7 +32,7 @@
 static HRESULT WINAPI WBQA_QueryInterface(LPQUICKACTIVATE iface,
                                           REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IQuickActivateImpl, iface);
+    IQuickActivateImpl *This = (IQuickActivateImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -40,7 +40,7 @@
 
 static ULONG WINAPI WBQA_AddRef(LPQUICKACTIVATE iface)
 {
-    ICOM_THIS(IQuickActivateImpl, iface);
+    IQuickActivateImpl *This = (IQuickActivateImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -48,7 +48,7 @@
 
 static ULONG WINAPI WBQA_Release(LPQUICKACTIVATE iface)
 {
-    ICOM_THIS(IQuickActivateImpl, iface);
+    IQuickActivateImpl *This = (IQuickActivateImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
diff --git a/dlls/shdocvw/oleobject.c b/dlls/shdocvw/oleobject.c
index 5816016..7b71cb3 100644
--- a/dlls/shdocvw/oleobject.c
+++ b/dlls/shdocvw/oleobject.c
@@ -53,7 +53,7 @@
 static HRESULT WINAPI WBOOBJ_QueryInterface(LPOLEOBJECT iface,
                                             REFIID riid, void** ppobj)
 {
-    ICOM_THIS(IOleObjectImpl, iface);
+    IOleObjectImpl *This = (IOleObjectImpl *)iface;
 
     /*
      * Perform a sanity check on the parameters.
@@ -143,7 +143,7 @@
  */
 static ULONG WINAPI WBOOBJ_AddRef(LPOLEOBJECT iface)
 {
-    ICOM_THIS(IOleObjectImpl, iface);
+    IOleObjectImpl *This = (IOleObjectImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -154,7 +154,7 @@
  */
 static ULONG WINAPI WBOOBJ_Release(LPOLEOBJECT iface)
 {
-    ICOM_THIS(IOleObjectImpl, iface);
+    IOleObjectImpl *This = (IOleObjectImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
@@ -448,7 +448,7 @@
 static HRESULT WINAPI WBOIPO_QueryInterface(LPOLEINPLACEOBJECT iface,
                                             REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IOleInPlaceObjectImpl, iface);
+    IOleInPlaceObjectImpl *This = (IOleInPlaceObjectImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -456,7 +456,7 @@
 
 static ULONG WINAPI WBOIPO_AddRef(LPOLEINPLACEOBJECT iface)
 {
-    ICOM_THIS(IOleInPlaceObjectImpl, iface);
+    IOleInPlaceObjectImpl *This = (IOleInPlaceObjectImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -464,7 +464,7 @@
 
 static ULONG WINAPI WBOIPO_Release(LPOLEINPLACEOBJECT iface)
 {
-    ICOM_THIS(IOleInPlaceObjectImpl, iface);
+    IOleInPlaceObjectImpl *This = (IOleInPlaceObjectImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
@@ -550,7 +550,7 @@
 static HRESULT WINAPI WBOC_QueryInterface(LPOLECONTROL iface,
                                           REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IOleControlImpl, iface);
+    IOleControlImpl *This = (IOleControlImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -558,7 +558,7 @@
 
 static ULONG WINAPI WBOC_AddRef(LPOLECONTROL iface)
 {
-    ICOM_THIS(IOleControlImpl, iface);
+    IOleControlImpl *This = (IOleControlImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -566,7 +566,7 @@
 
 static ULONG WINAPI WBOC_Release(LPOLECONTROL iface)
 {
-    ICOM_THIS(IOleControlImpl, iface);
+    IOleControlImpl *This = (IOleControlImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
diff --git a/dlls/shdocvw/persist.c b/dlls/shdocvw/persist.c
index eda6317..afed682 100644
--- a/dlls/shdocvw/persist.c
+++ b/dlls/shdocvw/persist.c
@@ -30,7 +30,7 @@
 static HRESULT WINAPI WBPS_QueryInterface(LPPERSISTSTORAGE iface,
                                           REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IPersistStorageImpl, iface);
+    IPersistStorageImpl *This = (IPersistStorageImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -38,7 +38,7 @@
 
 static ULONG WINAPI WBPS_AddRef(LPPERSISTSTORAGE iface)
 {
-    ICOM_THIS(IPersistStorageImpl, iface);
+    IPersistStorageImpl *This = (IPersistStorageImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -46,7 +46,7 @@
 
 static ULONG WINAPI WBPS_Release(LPPERSISTSTORAGE iface)
 {
-    ICOM_THIS(IPersistStorageImpl, iface);
+    IPersistStorageImpl *This = (IPersistStorageImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
@@ -117,7 +117,7 @@
 static HRESULT WINAPI WBPSI_QueryInterface(LPPERSISTSTREAMINIT iface,
                                            REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IPersistStreamInitImpl, iface);
+    IPersistStreamInitImpl *This = (IPersistStreamInitImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -125,7 +125,7 @@
 
 static ULONG WINAPI WBPSI_AddRef(LPPERSISTSTREAMINIT iface)
 {
-    ICOM_THIS(IPersistStreamInitImpl, iface);
+    IPersistStreamInitImpl *This = (IPersistStreamInitImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -133,7 +133,7 @@
 
 static ULONG WINAPI WBPSI_Release(LPPERSISTSTREAMINIT iface)
 {
-    ICOM_THIS(IPersistStreamInitImpl, iface);
+    IPersistStreamInitImpl *This = (IPersistStreamInitImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index ee1cc09..6d5eb19 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -29,7 +29,7 @@
 
 static HRESULT WINAPI WB_QueryInterface(IWebBrowser *iface, REFIID riid, LPVOID *ppobj)
 {
-    ICOM_THIS(IWebBrowserImpl, iface);
+    IWebBrowserImpl *This = (IWebBrowserImpl *)iface;
 
     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
     return E_NOINTERFACE;
@@ -37,7 +37,7 @@
 
 static ULONG WINAPI WB_AddRef(IWebBrowser *iface)
 {
-    ICOM_THIS(IWebBrowserImpl, iface);
+    IWebBrowserImpl *This = (IWebBrowserImpl *)iface;
 
     TRACE("\n");
     return ++(This->ref);
@@ -45,7 +45,7 @@
 
 static ULONG WINAPI WB_Release(IWebBrowser *iface)
 {
-    ICOM_THIS(IWebBrowserImpl, iface);
+    IWebBrowserImpl *This = (IWebBrowserImpl *)iface;
 
     /* static class, won't be freed */
     TRACE("\n");
diff --git a/dlls/shell32/dragdrophelper.c b/dlls/shell32/dragdrophelper.c
index f4e28c5..e2eeef8 100644
--- a/dlls/shell32/dragdrophelper.c
+++ b/dlls/shell32/dragdrophelper.c
@@ -89,7 +89,7 @@
  */
 static HRESULT WINAPI IDropTargetHelper_fnQueryInterface (IDropTargetHelper * iface, REFIID riid, LPVOID * ppvObj)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
 
     TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
 
@@ -110,7 +110,7 @@
 
 static ULONG WINAPI IDropTargetHelper_fnAddRef (IDropTargetHelper * iface)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -119,7 +119,7 @@
 
 static ULONG WINAPI IDropTargetHelper_fnRelease (IDropTargetHelper * iface)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -138,35 +138,35 @@
 	POINT* ppt,
 	DWORD dwEffect)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
     FIXME ("(%p)->(%p %p %p 0x%08lx)\n", This,hwndTarget, pDataObject, ppt, dwEffect);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnDragLeave (IDropTargetHelper * iface)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
     FIXME ("(%p)->()\n", This);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnDragOver (IDropTargetHelper * iface, POINT* ppt, DWORD dwEffect)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
     FIXME ("(%p)->(%p 0x%08lx)\n", This, ppt, dwEffect);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnDrop (IDropTargetHelper * iface, IDataObject* pDataObject, POINT* ppt, DWORD dwEffect)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
     FIXME ("(%p)->(%p %p 0x%08lx)\n", This, pDataObject, ppt, dwEffect);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI IDropTargetHelper_fnShow (IDropTargetHelper * iface, BOOL fShow)
 {
-    ICOM_THIS (IDropTargetHelperImpl, iface);
+    IDropTargetHelperImpl *This = (IDropTargetHelperImpl *)iface;
     FIXME ("(%p)->(%u)\n", This, fShow);
     return E_NOTIMPL;
 }
diff --git a/dlls/shell32/shfldr_desktop.c b/dlls/shell32/shfldr_desktop.c
index ff63adb..b4b7f74 100644
--- a/dlls/shell32/shfldr_desktop.c
+++ b/dlls/shell32/shfldr_desktop.c
@@ -132,7 +132,7 @@
  */
 static HRESULT WINAPI ISF_Desktop_fnQueryInterface (IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
 
@@ -154,7 +154,7 @@
 
 static ULONG WINAPI ISF_Desktop_fnAddRef (IShellFolder2 * iface)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -163,7 +163,7 @@
 
 static ULONG WINAPI ISF_Desktop_fnRelease (IShellFolder2 * iface)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -192,7 +192,7 @@
 						      LPOLESTR lpszDisplayName,
 						      DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     WCHAR szElement[MAX_PATH];
     LPCWSTR szNext = NULL;
@@ -318,7 +318,7 @@
 static HRESULT WINAPI ISF_Desktop_fnEnumObjects (IShellFolder2 * iface,
 						 HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(HWND=%p flags=0x%08lx pplist=%p)\n", This, hwndOwner, dwFlags, ppEnumIDList);
 
@@ -337,7 +337,7 @@
 static HRESULT WINAPI ISF_Desktop_fnBindToObject (IShellFolder2 * iface,
 						  LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut);
 
@@ -350,7 +350,7 @@
 static HRESULT WINAPI ISF_Desktop_fnBindToStorage (IShellFolder2 * iface,
 						   LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut);
 
@@ -365,7 +365,7 @@
 static HRESULT WINAPI ISF_Desktop_fnCompareIDs (IShellFolder2 * iface,
 						LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     int nReturn;
 
@@ -381,7 +381,7 @@
 static HRESULT WINAPI ISF_Desktop_fnCreateViewObject (IShellFolder2 * iface,
 						      HWND hwndOwner, REFIID riid, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     LPSHELLVIEW pShellView;
     HRESULT hr = E_INVALIDARG;
@@ -415,7 +415,7 @@
 static HRESULT WINAPI ISF_Desktop_fnGetAttributesOf (IShellFolder2 * iface,
 						     UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     HRESULT hr = S_OK;
 
@@ -457,7 +457,7 @@
 						   LPCITEMIDLIST * apidl,
 						   REFIID riid, UINT * prgfInOut, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     LPITEMIDLIST pidl;
     IUnknown *pObj = NULL;
@@ -514,7 +514,7 @@
 static HRESULT WINAPI ISF_Desktop_fnGetDisplayNameOf (IShellFolder2 * iface,
 						      LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     CHAR szPath[MAX_PATH];
     GUID const *clsid;
@@ -607,7 +607,7 @@
 static HRESULT WINAPI ISF_Desktop_fnSetNameOf (IShellFolder2 * iface, HWND hwndOwner, LPCITEMIDLIST pidl,	/*simple pidl */
 					       LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     FIXME ("(%p)->(%p,pidl=%p,%s,%lu,%p)\n", This, hwndOwner, pidl, debugstr_w (lpName), dwFlags, pPidlOut);
 
@@ -616,21 +616,21 @@
 
 static HRESULT WINAPI ISF_Desktop_fnGetDefaultSearchGUID (IShellFolder2 * iface, GUID * pguid)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     FIXME ("(%p)\n", This);
     return E_NOTIMPL;
 }
 static HRESULT WINAPI ISF_Desktop_fnEnumSearches (IShellFolder2 * iface, IEnumExtraSearch ** ppenum)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)\n", This);
     return E_NOTIMPL;
 }
 static HRESULT WINAPI ISF_Desktop_fnGetDefaultColumn (IShellFolder2 * iface,
 						      DWORD dwRes, ULONG * pSort, ULONG * pDisplay)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)\n", This);
 
@@ -643,7 +643,7 @@
 }
 static HRESULT WINAPI ISF_Desktop_fnGetDefaultColumnState (IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)\n", This);
 
@@ -657,7 +657,7 @@
 static HRESULT WINAPI ISF_Desktop_fnGetDetailsEx (IShellFolder2 * iface,
 						  LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)\n", This);
 
     return E_NOTIMPL;
@@ -665,7 +665,7 @@
 static HRESULT WINAPI ISF_Desktop_fnGetDetailsOf (IShellFolder2 * iface,
 						  LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     HRESULT hr = E_FAIL;
 
@@ -707,7 +707,7 @@
 }
 static HRESULT WINAPI ISF_Desktop_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)\n", This);
     return E_NOTIMPL;
 }
diff --git a/dlls/shell32/shfldr_fs.c b/dlls/shell32/shfldr_fs.c
index 99e8739..8ad3202 100644
--- a/dlls/shell32/shfldr_fs.c
+++ b/dlls/shell32/shfldr_fs.c
@@ -132,7 +132,7 @@
 */
 static HRESULT WINAPI IUnknown_fnQueryInterface (IUnknown * iface, REFIID riid, LPVOID * ppvObj)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
 
@@ -170,7 +170,7 @@
 
 static ULONG WINAPI IUnknown_fnAddRef (IUnknown * iface)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -179,7 +179,7 @@
 
 static ULONG WINAPI IUnknown_fnRelease (IUnknown * iface)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
diff --git a/dlls/shell32/shfldr_mycomp.c b/dlls/shell32/shfldr_mycomp.c
index 9e02230..b49ca59 100644
--- a/dlls/shell32/shfldr_mycomp.c
+++ b/dlls/shell32/shfldr_mycomp.c
@@ -133,7 +133,7 @@
  */
 static HRESULT WINAPI ISF_MyComputer_fnQueryInterface (IShellFolder2 * iface, REFIID riid, LPVOID * ppvObj)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(%s,%p)\n", This, shdebugstr_guid (riid), ppvObj);
 
@@ -158,7 +158,7 @@
 
 static ULONG WINAPI ISF_MyComputer_fnAddRef (IShellFolder2 * iface)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -167,7 +167,7 @@
 
 static ULONG WINAPI ISF_MyComputer_fnRelease (IShellFolder2 * iface)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(count=%lu)\n", This, This->ref);
 
@@ -191,7 +191,7 @@
 				   LPOLESTR lpszDisplayName,
 				   DWORD * pchEaten, LPITEMIDLIST * ppidl, DWORD * pdwAttributes)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     HRESULT hr = E_INVALIDARG;
     LPCWSTR szNext = NULL;
@@ -297,7 +297,7 @@
 static HRESULT WINAPI
 ISF_MyComputer_fnEnumObjects (IShellFolder2 * iface, HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST * ppEnumIDList)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(HWND=%p flags=0x%08lx pplist=%p)\n", This, hwndOwner, dwFlags, ppEnumIDList);
 
@@ -317,7 +317,7 @@
 ISF_MyComputer_fnBindToObject (IShellFolder2 * iface, LPCITEMIDLIST pidl,
 			       LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)->(pidl=%p,%p,%s,%p)\n", This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut);
 
@@ -331,7 +331,7 @@
 ISF_MyComputer_fnBindToStorage (IShellFolder2 * iface,
 				LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     FIXME ("(%p)->(pidl=%p,%p,%s,%p) stub\n", This, pidl, pbcReserved, shdebugstr_guid (riid), ppvOut);
 
@@ -346,7 +346,7 @@
 static HRESULT WINAPI
 ISF_MyComputer_fnCompareIDs (IShellFolder2 * iface, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     int nReturn;
 
@@ -362,7 +362,7 @@
 static HRESULT WINAPI
 ISF_MyComputer_fnCreateViewObject (IShellFolder2 * iface, HWND hwndOwner, REFIID riid, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     LPSHELLVIEW pShellView;
     HRESULT hr = E_INVALIDARG;
@@ -396,7 +396,7 @@
 static HRESULT WINAPI
 ISF_MyComputer_fnGetAttributesOf (IShellFolder2 * iface, UINT cidl, LPCITEMIDLIST * apidl, DWORD * rgfInOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     HRESULT hr = S_OK;
 
@@ -436,7 +436,7 @@
 				HWND hwndOwner,
 				UINT cidl, LPCITEMIDLIST * apidl, REFIID riid, UINT * prgfInOut, LPVOID * ppvOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     LPITEMIDLIST pidl;
     IUnknown *pObj = NULL;
@@ -489,7 +489,7 @@
 */
 static HRESULT WINAPI ISF_MyComputer_fnGetDisplayNameOf (IShellFolder2 * iface, LPCITEMIDLIST pidl, DWORD dwFlags, LPSTRRET strRet)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     char szPath[MAX_PATH],
       szDrive[18];
@@ -614,26 +614,26 @@
 static HRESULT WINAPI ISF_MyComputer_fnSetNameOf (IShellFolder2 * iface, HWND hwndOwner, LPCITEMIDLIST pidl,	/*simple pidl */
 						  LPCOLESTR lpName, DWORD dwFlags, LPITEMIDLIST * pPidlOut)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)->(%p,pidl=%p,%s,%lu,%p)\n", This, hwndOwner, pidl, debugstr_w (lpName), dwFlags, pPidlOut);
     return E_FAIL;
 }
 
 static HRESULT WINAPI ISF_MyComputer_fnGetDefaultSearchGUID (IShellFolder2 * iface, GUID * pguid)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)\n", This);
     return E_NOTIMPL;
 }
 static HRESULT WINAPI ISF_MyComputer_fnEnumSearches (IShellFolder2 * iface, IEnumExtraSearch ** ppenum)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)\n", This);
     return E_NOTIMPL;
 }
 static HRESULT WINAPI ISF_MyComputer_fnGetDefaultColumn (IShellFolder2 * iface, DWORD dwRes, ULONG * pSort, ULONG * pDisplay)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)\n", This);
 
@@ -643,7 +643,7 @@
 }
 static HRESULT WINAPI ISF_MyComputer_fnGetDefaultColumnState (IShellFolder2 * iface, UINT iColumn, DWORD * pcsFlags)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
 
     TRACE ("(%p)\n", This);
 
@@ -653,7 +653,7 @@
 }
 static HRESULT WINAPI ISF_MyComputer_fnGetDetailsEx (IShellFolder2 * iface, LPCITEMIDLIST pidl, const SHCOLUMNID * pscid, VARIANT * pv)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)\n", This);
     return E_NOTIMPL;
 }
@@ -661,7 +661,7 @@
 /* FIXME: drive size >4GB is rolling over */
 static HRESULT WINAPI ISF_MyComputer_fnGetDetailsOf (IShellFolder2 * iface, LPCITEMIDLIST pidl, UINT iColumn, SHELLDETAILS * psd)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     HRESULT hr;
 
     TRACE ("(%p)->(%p %i %p)\n", This, pidl, iColumn, psd);
@@ -710,7 +710,7 @@
 }
 static HRESULT WINAPI ISF_MyComputer_fnMapColumnToSCID (IShellFolder2 * iface, UINT column, SHCOLUMNID * pscid)
 {
-    ICOM_THIS (IGenericSFImpl, iface);
+    IGenericSFImpl *This = (IGenericSFImpl *)iface;
     FIXME ("(%p)\n", This);
     return E_NOTIMPL;
 }
diff --git a/dlls/shlwapi/assoc.c b/dlls/shlwapi/assoc.c
index a2f17fd..d52dad7 100644
--- a/dlls/shlwapi/assoc.c
+++ b/dlls/shlwapi/assoc.c
@@ -440,7 +440,7 @@
   REFIID riid,
   LPVOID *ppvObj)
 {
-  ICOM_THIS(IQueryAssociationsImpl, iface);
+  IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
 
   TRACE("(%p,%s,%p)\n",This, debugstr_guid(riid), ppvObj);
 
@@ -466,7 +466,7 @@
  */
 static ULONG WINAPI IQueryAssociations_fnAddRef(IQueryAssociations *iface)
 {
-  ICOM_THIS(IQueryAssociationsImpl,iface);
+  IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
 
   TRACE("(%p)->(ref before=%lu)\n",This, This->ref);
 
@@ -480,7 +480,7 @@
  */
 static ULONG WINAPI IQueryAssociations_fnRelease(IQueryAssociations *iface)
 {
-  ICOM_THIS(IQueryAssociationsImpl,iface);
+  IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
   ULONG ulRet;
 
   TRACE("(%p)->(ref before=%lu)\n",This, This->ref);
@@ -517,7 +517,7 @@
   HWND hWnd)
 {
     static const WCHAR szProgID[] = {'P','r','o','g','I','D',0};
-    ICOM_THIS(IQueryAssociationsImpl,iface);
+    IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
     HRESULT hr;
 
     TRACE("(%p)->(%ld,%s,%p,%p)\n", iface,
@@ -587,7 +587,7 @@
   LPWSTR pszOut,
   DWORD *pcchOut)
 {
-  ICOM_THIS(IQueryAssociationsImpl, iface);
+  IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
 
   FIXME("(%p,0x%8lx,0x%8x,%s,%p,%p)-stub!\n", This, cfFlags, str,
         debugstr_w(pszExtra), pszOut, pcchOut);
@@ -617,7 +617,7 @@
   LPCWSTR pszExtra,
   HKEY *phkeyOut)
 {
-  ICOM_THIS(IQueryAssociationsImpl, iface);
+  IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
 
   FIXME("(%p,0x%8lx,0x%8x,%s,%p)-stub!\n", This, cfFlags, assockey,
         debugstr_w(pszExtra), phkeyOut);
@@ -649,7 +649,7 @@
   LPVOID pvOut,
   DWORD *pcbOut)
 {
-  ICOM_THIS(IQueryAssociationsImpl, iface);
+  IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
 
   FIXME("(%p,0x%8lx,0x%8x,%s,%p,%p)-stub!\n", This, cfFlags, assocdata,
         debugstr_w(pszExtra), pvOut, pcbOut);
@@ -684,7 +684,7 @@
   REFIID riid,
   LPVOID *ppvOut)
 {
-  ICOM_THIS(IQueryAssociationsImpl, iface);
+  IQueryAssociationsImpl *This = (IQueryAssociationsImpl *)iface;
 
   FIXME("(%p,0x%8lx,0x%8x,%s,%s,%p)-stub!\n", This, cfFlags, assocenum,
         debugstr_w(pszExtra), debugstr_guid(riid), ppvOut);
diff --git a/dlls/shlwapi/istream.c b/dlls/shlwapi/istream.c
index b1bcc9a..bc1cb55 100644
--- a/dlls/shlwapi/istream.c
+++ b/dlls/shlwapi/istream.c
@@ -53,7 +53,7 @@
 */
 static HRESULT WINAPI IStream_fnQueryInterface(IStream *iface, REFIID riid, LPVOID *ppvObj)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
 
   TRACE("(%p,%s,%p)\n", This, debugstr_guid(riid), ppvObj);
 
@@ -75,7 +75,7 @@
 */
 static ULONG WINAPI IStream_fnAddRef(IStream *iface)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
 
   TRACE("(%p)\n", This);
   return InterlockedIncrement(&This->ref);
@@ -86,7 +86,7 @@
 */
 static ULONG WINAPI IStream_fnRelease(IStream *iface)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
   ULONG ulRet;
 
   TRACE("(%p)\n", This);
@@ -106,7 +106,7 @@
  */
 static HRESULT WINAPI IStream_fnRead(IStream *iface, void* pv, ULONG cb, ULONG* pcbRead)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
   HRESULT hRet = S_OK;
   DWORD dwRead = 0;
 
@@ -130,7 +130,7 @@
  */
 static HRESULT WINAPI IStream_fnWrite(IStream *iface, const void* pv, ULONG cb, ULONG* pcbWritten)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
   HRESULT hRet = S_OK;
   DWORD dwWritten = 0;
 
@@ -157,7 +157,7 @@
 static HRESULT WINAPI IStream_fnSeek(IStream *iface, LARGE_INTEGER dlibMove,
                                      DWORD dwOrigin, ULARGE_INTEGER* pNewPos)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
   DWORD dwPos;
 
   TRACE("(%p,%ld,%ld,%p)\n", This, dlibMove.u.LowPart, dwOrigin, pNewPos);
@@ -178,7 +178,7 @@
  */
 static HRESULT WINAPI IStream_fnSetSize(IStream *iface, ULARGE_INTEGER libNewSize)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
 
   TRACE("(%p,%ld)\n", This, libNewSize.u.LowPart);
   IStream_fnCommit(iface, 0); /* If ever buffered, this will be needed */
@@ -191,7 +191,7 @@
 static HRESULT WINAPI IStream_fnCopyTo(IStream *iface, IStream* pstm, ULARGE_INTEGER cb,
                                        ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
   char copyBuff[1024];
   ULONGLONG ulSize;
   HRESULT hRet = S_OK;
@@ -240,7 +240,7 @@
  */
 static HRESULT WINAPI IStream_fnCommit(IStream *iface, DWORD grfCommitFlags)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
 
   TRACE("(%p,%ld)\n", This, grfCommitFlags);
   /* Currently unbuffered: This function is not needed */
@@ -252,7 +252,7 @@
  */
 static HRESULT WINAPI IStream_fnRevert(IStream *iface)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
 
   TRACE("(%p)\n", This);
   return E_NOTIMPL;
@@ -264,7 +264,7 @@
 static HRESULT WINAPI IStream_fnLockUnlockRegion(IStream *iface, ULARGE_INTEGER libOffset,
                                                  ULARGE_INTEGER cb, DWORD dwLockType)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
   TRACE("(%p,%ld,%ld,%ld)\n", This, libOffset.u.LowPart, cb.u.LowPart, dwLockType);
   return E_NOTIMPL;
 }
@@ -275,7 +275,7 @@
 static HRESULT WINAPI IStream_fnStat(IStream *iface, STATSTG* lpStat,
                                      DWORD grfStatFlag)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
   BY_HANDLE_FILE_INFORMATION fi;
   HRESULT hRet = S_OK;
 
@@ -312,7 +312,7 @@
  */
 static HRESULT WINAPI IStream_fnClone(IStream *iface, IStream** ppstm)
 {
-  ICOM_THIS(ISHFileStream, iface);
+  ISHFileStream *This = (ISHFileStream *)iface;
 
   TRACE("(%p)\n",This);
   if (ppstm)
diff --git a/dlls/shlwapi/regstream.c b/dlls/shlwapi/regstream.c
index 565e13a..57f4212 100644
--- a/dlls/shlwapi/regstream.c
+++ b/dlls/shlwapi/regstream.c
@@ -46,7 +46,7 @@
 */
 static HRESULT WINAPI IStream_fnQueryInterface(IStream *iface, REFIID riid, LPVOID *ppvObj)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj);
 
@@ -72,7 +72,7 @@
 */
 static ULONG WINAPI IStream_fnAddRef(IStream *iface)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)->(count=%lu)\n",This, This->ref);
 
@@ -84,7 +84,7 @@
 */
 static ULONG WINAPI IStream_fnRelease(IStream *iface)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)->()\n",This);
 
@@ -109,7 +109,7 @@
  */
 static HRESULT WINAPI IStream_fnRead (IStream * iface, void* pv, ULONG cb, ULONG* pcbRead)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	DWORD dwBytesToRead, dwBytesLeft;
 
@@ -140,7 +140,7 @@
  */
 static HRESULT WINAPI IStream_fnWrite (IStream * iface, const void* pv, ULONG cb, ULONG* pcbWritten)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 
@@ -155,7 +155,7 @@
  */
 static HRESULT WINAPI IStream_fnSeek (IStream * iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 
@@ -169,7 +169,7 @@
  */
 static HRESULT WINAPI IStream_fnSetSize (IStream * iface, ULARGE_INTEGER libNewSize)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 	return E_NOTIMPL;
@@ -180,7 +180,7 @@
  */
 static HRESULT WINAPI IStream_fnCopyTo (IStream * iface, IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 	if (pcbRead)
@@ -195,7 +195,7 @@
  */
 static HRESULT WINAPI IStream_fnCommit (IStream * iface, DWORD grfCommitFlags)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 
@@ -207,7 +207,7 @@
  */
 static HRESULT WINAPI IStream_fnRevert (IStream * iface)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 
@@ -219,7 +219,7 @@
  */
 static HRESULT WINAPI IStream_fnLockUnlockRegion (IStream * iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 
@@ -231,7 +231,7 @@
  */
 static HRESULT WINAPI IStream_fnStat (IStream * iface, STATSTG*   pstatstg, DWORD grfStatFlag)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 
@@ -243,7 +243,7 @@
  */
 static HRESULT WINAPI IStream_fnClone (IStream * iface, IStream** ppstm)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 
 	TRACE("(%p)\n",This);
 	if (ppstm)
@@ -276,7 +276,7 @@
  */
 static ULONG WINAPI IStream_fnAddRefDummy(IStream *iface)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 	TRACE("(%p)\n", This);
 	return 2;
 }
@@ -286,7 +286,7 @@
  */
 static ULONG WINAPI IStream_fnReleaseDummy(IStream *iface)
 {
-	ICOM_THIS(ISHRegStream, iface);
+	ISHRegStream *This = (ISHRegStream *)iface;
 	TRACE("(%p)\n", This);
 	return 1;
 }
diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c
index c71230a..4439ddf 100644
--- a/dlls/urlmon/umon.c
+++ b/dlls/urlmon/umon.c
@@ -159,7 +159,7 @@
  *******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppvObject);
 
@@ -193,7 +193,7 @@
  ******************************************************************************/
 static ULONG WINAPI URLMonikerImpl_AddRef(IMoniker* iface)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -205,7 +205,7 @@
  ******************************************************************************/
 static ULONG WINAPI URLMonikerImpl_Release(IMoniker* iface)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
@@ -227,7 +227,7 @@
 static HRESULT WINAPI URLMonikerImpl_GetClassID(IMoniker* iface,
 						CLSID *pClassID)/* Pointer to CLSID of object */
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pClassID);
 
@@ -243,7 +243,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_IsDirty(IMoniker* iface)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     /* Note that the OLE-provided implementations of the IPersistStream::IsDirty
        method in the OLE-provided moniker interfaces always return S_FALSE because
        their internal state never changes. */
@@ -262,7 +262,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Load(IMoniker* iface,IStream* pStm)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     HRESULT res;
     ULONG len;
@@ -298,7 +298,7 @@
 					  IStream* pStm,/* pointer to the stream where the object is to be saved */
 					  BOOL fClearDirty)/* Specifies whether to clear the dirty flag */
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     HRESULT res;
     ULONG len;
@@ -321,7 +321,7 @@
 static HRESULT WINAPI URLMonikerImpl_GetSizeMax(IMoniker* iface,
 						ULARGE_INTEGER* pcbSize)/* Pointer to size of stream needed to save object */
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pcbSize);
 
@@ -403,7 +403,7 @@
 						  REFIID riid,
 						  VOID** ppvResult)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     *ppvResult=0;
 
@@ -469,7 +469,7 @@
 						   REFIID riid,
 						   VOID** ppvObject)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     HRESULT hres;
     IBindStatusCallback *pbscb;
     BINDINFO bi;
@@ -613,7 +613,7 @@
 					    IMoniker** ppmkToLeft,
 					    IMoniker** ppmkReduced)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     TRACE("(%p,%p,%ld,%p,%p)\n",This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
 
@@ -633,7 +633,7 @@
 						 BOOL fOnlyIfNotGeneric,
 						 IMoniker** ppmkComposite)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%d,%p): stub\n",This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
 
     return E_NOTIMPL;
@@ -644,7 +644,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Enum(IMoniker* iface,BOOL fForward, IEnumMoniker** ppenumMoniker)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     TRACE("(%p,%d,%p)\n",This,fForward,ppenumMoniker);
 
     if(!ppenumMoniker)
@@ -660,7 +660,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     CLSID clsid;
     LPOLESTR urlPath;
     IBindCtx* bind;
@@ -697,7 +697,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Hash(IMoniker* iface,DWORD* pdwHash)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     int  h = 0,i,skip,len;
     int  off = 0;
@@ -735,7 +735,7 @@
 					       IMoniker* pmkToLeft,
 					       IMoniker* pmkNewlyRunning)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p,%p): stub\n",This,pbc,pmkToLeft,pmkNewlyRunning);
 
     return E_NOTIMPL;
@@ -749,7 +749,7 @@
 							 IMoniker* pmkToLeft,
 							 FILETIME* pFileTime)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p,%p): stub\n",This,pbc,pmkToLeft,pFileTime);
 
     return E_NOTIMPL;
@@ -760,7 +760,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Inverse(IMoniker* iface,IMoniker** ppmk)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     TRACE("(%p,%p)\n",This,ppmk);
 
     return MK_E_NOINVERSE;
@@ -771,7 +771,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_CommonPrefixWith(IMoniker* iface,IMoniker* pmkOther,IMoniker** ppmkPrefix)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p): stub\n",This,pmkOther,ppmkPrefix);
 
     return E_NOTIMPL;
@@ -782,7 +782,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_RelativePathTo(IMoniker* iface,IMoniker* pmOther, IMoniker** ppmkRelPath)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p): stub\n",This,pmOther,ppmkRelPath);
 
     return E_NOTIMPL;
@@ -796,7 +796,7 @@
 						    IMoniker* pmkToLeft,
 						    LPOLESTR *ppszDisplayName)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     int len;
     
@@ -826,7 +826,7 @@
 						      ULONG* pchEaten,
 						      IMoniker** ppmkOut)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p,%p,%p,%p): stub\n",This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
 
     return E_NOTIMPL;
@@ -837,7 +837,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_IsSystemMoniker(IMoniker* iface,DWORD* pwdMksys)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     TRACE("(%p,%p)\n",This,pwdMksys);
 
     if(!pwdMksys)