Simplified COM interface declarations, removing the need to define
both an xxx_METHODS and an xxx_IMETHODS macro.

diff --git a/include/dmplugin.h b/include/dmplugin.h
index a1564a8..a0c38c6 100644
--- a/include/dmplugin.h
+++ b/include/dmplugin.h
@@ -67,18 +67,13 @@
 #undef  INTERFACE
 #define INTERFACE IDirectMusicTool
 #define IDirectMusicTool_METHODS \
-    /*** IDirectMusicTool methods ***/ \
+    IUnknown_METHODS \
     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 INTERFACE
 
@@ -103,14 +98,8 @@
 #undef  INTERFACE
 #define INTERFACE IDirectMusicTool8
 #define IDirectMusicTool8_METHODS \
-    /*** IDirectMusicTool8 methods ***/ \
-    STDMETHOD(Clone)(THIS_ IDirectMusicTool **ppTool) PURE;
-
-	/*** IDirectMusicTool8 methods ***/
-#define IDirectMusicTool8_IMETHODS \
-    IUnknown_IMETHODS \
     IDirectMusicTool_METHODS \
-    IDirectMusicTool8_METHODS
+    STDMETHOD(Clone)(THIS_ IDirectMusicTool **ppTool) PURE;
 ICOM_DEFINE(IDirectMusicTool8,IDirectMusicTool)
 #undef INTERFACE
 
@@ -156,7 +145,7 @@
 #undef  INTERFACE
 #define INTERFACE IDirectMusicTrack
 #define IDirectMusicTrack_METHODS \
-    /*** IDirectMusicTrack methods ***/ \
+    IUnknown_METHODS \
     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; \
@@ -167,11 +156,6 @@
     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 INTERFACE
 
@@ -200,19 +184,12 @@
 #undef  INTERFACE
 #define INTERFACE IDirectMusicTrack8
 #define IDirectMusicTrack8_METHODS \
-    /*** IDirectMusicTrack8 methods ***/ \
+    IDirectMusicTrack_METHODS \
     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 \
-    IUnknown_IMETHODS \
-    IDirectMusicTrack_METHODS \
-    IDirectMusicTrack8_METHODS
-
 ICOM_DEFINE(IDirectMusicTrack8,IDirectMusicTrack)
 #undef INTERFACE