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/dmplugin.h b/include/dmplugin.h
index 944557d..f0dd451 100644
--- a/include/dmplugin.h
+++ b/include/dmplugin.h
@@ -64,23 +64,23 @@
/*****************************************************************************
* IDirectMusicTool interface
*/
-#undef ICOM_INTERFACE
-#define ICOM_INTERFACE IDirectMusicTool
+#undef INTERFACE
+#define INTERFACE IDirectMusicTool
#define IDirectMusicTool_METHODS \
/*** IDirectMusicTool methods ***/ \
- ICOM_METHOD1(HRESULT, Init, IDirectMusicGraph*,pGraph) \
- ICOM_METHOD1(HRESULT, GetMsgDeliveryType, DWORD*,pdwDeliveryType) \
- ICOM_METHOD1(HRESULT, GetMediaTypeArraySize, DWORD*,pdwNumElements) \
- ICOM_METHOD2(HRESULT, GetMediaTypes, DWORD**,padwMediaTypes, DWORD,dwNumElements) \
- ICOM_METHOD2(HRESULT, ProcessPMsg, IDirectMusicPerformance*,pPerf, DMUS_PMSG*,pPMSG) \
- ICOM_METHOD3(HRESULT, Flush, IDirectMusicPerformance*,pPerf, DMUS_PMSG*,pPMSG, REFERENCE_TIME,rtTime)
+ STDMETHOD(Init)(THIS_ IDirectMusicGraph *pGraph) PURE; \
+ STDMETHOD(GetMsgDeliveryType)(THIS_ DWORD *pdwDeliveryType) PURE; \
+ STDMETHOD(GetMediaTypeArraySize)(THIS_ DWORD *pdwNumElements) PURE; \
+ STDMETHOD(GetMediaTypes)(THIS_ DWORD **padwMediaTypes, DWORD dwNumElements) PURE; \
+ STDMETHOD(ProcessPMsg)(THIS_ IDirectMusicPerformance *pPerf, DMUS_PMSG *pPMSG) PURE; \
+ STDMETHOD(Flush)(THIS_ IDirectMusicPerformance *pPerf, DMUS_PMSG *pPMSG, REFERENCE_TIME rtTime) PURE;
/*** IDirectMusicTool methods ***/
#define IDirectMusicTool_IMETHODS \
IUnknown_IMETHODS \
IDirectMusicTool_METHODS
ICOM_DEFINE(IDirectMusicTool,IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
/*** IUnknown methods ***/
#define IDirectMusicTool_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
@@ -98,11 +98,11 @@
/*****************************************************************************
* IDirectMusicTool8 interface
*/
-#undef ICOM_INTERFACE
-#define ICOM_INTERFACE IDirectMusicTool8
+#undef INTERFACE
+#define INTERFACE IDirectMusicTool8
#define IDirectMusicTool8_METHODS \
/*** IDirectMusicTool8 methods ***/ \
- ICOM_METHOD1(HRESULT, Clone, IDirectMusicTool**,ppTool)
+ STDMETHOD(Clone)(THIS_ IDirectMusicTool **ppTool) PURE;
/*** IDirectMusicTool8 methods ***/
#define IDirectMusicTool8_IMETHODS \
@@ -110,7 +110,7 @@
IDirectMusicTool_METHODS \
IDirectMusicTool8_METHODS
ICOM_DEFINE(IDirectMusicTool8,IDirectMusicTool)
-#undef ICOM_INTERFACE
+#undef INTERFACE
/*** IUnknown methods ***/
#define IDirectMusicTool8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
@@ -149,27 +149,27 @@
/*****************************************************************************
* IDirectMusicTrack interface
*/
-#undef ICOM_INTERFACE
-#define ICOM_INTERFACE IDirectMusicTrack
+#undef INTERFACE
+#define INTERFACE IDirectMusicTrack
#define IDirectMusicTrack_METHODS \
/*** IDirectMusicTrack methods ***/ \
- ICOM_METHOD1(HRESULT, Init, IDirectMusicSegment*,pSegment) \
- ICOM_METHOD5(HRESULT, InitPlay, IDirectMusicSegmentState*,pSegmentState, IDirectMusicPerformance*,pPerformance, void**,ppStateData, DWORD,dwVirtualTrackID, DWORD,dwFlags) \
- ICOM_METHOD1(HRESULT, EndPlay, void*,pStateData) \
- ICOM_METHOD8(HRESULT, Play, void*,pStateData, MUSIC_TIME,mtStart, MUSIC_TIME,mtEnd, MUSIC_TIME,mtOffset, DWORD,dwFlags, IDirectMusicPerformance*,pPerf, IDirectMusicSegmentState*,pSegSt, DWORD,dwVirtualID) \
- ICOM_METHOD4(HRESULT, GetParam, REFGUID,rguidType, MUSIC_TIME,mtTime, MUSIC_TIME*,pmtNext, void*,pParam) \
- ICOM_METHOD3(HRESULT, SetParam, REFGUID,rguidType, MUSIC_TIME,mtTime, void*,pParam) \
- ICOM_METHOD1(HRESULT, IsParamSupported, REFGUID,rguidType) \
- ICOM_METHOD1(HRESULT, AddNotificationType, REFGUID,rguidNotificationType) \
- ICOM_METHOD1(HRESULT, RemoveNotificationType, REFGUID,rguidNotificationType) \
- ICOM_METHOD3(HRESULT, Clone, MUSIC_TIME,mtStart, MUSIC_TIME,mtEnd, IDirectMusicTrack**,ppTrack)
+ STDMETHOD(Init)(THIS_ IDirectMusicSegment *pSegment) PURE; \
+ STDMETHOD(InitPlay)(THIS_ IDirectMusicSegmentState *pSegmentState, IDirectMusicPerformance *pPerformance, void **ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags) PURE; \
+ STDMETHOD(EndPlay)(THIS_ void *pStateData) PURE; \
+ STDMETHOD(Play)(THIS_ void *pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID) PURE; \
+ STDMETHOD(GetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME *pmtNext, void *pParam) PURE; \
+ STDMETHOD(SetParam)(THIS_ REFGUID rguidType, MUSIC_TIME mtTime, void *pParam) PURE; \
+ STDMETHOD(IsParamSupported)(THIS_ REFGUID rguidType) PURE; \
+ STDMETHOD(AddNotificationType)(THIS_ REFGUID rguidNotificationType) PURE; \
+ STDMETHOD(RemoveNotificationType)(THIS_ REFGUID rguidNotificationType) PURE; \
+ STDMETHOD(Clone)(THIS_ MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack **ppTrack) PURE;
/*** IDirectMusicTrack methods ***/
#define IDirectMusicTrack_IMETHODS \
IUnknown_IMETHODS \
IDirectMusicTrack_METHODS
ICOM_DEFINE(IDirectMusicTrack,IUnknown)
-#undef ICOM_INTERFACE
+#undef INTERFACE
/*** IUnknown methods ***/
#define IDirectMusicTrack_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
@@ -191,15 +191,15 @@
/*****************************************************************************
* IDirectMusicTrack8 interface
*/
-#undef ICOM_INTERFACE
-#define ICOM_INTERFACE IDirectMusicTrack8
+#undef INTERFACE
+#define INTERFACE IDirectMusicTrack8
#define IDirectMusicTrack8_METHODS \
/*** IDirectMusicTrack8 methods ***/ \
- ICOM_METHOD8(HRESULT, PlayEx, void*,pStateData, REFERENCE_TIME,rtStart, REFERENCE_TIME,rtEnd, REFERENCE_TIME,rtOffset, DWORD,dwFlags, IDirectMusicPerformance*,pPerf, IDirectMusicSegmentState*,pSegSt, DWORD,dwVirtualID) \
- ICOM_METHOD6(HRESULT, GetParamEx, REFGUID,rguidType, REFERENCE_TIME,rtTime, REFERENCE_TIME*,prtNext, void*,pParam, void*,pStateData, DWORD,dwFlags) \
- ICOM_METHOD5(HRESULT, SetParamEx, REFGUID,rguidType, REFERENCE_TIME,rtTime, void*,pParam, void*,pStateData, DWORD,dwFlags) \
- ICOM_METHOD3(HRESULT, Compose, IUnknown*,pContext, DWORD,dwTrackGroup, IDirectMusicTrack**,ppResultTrack) \
- ICOM_METHOD5(HRESULT, Join, IDirectMusicTrack*,pNewTrack, MUSIC_TIME,mtJoin, IUnknown*,pContext, DWORD,dwTrackGroup, IDirectMusicTrack**,ppResultTrack)
+ STDMETHOD(PlayEx)(THIS_ void *pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance *pPerf, IDirectMusicSegmentState *pSegSt, DWORD dwVirtualID) PURE; \
+ STDMETHOD(GetParamEx)(THIS_ REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME *prtNext, void *pParam, void *pStateData, DWORD dwFlags) PURE; \
+ STDMETHOD(SetParamEx)(THIS_ REFGUID rguidType, REFERENCE_TIME rtTime, void *pParam, void *pStateData, DWORD dwFlags) PURE; \
+ STDMETHOD(Compose)(THIS_ IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack) PURE; \
+ STDMETHOD(Join)(THIS_ IDirectMusicTrack *pNewTrack, MUSIC_TIME mtJoin, IUnknown *pContext, DWORD dwTrackGroup, IDirectMusicTrack **ppResultTrack) PURE;
/*** IDirectMusicTrack8 methods ***/
#define IDirectMusicTrack8_IMETHODS \
@@ -208,7 +208,7 @@
IDirectMusicTrack8_METHODS
ICOM_DEFINE(IDirectMusicTrack8,IDirectMusicTrack)
-#undef ICOM_INTERFACE
+#undef INTERFACE
/*** IUnknown methods ***/
#define IDirectMusicTrack8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)