Use a more compatible technique to declare COM interfaces methods,
using Microsoft's STDMETHOD macros instead of the Wine-specific
ICOM_METHOD ones.

diff --git a/include/dmusics.h b/include/dmusics.h
index d8d86aa..8d893aa 100644
--- a/include/dmusics.h
+++ b/include/dmusics.h
@@ -63,34 +63,34 @@
 /*****************************************************************************
  * IDirectMusicSynth interface
  */
-#undef  ICOM_INTERFACE
-#define ICOM_INTERFACE IDirectMusicSynth
+#undef  INTERFACE
+#define INTERFACE IDirectMusicSynth
 #define IDirectMusicSynth_METHODS \
     /*** IDirectMusicSynth methods ***/ \
-    ICOM_METHOD1(HRESULT, Open, LPDMUS_PORTPARAMS,pPortParams) \
-    ICOM_METHOD (HRESULT, Close) \
-    ICOM_METHOD1(HRESULT, SetNumChannelGroups, DWORD,dwGroups) \
-    ICOM_METHOD3(HRESULT, Download, LPHANDLE,phDownload, LPVOID,pvData, LPBOOL,pbFree) \
-    ICOM_METHOD3(HRESULT, Unload, HANDLE,hDownload, HRESULT,(CALLBACK* lpFreeHandle)(HANDLE,HANDLE), HANDLE,hUserData) \
-    ICOM_METHOD3(HRESULT, PlayBuffer, REFERENCE_TIME,rt, LPBYTE,pbBuffer, DWORD,cbBuffer) \
-    ICOM_METHOD1(HRESULT, GetRunningStats, LPDMUS_SYNTHSTATS,pStats) \
-    ICOM_METHOD1(HRESULT, GetPortCaps, LPDMUS_PORTCAPS,pCaps) \
-    ICOM_METHOD1(HRESULT, SetMasterClock, IReferenceClock*,pClock) \
-	ICOM_METHOD1(HRESULT, GetLatencyClock, IReferenceClock**,ppClock) \
-	ICOM_METHOD1(HRESULT, Activate, BOOL,fEnable) \
-	ICOM_METHOD1(HRESULT, SetSynthSink, IDirectMusicSynthSink*,pSynthSink) \
-	ICOM_METHOD3(HRESULT, Render, short*,pBuffer, DWORD,dwLength, LONGLONG,llPosition) \
-	ICOM_METHOD3(HRESULT, SetChannelPriority, DWORD,dwChannelGroup, DWORD,dwChannel, DWORD,dwPriority) \
-	ICOM_METHOD3(HRESULT, GetChannelPriority, DWORD,dwChannelGroup, DWORD,dwChannel, LPDWORD,pdwPriority) \
-	ICOM_METHOD2(HRESULT, GetFormat, LPWAVEFORMATEX,pWaveFormatEx, LPDWORD,pdwWaveFormatExSiz) \
-	ICOM_METHOD1(HRESULT, GetAppend, DWORD*,pdwAppend)
+    STDMETHOD(Open)(THIS_ LPDMUS_PORTPARAMS pPortParams) PURE; \
+    STDMETHOD(Close)(THIS) PURE; \
+    STDMETHOD(SetNumChannelGroups)(THIS_ DWORD dwGroups) PURE; \
+    STDMETHOD(Download)(THIS_ LPHANDLE phDownload, LPVOID pvData, LPBOOL pbFree) PURE; \
+    STDMETHOD(Unload)(THIS_ HANDLE hDownload, HRESULT (CALLBACK* lpFreeHandle)(HANDLE,HANDLE), HANDLE hUserData) PURE; \
+    STDMETHOD(PlayBuffer)(THIS_ REFERENCE_TIME rt, LPBYTE pbBuffer, DWORD cbBuffer) PURE; \
+    STDMETHOD(GetRunningStats)(THIS_ LPDMUS_SYNTHSTATS pStats) PURE; \
+    STDMETHOD(GetPortCaps)(THIS_ LPDMUS_PORTCAPS pCaps) PURE; \
+    STDMETHOD(SetMasterClock)(THIS_ IReferenceClock *pClock) PURE; \
+    STDMETHOD(GetLatencyClock)(THIS_ IReferenceClock **ppClock) PURE; \
+    STDMETHOD(Activate)(THIS_ BOOL fEnable) PURE; \
+    STDMETHOD(SetSynthSink)(THIS_ IDirectMusicSynthSink *pSynthSink) PURE; \
+    STDMETHOD(Render)(THIS_ short *pBuffer, DWORD dwLength, LONGLONG llPosition) PURE; \
+    STDMETHOD(SetChannelPriority)(THIS_ DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority) PURE; \
+    STDMETHOD(GetChannelPriority)(THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority) PURE; \
+    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSiz) PURE; \
+    STDMETHOD(GetAppend)(THIS_ DWORD *pdwAppend) PURE;
 
 /*** IDirectMusicSynth methods ***/
 #define IDirectMusicSynth_IMETHODS \
     IUnknown_IMETHODS \
     IDirectMusicSynth_METHODS
 ICOM_DEFINE(IDirectMusicSynth,IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
 /*** IUnknown methods ***/
 #define IDirectMusicSynth_QueryInterface(p,a,b)					ICOM_CALL2(QueryInterface,p,a,b)
@@ -119,23 +119,23 @@
 /*****************************************************************************
  * IDirectMusicSynth8 interface
  */
-#undef  ICOM_INTERFACE
-#define ICOM_INTERFACE IDirectMusicSynth8
+#undef  INTERFACE
+#define INTERFACE IDirectMusicSynth8
 #define IDirectMusicSynth8_METHODS \
     /*** IDirectMusicSynth8 methods ***/ \
-    ICOM_METHOD10(HRESULT, PlayVoice, 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_METHOD2(HRESULT, StopVoice, REFERENCE_TIME,rt, DWORD,dwVoiceId) \
-    ICOM_METHOD3(HRESULT, GetVoiceState, DWORD,dwVoice[], DWORD,cbVoice, DMUS_VOICE_STATE,dwVoiceState[]) \
-    ICOM_METHOD2(HRESULT, Refresh, DWORD,dwDownloadID, DWORD,dwFlags) \
-    ICOM_METHOD4(HRESULT, AssignChannelToBuses, DWORD,dwChannelGroup, DWORD,dwChannel, LPDWORD,pdwBuses, DWORD,cBuses)
+    STDMETHOD(PlayVoice)(THIS_ REFERENCE_TIME rt, DWORD dwVoiceId, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwDLId, long prPitch, long vrVolume, SAMPLE_TIME stVoiceStart, SAMPLE_TIME stLoopStart, SAMPLE_TIME stLoopEnd) PURE; \
+    STDMETHOD(StopVoice)(THIS_ REFERENCE_TIME rt, DWORD dwVoiceId) PURE; \
+    STDMETHOD(GetVoiceState)(THIS_ DWORD dwVoice[], DWORD cbVoice, DMUS_VOICE_STATE dwVoiceState[]) PURE; \
+    STDMETHOD(Refresh)(THIS_ DWORD dwDownloadID, DWORD dwFlags) PURE; \
+    STDMETHOD(AssignChannelToBuses)(THIS_ DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwBuses, DWORD cBuses) PURE;
 
 /*** IDirectMusicSynth methods ***/
 #define IDirectMusicSynth8_IMETHODS \
     IUnknown_IMETHODS \
-	IDirectMusicSynth_METHODS \
+    IDirectMusicSynth_METHODS \
     IDirectMusicSynth8_METHODS
 ICOM_DEFINE(IDirectMusicSynth8,IDirectMusicSynth)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
 /*** IUnknown methods ***/
 #define IDirectMusicSynth8_QueryInterface(p,a,b)					ICOM_CALL2(QueryInterface,p,a,b)
@@ -170,25 +170,25 @@
 /*****************************************************************************
  * IDirectMusicSynthSink interface
  */
-#undef  ICOM_INTERFACE
-#define ICOM_INTERFACE IDirectMusicSynthSink
+#undef  INTERFACE
+#define INTERFACE IDirectMusicSynthSink
 #define IDirectMusicSynthSink_METHODS \
     /*** IDirectMusicSynthSink methods ***/ \
-    ICOM_METHOD1(HRESULT, Init, IDirectMusicSynth*,pSynth) \
-    ICOM_METHOD1(HRESULT, SetMasterClock, IReferenceClock*,pClock) \
-    ICOM_METHOD1(HRESULT, GetLatencyClock, IReferenceClock**,ppClock) \
-    ICOM_METHOD1(HRESULT, Activate, BOOL,fEnable) \
-    ICOM_METHOD2(HRESULT, SampleToRefTime, LONGLONG,llSampleTime, REFERENCE_TIME*,prfTime) \
-    ICOM_METHOD2(HRESULT, RefTimeToSample, REFERENCE_TIME,rfTime, LONGLONG*,pllSampleTime) \
-    ICOM_METHOD2(HRESULT, SetDirectSound, LPDIRECTSOUND,pDirectSound, LPDIRECTSOUNDBUFFER,pDirectSoundBuffer) \
-    ICOM_METHOD1(HRESULT, GetDesiredBufferSize, LPDWORD,pdwBufferSizeInSamples)
+    STDMETHOD(Init)(THIS_ IDirectMusicSynth *pSynth) PURE; \
+    STDMETHOD(SetMasterClock)(THIS_ IReferenceClock *pClock) PURE; \
+    STDMETHOD(GetLatencyClock)(THIS_ IReferenceClock **ppClock) PURE; \
+    STDMETHOD(Activate)(THIS_ BOOL fEnable) PURE; \
+    STDMETHOD(SampleToRefTime)(THIS_ LONGLONG llSampleTime, REFERENCE_TIME *prfTime) PURE; \
+    STDMETHOD(RefTimeToSample)(THIS_ REFERENCE_TIME rfTime, LONGLONG *pllSampleTime) PURE; \
+    STDMETHOD(SetDirectSound)(THIS_ LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer) PURE; \
+    STDMETHOD(GetDesiredBufferSize)(THIS_ LPDWORD pdwBufferSizeInSamples) PURE;
 
 /*** IDirectMusicSynthSink methods ***/
 #define IDirectMusicSynthSink_IMETHODS \
     IUnknown_IMETHODS \
     IDirectMusicSynthSink_METHODS
 ICOM_DEFINE(IDirectMusicSynthSink,IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
 
 /*** IUnknown methods ***/
 #define IDirectMusicSynthSink_QueryInterface(p,a,b)					ICOM_CALL2(QueryInterface,p,a,b)