Make more of the OLE interface vtables const

Dmitry Timoshkov dmitry at baikal.ru
Sun May 29 05:05:49 CDT 2005


Hello,

Changelog:
    Dmitry Timoshkov <dmitry at codeweavers.com>
    Make more of the OLE interface vtables const.

diff -up cvs/hq/wine/dlls/devenum/createdevenum.c wine/dlls/devenum/createdevenum.c
--- cvs/hq/wine/dlls/devenum/createdevenum.c	2005-05-19 15:23:12.000000000 +0900
+++ wine/dlls/devenum/createdevenum.c	2005-05-29 15:25:27.000000000 +0900
@@ -171,7 +171,7 @@ HRESULT WINAPI DEVENUM_ICreateDevEnum_Cr
 /**********************************************************************
  * ICreateDevEnum_Vtbl
  */
-static ICreateDevEnumVtbl ICreateDevEnum_Vtbl =
+static const ICreateDevEnumVtbl ICreateDevEnum_Vtbl =
 {
     DEVENUM_ICreateDevEnum_QueryInterface,
     DEVENUM_ICreateDevEnum_AddRef,
diff -up cvs/hq/wine/dlls/devenum/devenum_private.h wine/dlls/devenum/devenum_private.h
--- cvs/hq/wine/dlls/devenum/devenum_private.h	2005-05-08 14:59:14.000000000 +0900
+++ wine/dlls/devenum/devenum_private.h	2005-05-29 15:26:48.000000000 +0900
@@ -53,22 +53,22 @@ static inline void DEVENUM_UnlockModule(
  */
 typedef struct
 {
-    IClassFactoryVtbl *lpVtbl;
+    const IClassFactoryVtbl *lpVtbl;
 } ClassFactoryImpl;
 
 typedef struct
 {
-    ICreateDevEnumVtbl *lpVtbl;
+    const ICreateDevEnumVtbl *lpVtbl;
 } CreateDevEnumImpl;
 
 typedef struct
 {
-    IParseDisplayNameVtbl *lpVtbl;
+    const IParseDisplayNameVtbl *lpVtbl;
 } ParseDisplayNameImpl;
 
 typedef struct
 {
-    IEnumMonikerVtbl *lpVtbl;
+    const IEnumMonikerVtbl *lpVtbl;
     DWORD ref;
     DWORD index;
     HKEY hkey;
@@ -76,8 +76,7 @@ typedef struct
 
 typedef struct
 {
-    IMonikerVtbl *lpVtbl;
-
+    const IMonikerVtbl *lpVtbl;
     ULONG ref;
     HKEY hkey;
 } MediaCatMoniker;
diff -up cvs/hq/wine/dlls/devenum/factory.c wine/dlls/devenum/factory.c
--- cvs/hq/wine/dlls/devenum/factory.c	2004-12-08 13:15:12.000000000 +0800
+++ wine/dlls/devenum/factory.c	2005-05-29 15:24:00.000000000 +0900
@@ -126,7 +126,7 @@ static HRESULT WINAPI DEVENUM_IClassFact
 /**********************************************************************
  * IClassFactory_Vtbl
  */
-static IClassFactoryVtbl IClassFactory_Vtbl =
+static const IClassFactoryVtbl IClassFactory_Vtbl =
 {
     DEVENUM_IClassFactory_QueryInterface,
     DEVENUM_IClassFactory_AddRef,
diff -up cvs/hq/wine/dlls/devenum/mediacatenum.c wine/dlls/devenum/mediacatenum.c
--- cvs/hq/wine/dlls/devenum/mediacatenum.c	2005-05-19 15:23:12.000000000 +0900
+++ wine/dlls/devenum/mediacatenum.c	2005-05-29 15:28:01.000000000 +0900
@@ -40,7 +40,7 @@ static ULONG WINAPI DEVENUM_IPropertyBag
 
 typedef struct
 {
-    IPropertyBagVtbl *lpVtbl;
+    const IPropertyBagVtbl *lpVtbl;
     DWORD ref;
     HKEY hkey;
 } RegPropBagImpl;
@@ -262,7 +262,7 @@ static HRESULT WINAPI DEVENUM_IPropertyB
     return res;
 }
 
-static IPropertyBagVtbl IPropertyBag_Vtbl =
+static const IPropertyBagVtbl IPropertyBag_Vtbl =
 {
     DEVENUM_IPropertyBag_QueryInterface,
     DEVENUM_IPropertyBag_AddRef,
@@ -655,7 +655,7 @@ static HRESULT WINAPI DEVENUM_IMediaCatM
     return S_FALSE;
 }
 
-static IMonikerVtbl IMoniker_Vtbl =
+static const IMonikerVtbl IMoniker_Vtbl =
 {
     DEVENUM_IMediaCatMoniker_QueryInterface,
     DEVENUM_IMediaCatMoniker_AddRef,
@@ -833,7 +833,7 @@ static HRESULT WINAPI DEVENUM_IEnumMonik
 /**********************************************************************
  * IEnumMoniker_Vtbl
  */
-static IEnumMonikerVtbl IEnumMoniker_Vtbl =
+static const IEnumMonikerVtbl IEnumMoniker_Vtbl =
 {
     DEVENUM_IEnumMoniker_QueryInterface,
     DEVENUM_IEnumMoniker_AddRef,
diff -up cvs/hq/wine/dlls/devenum/parsedisplayname.c wine/dlls/devenum/parsedisplayname.c
--- cvs/hq/wine/dlls/devenum/parsedisplayname.c	2005-05-08 14:59:14.000000000 +0900
+++ wine/dlls/devenum/parsedisplayname.c	2005-05-29 15:28:11.000000000 +0900
@@ -157,7 +157,7 @@ static HRESULT WINAPI DEVENUM_IParseDisp
 /**********************************************************************
  * IParseDisplayName_Vtbl
  */
-static IParseDisplayNameVtbl IParseDisplayName_Vtbl =
+static const IParseDisplayNameVtbl IParseDisplayName_Vtbl =
 {
     DEVENUM_IParseDisplayName_QueryInterface,
     DEVENUM_IParseDisplayName_AddRef,
diff -up cvs/hq/wine/dlls/dinput/device_private.h wine/dlls/dinput/device_private.h
--- cvs/hq/wine/dlls/dinput/device_private.h	2004-09-14 12:51:38.000000000 +0900
+++ wine/dlls/dinput/device_private.h	2005-05-29 15:30:28.000000000 +0900
@@ -30,7 +30,7 @@
 typedef struct IDirectInputDevice2AImpl IDirectInputDevice2AImpl;
 struct IDirectInputDevice2AImpl
 {
-        IDirectInputDevice2AVtbl       *lpVtbl;
+        const IDirectInputDevice2AVtbl *lpVtbl;
         DWORD                           ref;
         GUID                            guid;
 };
diff -up cvs/hq/wine/dlls/dinput/dinput_main.c wine/dlls/dinput/dinput_main.c
--- cvs/hq/wine/dlls/dinput/dinput_main.c	2005-05-17 15:08:29.000000000 +0900
+++ wine/dlls/dinput/dinput_main.c	2005-05-29 15:32:13.000000000 +0900
@@ -46,10 +46,10 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(dinput);
 
-static IDirectInput7AVtbl ddi7avt;
-static IDirectInput7WVtbl ddi7wvt;
-static IDirectInput8AVtbl ddi8avt;
-static IDirectInput8WVtbl ddi8wvt;
+static const IDirectInput7AVtbl ddi7avt;
+static const IDirectInput7WVtbl ddi7wvt;
+static const IDirectInput8AVtbl ddi8avt;
+static const IDirectInput8WVtbl ddi8wvt;
 
 static const struct dinput_device *dinput_devices[] =
 {
@@ -535,7 +535,7 @@ static HRESULT WINAPI IDirectInput8WImpl
 # define XCAST(fun)	(void*)
 #endif
 
-static IDirectInput7AVtbl ddi7avt = {
+static const IDirectInput7AVtbl ddi7avt = {
 	XCAST(QueryInterface)IDirectInputAImpl_QueryInterface,
 	XCAST(AddRef)IDirectInputAImpl_AddRef,
 	XCAST(Release)IDirectInputAImpl_Release,
@@ -555,7 +555,7 @@ static IDirectInput7AVtbl ddi7avt = {
 # define XCAST(fun)	(void*)
 #endif
 
-static IDirectInput7WVtbl ddi7wvt = {
+static const IDirectInput7WVtbl ddi7wvt = {
 	XCAST(QueryInterface)IDirectInputWImpl_QueryInterface,
 	XCAST(AddRef)IDirectInputAImpl_AddRef,
 	XCAST(Release)IDirectInputAImpl_Release,
@@ -575,7 +575,7 @@ static IDirectInput7WVtbl ddi7wvt = {
 # define XCAST(fun)	(void*)
 #endif
 
-static IDirectInput8AVtbl ddi8avt = {
+static const IDirectInput8AVtbl ddi8avt = {
 	XCAST(QueryInterface)IDirectInput8AImpl_QueryInterface,
 	XCAST(AddRef)IDirectInputAImpl_AddRef,
 	XCAST(Release)IDirectInputAImpl_Release,
@@ -595,7 +595,7 @@ static IDirectInput8AVtbl ddi8avt = {
 #else
 # define XCAST(fun)	(void*)
 #endif
-static IDirectInput8WVtbl ddi8wvt = {
+static const IDirectInput8WVtbl ddi8wvt = {
 	XCAST(QueryInterface)IDirectInput8WImpl_QueryInterface,
 	XCAST(AddRef)IDirectInputAImpl_AddRef,
 	XCAST(Release)IDirectInputAImpl_Release,
@@ -616,7 +616,7 @@ static IDirectInput8WVtbl ddi8wvt = {
 typedef struct
 {
     /* IUnknown fields */
-    IClassFactoryVtbl          *lpVtbl;
+    const IClassFactoryVtbl    *lpVtbl;
     DWORD                       ref;
 } IClassFactoryImpl;
 
@@ -666,7 +666,7 @@ static HRESULT WINAPI DICF_LockServer(LP
 	return S_OK;
 }
 
-static IClassFactoryVtbl DICF_Vtbl = {
+static const IClassFactoryVtbl DICF_Vtbl = {
 	DICF_QueryInterface,
 	DICF_AddRef,
 	DICF_Release,
diff -up cvs/hq/wine/dlls/dinput/dinput_private.h wine/dlls/dinput/dinput_private.h
--- cvs/hq/wine/dlls/dinput/dinput_private.h	2005-05-17 15:08:29.000000000 +0900
+++ wine/dlls/dinput/dinput_private.h	2005-05-29 15:33:09.000000000 +0900
@@ -29,7 +29,7 @@
 typedef struct IDirectInputImpl IDirectInputImpl;
 struct IDirectInputImpl
 {
-   LPVOID lpVtbl;
+   const void *lpVtbl;
    DWORD  ref;
 
    /* Used to have an unique sequence number for all the events */
diff -up cvs/hq/wine/dlls/dinput/joystick_linux.c wine/dlls/dinput/joystick_linux.c
--- cvs/hq/wine/dlls/dinput/joystick_linux.c	2005-05-17 15:08:29.000000000 +0900
+++ wine/dlls/dinput/joystick_linux.c	2005-05-29 15:40:10.000000000 +0900
@@ -84,11 +84,11 @@ typedef struct {
 } POV;
 
 typedef struct JoystickImpl JoystickImpl;
-static IDirectInputDevice8AVtbl JoystickAvt;
-static IDirectInputDevice8WVtbl JoystickWvt;
+static const IDirectInputDevice8AVtbl JoystickAvt;
+static const IDirectInputDevice8WVtbl JoystickWvt;
 struct JoystickImpl
 {
-        LPVOID                          lpVtbl;
+        const void                     *lpVtbl;
         DWORD                           ref;
         GUID                            guid;
 	char				dev[32];
@@ -437,7 +437,7 @@ void calculate_ids(JoystickImpl* device)
     }
 }
 
-static HRESULT alloc_device(REFGUID rguid, LPVOID jvt, IDirectInputImpl *dinput, LPDIRECTINPUTDEVICEA* pdev)
+static HRESULT alloc_device(REFGUID rguid, const void *jvt, IDirectInputImpl *dinput, LPDIRECTINPUTDEVICEA* pdev)
 {
     DWORD i;
     JoystickImpl* newDevice;
@@ -1640,7 +1640,7 @@ HRESULT WINAPI JoystickWImpl_GetDeviceIn
     return DI_OK;
 }
 
-static IDirectInputDevice8AVtbl JoystickAvt =
+static const IDirectInputDevice8AVtbl JoystickAvt =
 {
 	IDirectInputDevice2AImpl_QueryInterface,
 	IDirectInputDevice2AImpl_AddRef,
@@ -1682,7 +1682,7 @@ static IDirectInputDevice8AVtbl Joystick
 # define XCAST(fun)	(void*)
 #endif
 
-static IDirectInputDevice8WVtbl SysJoystickWvt =
+static const IDirectInputDevice8WVtbl SysJoystickWvt =
 {
 	IDirectInputDevice2WImpl_QueryInterface,
 	XCAST(AddRef)IDirectInputDevice2AImpl_AddRef,
diff -up cvs/hq/wine/dlls/dinput/joystick_linuxinput.c wine/dlls/dinput/joystick_linuxinput.c
--- cvs/hq/wine/dlls/dinput/joystick_linuxinput.c	2005-05-17 15:08:29.000000000 +0900
+++ wine/dlls/dinput/joystick_linuxinput.c	2005-05-29 15:43:22.000000000 +0900
@@ -66,11 +66,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(dinput);
 #define WINE_JOYSTICK_BUTTON_BASE 8
 
 typedef struct JoystickImpl JoystickImpl;
-static IDirectInputDevice8AVtbl JoystickAvt;
-static IDirectInputDevice8WVtbl JoystickWvt;
+static const IDirectInputDevice8AVtbl JoystickAvt;
+static const IDirectInputDevice8WVtbl JoystickWvt;
 struct JoystickImpl
 {
-        LPVOID                          lpVtbl;
+        const void                     *lpVtbl;
         DWORD                           ref;
         GUID                            guid;
 
@@ -240,7 +240,7 @@ static BOOL joydev_enum_deviceW(DWORD dw
   return TRUE;
 }
 
-static JoystickImpl *alloc_device(REFGUID rguid, LPVOID jvt, IDirectInputImpl *dinput)
+static JoystickImpl *alloc_device(REFGUID rguid, const void *jvt, IDirectInputImpl *dinput)
 {
   JoystickImpl* newDevice;
   int i;
@@ -1008,7 +1008,7 @@ static HRESULT WINAPI JoystickAImpl_GetP
   return DI_OK;
 }
 
-static IDirectInputDevice8AVtbl JoystickAvt =
+static const IDirectInputDevice8AVtbl JoystickAvt =
 {
 	IDirectInputDevice2AImpl_QueryInterface,
 	IDirectInputDevice2AImpl_AddRef,
@@ -1050,7 +1050,7 @@ static IDirectInputDevice8AVtbl Joystick
 # define XCAST(fun)	(void*)
 #endif
 
-static IDirectInputDevice8WVtbl JoystickWvt =
+static const IDirectInputDevice8WVtbl JoystickWvt =
 {
 	IDirectInputDevice2WImpl_QueryInterface,
 	XCAST(AddRef)IDirectInputDevice2AImpl_AddRef,
diff -up cvs/hq/wine/dlls/dinput/keyboard.c wine/dlls/dinput/keyboard.c
--- cvs/hq/wine/dlls/dinput/keyboard.c	2005-05-17 15:08:29.000000000 +0900
+++ wine/dlls/dinput/keyboard.c	2005-05-29 15:44:23.000000000 +0900
@@ -40,13 +40,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(dinput);
 
 #define WINE_DINPUT_KEYBOARD_MAX_KEYS 256
 
-static IDirectInputDevice8AVtbl SysKeyboardAvt;
-static IDirectInputDevice8WVtbl SysKeyboardWvt;
+static const IDirectInputDevice8AVtbl SysKeyboardAvt;
+static const IDirectInputDevice8WVtbl SysKeyboardWvt;
 
 typedef struct SysKeyboardImpl SysKeyboardImpl;
 struct SysKeyboardImpl
 {
-        LPVOID                          lpVtbl;
+        const void                     *lpVtbl;
         DWORD                           ref;
         GUID                            guid;
 
@@ -238,7 +238,7 @@ static BOOL keyboarddev_enum_deviceW(DWO
   return FALSE;
 }
 
-static SysKeyboardImpl *alloc_device(REFGUID rguid, LPVOID kvt, IDirectInputImpl *dinput)
+static SysKeyboardImpl *alloc_device(REFGUID rguid, const void *kvt, IDirectInputImpl *dinput)
 {
     SysKeyboardImpl* newDevice;
     DWORD kbd_users;
@@ -747,7 +747,7 @@ static HRESULT WINAPI SysKeyboardWImpl_G
     return DI_OK;
 }
 
-static IDirectInputDevice8AVtbl SysKeyboardAvt =
+static const IDirectInputDevice8AVtbl SysKeyboardAvt =
 {
 	IDirectInputDevice2AImpl_QueryInterface,
 	IDirectInputDevice2AImpl_AddRef,
@@ -789,7 +789,7 @@ static IDirectInputDevice8AVtbl SysKeybo
 # define XCAST(fun)	(void*)
 #endif
 
-static IDirectInputDevice8WVtbl SysKeyboardWvt =
+static const IDirectInputDevice8WVtbl SysKeyboardWvt =
 {
 	IDirectInputDevice2WImpl_QueryInterface,
 	XCAST(AddRef)IDirectInputDevice2AImpl_AddRef,
diff -up cvs/hq/wine/dlls/dinput/mouse.c wine/dlls/dinput/mouse.c
--- cvs/hq/wine/dlls/dinput/mouse.c	2005-05-17 15:08:29.000000000 +0900
+++ wine/dlls/dinput/mouse.c	2005-05-29 15:42:05.000000000 +0900
@@ -95,8 +95,8 @@ static const DIDATAFORMAT Wine_InternalM
     (LPDIOBJECTDATAFORMAT) Wine_InternalMouseObjectFormat
 };
 
-static IDirectInputDevice8AVtbl SysMouseAvt;
-static IDirectInputDevice8WVtbl SysMouseWvt;
+static const IDirectInputDevice8AVtbl SysMouseAvt;
+static const IDirectInputDevice8WVtbl SysMouseWvt;
 
 typedef struct SysMouseImpl SysMouseImpl;
 
@@ -108,7 +108,7 @@ typedef enum {
 
 struct SysMouseImpl
 {
-    LPVOID                          lpVtbl;
+    const void                     *lpVtbl;
     DWORD                           ref;
     GUID                            guid;
     
@@ -239,7 +239,7 @@ static BOOL mousedev_enum_deviceW(DWORD 
     return FALSE;
 }
 
-static SysMouseImpl *alloc_device(REFGUID rguid, LPVOID mvt, IDirectInputImpl *dinput)
+static SysMouseImpl *alloc_device(REFGUID rguid, const void *mvt, IDirectInputImpl *dinput)
 {
     int offset_array[WINE_INTERNALMOUSE_NUM_OBJS] = {
 	FIELD_OFFSET(Wine_InternalMouseData, lX),
@@ -1092,7 +1092,7 @@ static HRESULT WINAPI SysMouseWImpl_GetD
 }
 
 
-static IDirectInputDevice8AVtbl SysMouseAvt =
+static const IDirectInputDevice8AVtbl SysMouseAvt =
 {
     IDirectInputDevice2AImpl_QueryInterface,
     IDirectInputDevice2AImpl_AddRef,
@@ -1134,7 +1134,7 @@ static IDirectInputDevice8AVtbl SysMouse
 # define XCAST(fun)	(void*)
 #endif
 
-static IDirectInputDevice8WVtbl SysMouseWvt =
+static const IDirectInputDevice8WVtbl SysMouseWvt =
 {
     IDirectInputDevice2WImpl_QueryInterface,
     XCAST(AddRef)IDirectInputDevice2AImpl_AddRef,
diff -up cvs/hq/wine/dlls/dmband/band.c wine/dlls/dmband/band.c
--- cvs/hq/wine/dlls/dmband/band.c	2005-05-08 14:59:14.000000000 +0900
+++ wine/dlls/dmband/band.c	2005-05-29 15:53:36.000000000 +0900
@@ -22,7 +22,7 @@
 WINE_DEFAULT_DEBUG_CHANNEL(dmband);
 WINE_DECLARE_DEBUG_CHANNEL(dmfile);
 
-const GUID IID_IDirectMusicBandPRIVATE = {0xda54db81,0x837d,0x11d1,{0x86,0xbc,0x00,0xc0,0x4f,0xbf,0x8f,0xef}};
+static const GUID IID_IDirectMusicBandPRIVATE = {0xda54db81,0x837d,0x11d1,{0x86,0xbc,0x00,0xc0,0x4f,0xbf,0x8f,0xef}};
 
 /*****************************************************************************
  * IDirectMusicBandImpl implementation
@@ -80,7 +80,7 @@ ULONG WINAPI IDirectMusicBandImpl_IUnkno
 	return ref;
 }
 
-IUnknownVtbl DirectMusicBand_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicBand_Unknown_Vtbl = {
 	IDirectMusicBandImpl_IUnknown_QueryInterface,
 	IDirectMusicBandImpl_IUnknown_AddRef,
 	IDirectMusicBandImpl_IUnknown_Release
@@ -120,7 +120,7 @@ HRESULT WINAPI IDirectMusicBandImpl_IDir
 	return S_OK;
 }
 
-IDirectMusicBandVtbl DirectMusicBand_Band_Vtbl = {
+static const IDirectMusicBandVtbl DirectMusicBand_Band_Vtbl = {
 	IDirectMusicBandImpl_IDirectMusicBand_QueryInterface,
 	IDirectMusicBandImpl_IDirectMusicBand_AddRef,
 	IDirectMusicBandImpl_IDirectMusicBand_Release,
@@ -334,7 +334,7 @@ HRESULT WINAPI IDirectMusicBandImpl_IDir
 	return S_OK;
 }
 
-IDirectMusicObjectVtbl DirectMusicBand_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicBand_Object_Vtbl = {
   IDirectMusicBandImpl_IDirectMusicObject_QueryInterface,
   IDirectMusicBandImpl_IDirectMusicObject_AddRef,
   IDirectMusicBandImpl_IDirectMusicObject_Release,
@@ -674,7 +674,7 @@ HRESULT WINAPI IDirectMusicBandImpl_IPer
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicBand_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicBand_PersistStream_Vtbl = {
   IDirectMusicBandImpl_IPersistStream_QueryInterface,
   IDirectMusicBandImpl_IPersistStream_AddRef,
   IDirectMusicBandImpl_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmband/bandtrack.c wine/dlls/dmband/bandtrack.c
--- cvs/hq/wine/dlls/dmband/bandtrack.c	2005-02-02 15:29:17.000000000 +0800
+++ wine/dlls/dmband/bandtrack.c	2005-05-29 15:48:49.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicBandTrack_IUnkn
   return ref;
 }
 
-IUnknownVtbl DirectMusicBandTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicBandTrack_Unknown_Vtbl = {
   IDirectMusicBandTrack_IUnknown_QueryInterface,
   IDirectMusicBandTrack_IUnknown_AddRef,
   IDirectMusicBandTrack_IUnknown_Release
@@ -212,7 +212,7 @@ HRESULT WINAPI IDirectMusicBandTrack_IDi
   return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicBandTrack_DirectMusicTrack_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicBandTrack_DirectMusicTrack_Vtbl = {
   IDirectMusicBandTrack_IDirectMusicTrack_QueryInterface,
   IDirectMusicBandTrack_IDirectMusicTrack_AddRef,
   IDirectMusicBandTrack_IDirectMusicTrack_Release,
@@ -575,7 +575,7 @@ HRESULT WINAPI IDirectMusicBandTrack_IPe
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicBandTrack_PerststStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicBandTrack_PerststStream_Vtbl = {
   IDirectMusicBandTrack_IPersistStream_QueryInterface,
   IDirectMusicBandTrack_IPersistStream_AddRef,
   IDirectMusicBandTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmband/dmband_main.c wine/dlls/dmband/dmband_main.c
--- cvs/hq/wine/dlls/dmband/dmband_main.c	2005-02-02 15:29:17.000000000 +0800
+++ wine/dlls/dmband/dmband_main.c	2005-05-29 15:49:22.000000000 +0900
@@ -24,7 +24,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmband);
 LONG DMBAND_refCount = 0;
 
 typedef struct {
-    IClassFactoryVtbl          *lpVtbl;
+    const IClassFactoryVtbl *lpVtbl;
 } IClassFactoryImpl;
 
 /******************************************************************
@@ -68,7 +68,7 @@ static HRESULT WINAPI BandCF_LockServer(
 	return S_OK;
 }
 
-static IClassFactoryVtbl BandCF_Vtbl = {
+static const IClassFactoryVtbl BandCF_Vtbl = {
 	BandCF_QueryInterface,
 	BandCF_AddRef,
 	BandCF_Release,
@@ -120,7 +120,7 @@ static HRESULT WINAPI BandTrackCF_LockSe
 	return S_OK;
 }
 
-static IClassFactoryVtbl BandTrackCF_Vtbl = {
+static const IClassFactoryVtbl BandTrackCF_Vtbl = {
 	BandTrackCF_QueryInterface,
 	BandTrackCF_AddRef,
 	BandTrackCF_Release,
diff -up cvs/hq/wine/dlls/dmband/dmband_private.h wine/dlls/dmband/dmband_private.h
--- cvs/hq/wine/dlls/dmband/dmband_private.h	2005-02-02 15:29:17.000000000 +0800
+++ wine/dlls/dmband/dmband_private.h	2005-05-29 16:09:31.000000000 +0900
@@ -50,18 +50,6 @@ typedef struct IDirectMusicBandImpl IDir
 typedef struct IDirectMusicBandTrack IDirectMusicBandTrack;
 	
 /*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IUnknownVtbl           DirectMusicBand_Uknown_Vtbl;
-extern IDirectMusicBandVtbl   DirectMusicBand_Band_Vtbl;
-extern IDirectMusicObjectVtbl DirectMusicBand_Object_Vtbl;
-extern IPersistStreamVtbl     DirectMusicBand_PeristStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicBandTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicBandTrack_DirectMusicTrack_Vtbl;
-extern IPersistStreamVtbl     DirectMusicBandTrack_PersistStream_Vtbl;
-
-/*****************************************************************************
  * ClassFactory
  */
 extern HRESULT WINAPI DMUSIC_CreateDirectMusicBandImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter);
@@ -100,10 +88,10 @@ typedef struct _DMUS_PRIVATE_BAND {
  */
 struct IDirectMusicBandImpl {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicBandVtbl *BandVtbl;
-  IDirectMusicObjectVtbl *ObjectVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicBandVtbl *BandVtbl;
+  const IDirectMusicObjectVtbl *ObjectVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicBandImpl fields */
@@ -113,42 +101,22 @@ struct IDirectMusicBandImpl {
 };
 
 /* IUnknown: */
-extern HRESULT WINAPI IDirectMusicBandImpl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicBandImpl_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicBandImpl_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicBand: */
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicBand_QueryInterface (LPDIRECTMUSICBAND iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicBandImpl_IDirectMusicBand_AddRef (LPDIRECTMUSICBAND iface);
-extern ULONG WINAPI   IDirectMusicBandImpl_IDirectMusicBand_Release (LPDIRECTMUSICBAND iface);
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicBand_CreateSegment (LPDIRECTMUSICBAND iface, IDirectMusicSegment** ppSegment);
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicBand_Download (LPDIRECTMUSICBAND iface, IDirectMusicPerformance* pPerformance);
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicBand_Unload (LPDIRECTMUSICBAND iface, IDirectMusicPerformance* pPerformance);
 /* IDirectMusicObject: */
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicBandImpl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG WINAPI   IDirectMusicBandImpl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicBandImpl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicBandImpl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicBandImpl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicBandImpl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicBandImpl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicBandImpl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicBandImpl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicBandImpl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicBandImpl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicBandTrack implementation structure
  */
 struct IDirectMusicBandTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicBandTrack fields */
@@ -160,37 +128,11 @@ struct IDirectMusicBandTrack {
 };
 
 /* IUnknown: */
-extern HRESULT WINAPI IDirectMusicBandTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicBandTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicBandTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicBandTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicBandTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicBandTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicBandTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicBandTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicBandTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicBandTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicBandTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicBandTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicBandTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicBandTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /**********************************************************************
  * Dll lifetime tracking declaration for dmband.dll
diff -up cvs/hq/wine/dlls/dmcompos/chordmap.c wine/dlls/dmcompos/chordmap.c
--- cvs/hq/wine/dlls/dmcompos/chordmap.c	2005-05-08 14:59:14.000000000 +0900
+++ wine/dlls/dmcompos/chordmap.c	2005-05-29 16:12:05.000000000 +0900
@@ -78,7 +78,7 @@ ULONG WINAPI IDirectMusicChordMapImpl_IU
 	return ref;
 }
 
-IUnknownVtbl DirectMusicChordMap_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicChordMap_Unknown_Vtbl = {
 	IDirectMusicChordMapImpl_IUnknown_QueryInterface,
 	IDirectMusicChordMapImpl_IUnknown_AddRef,
 	IDirectMusicChordMapImpl_IUnknown_Release
@@ -106,7 +106,7 @@ HRESULT WINAPI IDirectMusicChordMapImpl_
 	return S_OK;
 }
 
-IDirectMusicChordMapVtbl DirectMusicChordMap_ChordMap_Vtbl = {
+static const IDirectMusicChordMapVtbl DirectMusicChordMap_ChordMap_Vtbl = {
 	IDirectMusicChordMapImpl_IDirectMusicChordMap_QueryInterface,
 	IDirectMusicChordMapImpl_IDirectMusicChordMap_AddRef,
 	IDirectMusicChordMapImpl_IDirectMusicChordMap_Release,
@@ -318,7 +318,7 @@ HRESULT WINAPI IDirectMusicChordMapImpl_
 	return S_OK;
 }
 
-IDirectMusicObjectVtbl DirectMusicChordMap_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicChordMap_Object_Vtbl = {
 	IDirectMusicChordMapImpl_IDirectMusicObject_QueryInterface,
 	IDirectMusicChordMapImpl_IDirectMusicObject_AddRef,
 	IDirectMusicChordMapImpl_IDirectMusicObject_Release,
@@ -507,7 +507,7 @@ HRESULT WINAPI IDirectMusicChordMapImpl_
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicChordMap_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicChordMap_PersistStream_Vtbl = {
 	IDirectMusicChordMapImpl_IPersistStream_QueryInterface,
 	IDirectMusicChordMapImpl_IPersistStream_AddRef,
 	IDirectMusicChordMapImpl_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmcompos/chordmaptrack.c wine/dlls/dmcompos/chordmaptrack.c
--- cvs/hq/wine/dlls/dmcompos/chordmaptrack.c	2005-01-13 15:58:46.000000000 +0800
+++ wine/dlls/dmcompos/chordmaptrack.c	2005-05-29 16:12:40.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicChordMapTrack_I
 	return ref;
 }
 
-IUnknownVtbl DirectMusicChordMapTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicChordMapTrack_Unknown_Vtbl = {
 	IDirectMusicChordMapTrack_IUnknown_QueryInterface,
 	IDirectMusicChordMapTrack_IUnknown_AddRef,
 	IDirectMusicChordMapTrack_IUnknown_Release
@@ -192,7 +192,7 @@ HRESULT WINAPI IDirectMusicChordMapTrack
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicChordMapTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicChordMapTrack_Track_Vtbl = {
 	IDirectMusicChordMapTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicChordMapTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicChordMapTrack_IDirectMusicTrack_Release,
@@ -251,7 +251,7 @@ HRESULT WINAPI IDirectMusicChordMapTrack
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicChordMapTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicChordMapTrack_PersistStream_Vtbl = {
 	IDirectMusicChordMapTrack_IPersistStream_QueryInterface,
 	IDirectMusicChordMapTrack_IPersistStream_AddRef,
 	IDirectMusicChordMapTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmcompos/composer.c wine/dlls/dmcompos/composer.c
--- cvs/hq/wine/dlls/dmcompos/composer.c	2005-01-13 15:58:46.000000000 +0800
+++ wine/dlls/dmcompos/composer.c	2005-05-29 16:12:52.000000000 +0900
@@ -99,7 +99,7 @@ HRESULT WINAPI IDirectMusicComposerImpl_
 	return S_OK;
 }
 
-IDirectMusicComposerVtbl DirectMusicComposer_Vtbl = {
+static const IDirectMusicComposerVtbl DirectMusicComposer_Vtbl = {
 	IDirectMusicComposerImpl_QueryInterface,
 	IDirectMusicComposerImpl_AddRef,
 	IDirectMusicComposerImpl_Release,
diff -up cvs/hq/wine/dlls/dmcompos/dmcompos_main.c wine/dlls/dmcompos/dmcompos_main.c
--- cvs/hq/wine/dlls/dmcompos/dmcompos_main.c	2005-05-19 15:23:12.000000000 +0900
+++ wine/dlls/dmcompos/dmcompos_main.c	2005-05-29 17:07:17.000000000 +0900
@@ -24,7 +24,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmcompos);
 LONG DMCOMPOS_refCount = 0;
 
 typedef struct {
-    IClassFactoryVtbl          *lpVtbl;
+    const IClassFactoryVtbl *lpVtbl;
 } IClassFactoryImpl;
 
 /******************************************************************
@@ -67,7 +67,7 @@ static HRESULT WINAPI ChordMapCF_LockSer
 	return S_OK;
 }
 
-static IClassFactoryVtbl ChordMapCF_Vtbl = {
+static const IClassFactoryVtbl ChordMapCF_Vtbl = {
 	ChordMapCF_QueryInterface,
 	ChordMapCF_AddRef,
 	ChordMapCF_Release,
@@ -117,7 +117,7 @@ static HRESULT WINAPI ComposerCF_LockSer
 	return S_OK;
 }
 
-static IClassFactoryVtbl ComposerCF_Vtbl = {
+static const IClassFactoryVtbl ComposerCF_Vtbl = {
 	ComposerCF_QueryInterface,
 	ComposerCF_AddRef,
 	ComposerCF_Release,
@@ -167,7 +167,7 @@ static HRESULT WINAPI ChordMapTrackCF_Lo
 	return S_OK;
 }
 
-static IClassFactoryVtbl ChordMapTrackCF_Vtbl = {
+static const IClassFactoryVtbl ChordMapTrackCF_Vtbl = {
 	ChordMapTrackCF_QueryInterface,
 	ChordMapTrackCF_AddRef,
 	ChordMapTrackCF_Release,
@@ -219,7 +219,7 @@ static HRESULT WINAPI TemplateCF_LockSer
 	return S_OK;
 }
 
-static IClassFactoryVtbl TemplateCF_Vtbl = {
+static const IClassFactoryVtbl TemplateCF_Vtbl = {
 	TemplateCF_QueryInterface,
 	TemplateCF_AddRef,
 	TemplateCF_Release,
@@ -269,7 +269,7 @@ static HRESULT WINAPI SignPostTrackCF_Lo
 	return S_OK;
 }
 
-static IClassFactoryVtbl SignPostTrackCF_Vtbl = {
+static const IClassFactoryVtbl SignPostTrackCF_Vtbl = {
 	SignPostTrackCF_QueryInterface,
 	SignPostTrackCF_AddRef,
 	SignPostTrackCF_Release,
diff -up cvs/hq/wine/dlls/dmcompos/dmcompos_private.h wine/dlls/dmcompos/dmcompos_private.h
--- cvs/hq/wine/dlls/dmcompos/dmcompos_private.h	2004-12-15 20:43:24.000000000 +0800
+++ wine/dlls/dmcompos/dmcompos_private.h	2005-05-29 18:08:37.000000000 +0900
@@ -51,24 +51,6 @@ typedef struct IDirectMusicChordMapTrack
 typedef struct IDirectMusicSignPostTrack IDirectMusicSignPostTrack;
 	
 /*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IUnknownVtbl             DirectMusicChordMap_Unknown_Vtbl;
-extern IDirectMusicChordMapVtbl DirectMusicChordMap_ChordMap_Vtbl;
-extern IDirectMusicObjectVtbl   DirectMusicChordMap_Object_Vtbl;
-extern IPersistStreamVtbl       DirectMusicChordMap_PersistStream_Vtbl;
-
-extern IDirectMusicComposerVtbl DirectMusicComposer_Vtbl;
-
-extern IUnknownVtbl             DirectMusicChordMapTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl   DirectMusicChordMapTrack_Track_Vtbl;
-extern IPersistStreamVtbl       DirectMusicChordMapTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl             DirectMusicSignPostTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl   DirectMusicSignPostTrack_Track_Vtbl;
-extern IPersistStreamVtbl       DirectMusicSignPostTrack_PersistStream_Vtbl;
-
-/*****************************************************************************
  * ClassFactory
  */
 extern HRESULT WINAPI DMUSIC_CreateDirectMusicChordMapImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter);
@@ -81,10 +63,10 @@ extern HRESULT WINAPI DMUSIC_CreateDirec
  */
 struct IDirectMusicChordMapImpl {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicChordMapVtbl *ChordMapVtbl;
-  IDirectMusicObjectVtbl *ObjectVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicChordMapVtbl *ChordMapVtbl;
+  const IDirectMusicObjectVtbl *ObjectVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD ref;
 
   /* IDirectMusicChordMapImpl fields */
@@ -93,63 +75,36 @@ struct IDirectMusicChordMapImpl {
 };
 
 /* IUnknown: */
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicChordMapImpl_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicChordMapImpl_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicChordMap: */
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IDirectMusicChordMap_QueryInterface (LPDIRECTMUSICCHORDMAP iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicChordMapImpl_IDirectMusicChordMap_AddRef (LPDIRECTMUSICCHORDMAP iface);
-extern ULONG WINAPI   IDirectMusicChordMapImpl_IDirectMusicChordMap_Release (LPDIRECTMUSICCHORDMAP iface);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IDirectMusicChordMap_GetScale (LPDIRECTMUSICCHORDMAP iface, DWORD* pdwScale);
 /* IDirectMusicObject: */
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicChordMapImpl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG WINAPI   IDirectMusicChordMapImpl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicChordMapImpl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicChordMapImpl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicChordMapImpl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicComposerImpl implementation structure
  */
 struct IDirectMusicComposerImpl {
   /* IUnknown fields */
-  IDirectMusicComposerVtbl *lpVtbl;
+  const IDirectMusicComposerVtbl *lpVtbl;
   DWORD ref;
 
   /* IDirectMusicComposerImpl fields */
 };
 
 /* IUnknown: */
-extern HRESULT WINAPI IDirectMusicComposerImpl_QueryInterface (LPDIRECTMUSICCOMPOSER iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicComposerImpl_AddRef (LPDIRECTMUSICCOMPOSER iface);
-extern ULONG WINAPI   IDirectMusicComposerImpl_Release (LPDIRECTMUSICCOMPOSER iface);
-/* IDirectMusicComposer: */
-extern HRESULT WINAPI IDirectMusicComposerImpl_ComposeSegmentFromTemplate (LPDIRECTMUSICCOMPOSER iface, IDirectMusicStyle* pStyle, IDirectMusicSegment* pTemplate, WORD wActivity, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppSegment);
-extern HRESULT WINAPI IDirectMusicComposerImpl_ComposeSegmentFromShape (LPDIRECTMUSICCOMPOSER iface, IDirectMusicStyle* pStyle, WORD wNumMeasures, WORD wShape, WORD wActivity, BOOL fIntro, BOOL fEnd, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppSegment);
-extern HRESULT WINAPI IDirectMusicComposerImpl_ComposeTransition (LPDIRECTMUSICCOMPOSER iface, IDirectMusicSegment* pFromSeg, IDirectMusicSegment* pToSeg, MUSIC_TIME mtTime, WORD wCommand, DWORD dwFlags, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppTransSeg);
-extern HRESULT WINAPI IDirectMusicComposerImpl_AutoTransition (LPDIRECTMUSICCOMPOSER iface, IDirectMusicPerformance* pPerformance, IDirectMusicSegment* pToSeg, WORD wCommand, DWORD dwFlags, IDirectMusicChordMap* pChordMap, IDirectMusicSegment** ppTransSeg, IDirectMusicSegmentState** ppToSegState, IDirectMusicSegmentState** ppTransSegState);
-extern HRESULT WINAPI IDirectMusicComposerImpl_ComposeTemplateFromShape (LPDIRECTMUSICCOMPOSER iface, WORD wNumMeasures, WORD wShape, BOOL fIntro, BOOL fEnd, WORD wEndLength, IDirectMusicSegment** ppTemplate);
-extern HRESULT WINAPI IDirectMusicComposerImpl_ChangeChordMap (LPDIRECTMUSICCOMPOSER iface, IDirectMusicSegment* pSegment, BOOL fTrackScale, IDirectMusicChordMap* pChordMap);
-
 
 /*****************************************************************************
  * IDirectMusicChordMapTrack implementation structure
  */
 struct IDirectMusicChordMapTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicChordMapTrack fields */
@@ -157,47 +112,20 @@ struct IDirectMusicChordMapTrack {
 };
 
 /* IUnknown: */
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicChordMapTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicChordMapTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicChordMapTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicChordMapTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicChordMapTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicChordMapTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicChordMapTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicSignPostTrack implementation structure
  */
 struct IDirectMusicSignPostTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicSignPostTrack fields */
@@ -205,37 +133,11 @@ struct IDirectMusicSignPostTrack {
 };
 
 /* IUnknown: */
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSignPostTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicSignPostTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSignPostTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicSignPostTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern 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);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicSignPostTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicSignPostTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicSignPostTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /**********************************************************************
  * Dll lifetime tracking declaration for dmcompos.dll
diff -up cvs/hq/wine/dlls/dmcompos/signposttrack.c wine/dlls/dmcompos/signposttrack.c
--- cvs/hq/wine/dlls/dmcompos/signposttrack.c	2005-01-13 15:58:46.000000000 +0800
+++ wine/dlls/dmcompos/signposttrack.c	2005-05-29 18:11:39.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicSignPostTrack_I
 	return ref;
 }
 
-IUnknownVtbl DirectMusicSignPostTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicSignPostTrack_Unknown_Vtbl = {
 	IDirectMusicSignPostTrack_IUnknown_QueryInterface,
 	IDirectMusicSignPostTrack_IUnknown_AddRef,
 	IDirectMusicSignPostTrack_IUnknown_Release
@@ -189,7 +189,7 @@ HRESULT WINAPI IDirectMusicSignPostTrack
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicSignPostTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicSignPostTrack_Track_Vtbl = {
 	IDirectMusicSignPostTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicSignPostTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicSignPostTrack_IDirectMusicTrack_Release,
@@ -248,7 +248,7 @@ HRESULT WINAPI IDirectMusicSignPostTrack
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicSignPostTrack_PersistStream_Vtbl =
+static const IPersistStreamVtbl DirectMusicSignPostTrack_PersistStream_Vtbl =
 {
 	IDirectMusicSignPostTrack_IPersistStream_QueryInterface,
 	IDirectMusicSignPostTrack_IPersistStream_AddRef,
diff -up cvs/hq/wine/dlls/dmime/audiopath.c wine/dlls/dmime/audiopath.c
--- cvs/hq/wine/dlls/dmime/audiopath.c	2005-05-08 14:59:15.000000000 +0900
+++ wine/dlls/dmime/audiopath.c	2005-05-29 17:19:13.000000000 +0900
@@ -80,7 +80,7 @@ ULONG WINAPI IDirectMusicAudioPathImpl_I
   return ref;
 }
 
-IUnknownVtbl DirectMusicAudioPath_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicAudioPath_Unknown_Vtbl = {
 	IDirectMusicAudioPathImpl_IUnknown_QueryInterface,
 	IDirectMusicAudioPathImpl_IUnknown_AddRef,
 	IDirectMusicAudioPathImpl_IUnknown_Release
@@ -218,7 +218,7 @@ HRESULT WINAPI IDirectMusicAudioPathImpl
   return S_OK;
 }
 
-IDirectMusicAudioPathVtbl DirectMusicAudioPath_AudioPath_Vtbl = {
+static const IDirectMusicAudioPathVtbl DirectMusicAudioPath_AudioPath_Vtbl = {
   IDirectMusicAudioPathImpl_IDirectMusicAudioPath_QueryInterface,
   IDirectMusicAudioPathImpl_IDirectMusicAudioPath_AddRef,
   IDirectMusicAudioPathImpl_IDirectMusicAudioPath_Release,
@@ -434,7 +434,7 @@ HRESULT WINAPI IDirectMusicAudioPathImpl
 	return S_OK;
 }
 
-IDirectMusicObjectVtbl DirectMusicAudioPath_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicAudioPath_Object_Vtbl = {
 	IDirectMusicAudioPathImpl_IDirectMusicObject_QueryInterface,
 	IDirectMusicAudioPathImpl_IDirectMusicObject_AddRef,
 	IDirectMusicAudioPathImpl_IDirectMusicObject_Release,
diff -up cvs/hq/wine/dlls/dmime/dmime_main.c wine/dlls/dmime/dmime_main.c
--- cvs/hq/wine/dlls/dmime/dmime_main.c	2005-05-19 15:23:12.000000000 +0900
+++ wine/dlls/dmime/dmime_main.c	2005-05-29 17:12:43.000000000 +0900
@@ -26,7 +26,7 @@ WINE_DECLARE_DEBUG_CHANNEL(dmfile);
 LONG DMIME_refCount = 0;
 
 typedef struct {
-    IClassFactoryVtbl          *lpVtbl;
+    const IClassFactoryVtbl *lpVtbl;
 } IClassFactoryImpl;
 
 /******************************************************************
@@ -69,7 +69,7 @@ static HRESULT WINAPI PerformanceCF_Lock
 	return S_OK;
 }
 
-static IClassFactoryVtbl PerformanceCF_Vtbl = {
+static const IClassFactoryVtbl PerformanceCF_Vtbl = {
 	PerformanceCF_QueryInterface,
 	PerformanceCF_AddRef,
 	PerformanceCF_Release,
@@ -119,7 +119,7 @@ static HRESULT WINAPI SegmentCF_LockServ
 	return S_OK;
 }
 
-static IClassFactoryVtbl SegmentCF_Vtbl = {
+static const IClassFactoryVtbl SegmentCF_Vtbl = {
 	SegmentCF_QueryInterface,
 	SegmentCF_AddRef,
 	SegmentCF_Release,
@@ -169,7 +169,7 @@ static HRESULT WINAPI SegmentStateCF_Loc
 	return S_OK;
 }
 
-static IClassFactoryVtbl SegmentStateCF_Vtbl = {
+static const IClassFactoryVtbl SegmentStateCF_Vtbl = {
 	SegmentStateCF_QueryInterface,
 	SegmentStateCF_AddRef,
 	SegmentStateCF_Release,
@@ -219,7 +219,7 @@ static HRESULT WINAPI GraphCF_LockServer
 	return S_OK;
 }
 
-static IClassFactoryVtbl GraphCF_Vtbl = {
+static const IClassFactoryVtbl GraphCF_Vtbl = {
 	GraphCF_QueryInterface,
 	GraphCF_AddRef,
 	GraphCF_Release,
@@ -269,7 +269,7 @@ static HRESULT WINAPI TempoTrackCF_LockS
 	return S_OK;
 }
 
-static IClassFactoryVtbl TempoTrackCF_Vtbl = {
+static const IClassFactoryVtbl TempoTrackCF_Vtbl = {
 	TempoTrackCF_QueryInterface,
 	TempoTrackCF_AddRef,
 	TempoTrackCF_Release,
@@ -319,7 +319,7 @@ static HRESULT WINAPI SeqTrackCF_LockSer
 	return S_OK;
 }
 
-static IClassFactoryVtbl SeqTrackCF_Vtbl = {
+static const IClassFactoryVtbl SeqTrackCF_Vtbl = {
 	SeqTrackCF_QueryInterface,
 	SeqTrackCF_AddRef,
 	SeqTrackCF_Release,
@@ -368,7 +368,7 @@ static HRESULT WINAPI SysExTrackCF_LockS
 	return S_OK;
 }
 
-static IClassFactoryVtbl SysExTrackCF_Vtbl = {
+static const IClassFactoryVtbl SysExTrackCF_Vtbl = {
 	SysExTrackCF_QueryInterface,
 	SysExTrackCF_AddRef,
 	SysExTrackCF_Release,
@@ -418,7 +418,7 @@ static HRESULT WINAPI TimeSigTrackCF_Loc
 	return S_OK;
 }
 
-static IClassFactoryVtbl TimeSigTrackCF_Vtbl = {
+static const IClassFactoryVtbl TimeSigTrackCF_Vtbl = {
 	TimeSigTrackCF_QueryInterface,
 	TimeSigTrackCF_AddRef,
 	TimeSigTrackCF_Release,
@@ -468,7 +468,7 @@ static HRESULT WINAPI ParamControlTrackC
 	return S_OK;
 }
 
-static IClassFactoryVtbl ParamControlTrackCF_Vtbl = {
+static const IClassFactoryVtbl ParamControlTrackCF_Vtbl = {
 	ParamControlTrackCF_QueryInterface,
 	ParamControlTrackCF_AddRef,
 	ParamControlTrackCF_Release,
@@ -518,7 +518,7 @@ static HRESULT WINAPI MarkerTrackCF_Lock
 	return S_OK;
 }
 
-static IClassFactoryVtbl MarkerTrackCF_Vtbl = {
+static const IClassFactoryVtbl MarkerTrackCF_Vtbl = {
 	MarkerTrackCF_QueryInterface,
 	MarkerTrackCF_AddRef,
 	MarkerTrackCF_Release,
@@ -568,7 +568,7 @@ static HRESULT WINAPI LyricsTrackCF_Lock
 	return S_OK;
 }
 
-static IClassFactoryVtbl LyricsTrackCF_Vtbl = {
+static const IClassFactoryVtbl LyricsTrackCF_Vtbl = {
 	LyricsTrackCF_QueryInterface,
 	LyricsTrackCF_AddRef,
 	LyricsTrackCF_Release,
@@ -619,7 +619,7 @@ static HRESULT WINAPI SegTriggerTrackCF_
 	return S_OK;
 }
 
-static IClassFactoryVtbl SegTriggerTrackCF_Vtbl = {
+static const IClassFactoryVtbl SegTriggerTrackCF_Vtbl = {
 	SegTriggerTrackCF_QueryInterface,
 	SegTriggerTrackCF_AddRef,
 	SegTriggerTrackCF_Release,
@@ -669,7 +669,7 @@ static HRESULT WINAPI AudioPathCF_LockSe
 	return S_OK;
 }
 
-static IClassFactoryVtbl AudioPathCF_Vtbl = {
+static const IClassFactoryVtbl AudioPathCF_Vtbl = {
 	AudioPathCF_QueryInterface,
 	AudioPathCF_AddRef,
 	AudioPathCF_Release,
@@ -719,7 +719,7 @@ static HRESULT WINAPI WaveTrackCF_LockSe
 	return S_OK;
 }
 
-static IClassFactoryVtbl WaveTrackCF_Vtbl = {
+static const IClassFactoryVtbl WaveTrackCF_Vtbl = {
 	WaveTrackCF_QueryInterface,
 	WaveTrackCF_AddRef,
 	WaveTrackCF_Release,
diff -up cvs/hq/wine/dlls/dmime/dmime_private.h wine/dlls/dmime/dmime_private.h
--- cvs/hq/wine/dlls/dmime/dmime_private.h	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/dmime_private.h	2005-05-29 18:57:18.000000000 +0900
@@ -64,68 +64,6 @@ typedef struct IDirectMusicTimeSigTrack 
 typedef struct IDirectMusicWaveTrack IDirectMusicWaveTrack;
 	
 /*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IDirectMusicPerformance8Vtbl DirectMusicPerformance8_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicSegment8_Unknown_Vtbl;
-extern IDirectMusicSegment8Vtbl      DirectMusicSegment8_Segment_Vtbl;
-extern IDirectMusicObjectVtbl        DirectMusicSegment8_Object_Vtbl;
-extern IPersistStreamVtbl            DirectMusicSegment8_PersistStream_Vtbl;
-
-extern IDirectMusicSegmentState8Vtbl DirectMusicSegmentState8_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicGraph_Unknown_Vtbl;
-extern IDirectMusicGraphVtbl         DirectMusicGraph_Gtaph_Vtbl;
-extern IDirectMusicObjectVtbl        DirectMusicGraph_Object_Vtbl;
-extern IPersistStreamVtbl            DirectMusicGraph_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicAudioPath_Unknown_Vtbl;
-extern IDirectMusicAudioPathVtbl     DirectMusicAudioPath_AudioPath_Vtbl;
-extern IDirectMusicObjectVtbl        DirectMusicAudioPath_Object_Vtbl;
-extern IPersistStreamVtbl            DirectMusicAudioPath_Persist_Stream_Vtbl;
-
-extern IDirectMusicTool8Vtbl         DirectMusicTool8_Vtbl;
-
-extern IDirectMusicPatternTrackVtbl  DirectMusicPatternTrack_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicLyricsTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicLyricsTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicLyricsTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicMarkerTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicMarkerTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicMarkerTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicParamControlTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicParamControlTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicParamControlTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicSegTriggerTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicSegTriggerTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicSegTriggerTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicSeqTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicSeqTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicSeqTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicSysExTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicSysExTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicSysExTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicTempoTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicTempoTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicTempoTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicTimeSigTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicTimeSigTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicTimeSigTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl                  DirectMusicWaveTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl        DirectMusicWaveTrack_Track_Vtbl;
-extern IPersistStreamVtbl            DirectMusicWaveTrack_PersistStream_Vtbl;
-
-/*****************************************************************************
  * ClassFactory
  */
 extern HRESULT WINAPI DMUSIC_CreateDirectMusicPerformanceImpl (LPCGUID lpcGUID, LPVOID *ppobj, LPUNKNOWN pUnkOuter);
@@ -193,7 +131,7 @@ typedef struct DMUSIC_PRIVATE_PCHANNEL_ 
  */
 struct IDirectMusicPerformance8Impl {
   /* IUnknown fields */
-  IDirectMusicPerformance8Vtbl *lpVtbl;
+  const IDirectMusicPerformance8Vtbl *lpVtbl;
   DWORD                  ref;
 
   /* IDirectMusicPerformanceImpl fields */
@@ -232,69 +170,22 @@ struct IDirectMusicPerformance8Impl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicPerformance8Impl_QueryInterface (LPDIRECTMUSICPERFORMANCE8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicPerformance8Impl_AddRef (LPDIRECTMUSICPERFORMANCE8 iface);
-extern ULONG WINAPI   IDirectMusicPerformance8Impl_Release (LPDIRECTMUSICPERFORMANCE8 iface);
 /* IDirectMusicPerformance: */
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_Init (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusic** ppDirectMusic, LPDIRECTSOUND pDirectSound, HWND hWnd);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegment (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegment* pSegment, DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState** ppSegmentState);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_Stop (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegment* pSegment, IDirectMusicSegmentState* pSegmentState, MUSIC_TIME mtTime, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetSegmentState (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegmentState** ppSegmentState, MUSIC_TIME mtTime);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_SetPrepareTime (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwMilliSeconds);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetPrepareTime (LPDIRECTMUSICPERFORMANCE8 iface, DWORD* pdwMilliSeconds);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_SetBumperLength (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwMilliSeconds);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetBumperLength (LPDIRECTMUSICPERFORMANCE8 iface, DWORD* pdwMilliSeconds);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_SendPMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_PMSG* pPMSG);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToReferenceTime (LPDIRECTMUSICPERFORMANCE8 iface, MUSIC_TIME mtTime, REFERENCE_TIME* prtTime);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_ReferenceToMusicTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME rtTime, MUSIC_TIME* pmtTime);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_IsPlaying (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicSegment* pSegment, IDirectMusicSegmentState* pSegState);
 extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME* prtNow, MUSIC_TIME* pmtNow);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_AllocPMsg (LPDIRECTMUSICPERFORMANCE8 iface, ULONG cb, DMUS_PMSG** ppPMSG);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_FreePMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_PMSG* pPMSG);
 extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetGraph (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicGraph** ppGraph);
 extern HRESULT WINAPI IDirectMusicPerformance8Impl_SetGraph (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicGraph* pGraph);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_SetNotificationHandle (LPDIRECTMUSICPERFORMANCE8 iface, HANDLE hNotification, REFERENCE_TIME rtMinimum);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetNotificationPMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_NOTIFICATION_PMSG** ppNotificationPMsg);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_AddNotificationType (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_RemoveNotificationType (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_AddPort (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicPort* pPort);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_RemovePort (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicPort* pPort);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannelBlock (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwBlockNum, IDirectMusicPort* pPort, DWORD dwGroup);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_AssignPChannel (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwPChannel, IDirectMusicPort* pPort, DWORD dwGroup, DWORD dwMChannel);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_PChannelInfo (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwPChannel, IDirectMusicPort** ppPort, DWORD* pdwGroup, DWORD* pdwMChannel);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_DownloadInstrument (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicInstrument* pInst, DWORD dwPChannel, IDirectMusicDownloadedInstrument** ppDownInst, DMUS_NOTERANGE* pNoteRanges, DWORD dwNumNoteRanges, IDirectMusicPort** ppPort, DWORD* pdwGroup, DWORD* pdwMChannel);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_Invalidate (LPDIRECTMUSICPERFORMANCE8 iface, MUSIC_TIME mtTime, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_SetParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetGlobalParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, void* pParam, DWORD dwSize);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_SetGlobalParam (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, void* pParam, DWORD dwSize);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetLatencyTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME* prtTime);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetQueueTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME* prtTime);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_AdjustTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME rtAmount);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_CloseDown (LPDIRECTMUSICPERFORMANCE8 iface);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetResolvedTime (LPDIRECTMUSICPERFORMANCE8 iface, REFERENCE_TIME rtTime, REFERENCE_TIME* prtResolved, DWORD dwTimeResolveFlags);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_MIDIToMusic (LPDIRECTMUSICPERFORMANCE8 iface, BYTE bMIDIValue, DMUS_CHORD_KEY* pChord, BYTE bPlayMode, BYTE bChordLevel, WORD* pwMusicValue);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_MusicToMIDI (LPDIRECTMUSICPERFORMANCE8 iface, WORD wMusicValue, DMUS_CHORD_KEY* pChord, BYTE bPlayMode, BYTE bChordLevel, BYTE* pbMIDIValue);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_TimeToRhythm (LPDIRECTMUSICPERFORMANCE8 iface, MUSIC_TIME mtTime, DMUS_TIMESIGNATURE* pTimeSig, WORD* pwMeasure, BYTE* pbBeat, BYTE* pbGrid, short* pnOffset);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_RhythmToTime (LPDIRECTMUSICPERFORMANCE8 iface, WORD wMeasure, BYTE bBeat, BYTE bGrid, short nOffset, DMUS_TIMESIGNATURE* pTimeSig, MUSIC_TIME* pmtTime);
 /* IDirectMusicPerformance8: */
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_InitAudio (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusic** ppDirectMusic, IDirectSound** ppDirectSound, HWND hWnd, DWORD dwDefaultPathType, DWORD dwPChannelCount, DWORD dwFlags, DMUS_AUDIOPARAMS* pParams);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_PlaySegmentEx (LPDIRECTMUSICPERFORMANCE8 iface, IUnknown* pSource, WCHAR* pwzSegmentName, IUnknown* pTransition, DWORD dwFlags, __int64 i64StartTime, IDirectMusicSegmentState** ppSegmentState, IUnknown* pFrom, IUnknown* pAudioPath);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_StopEx (LPDIRECTMUSICPERFORMANCE8 iface, IUnknown* pObjectToStop, __int64 i64StopTime, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_ClonePMsg (LPDIRECTMUSICPERFORMANCE8 iface, DMUS_PMSG* pSourcePMSG, DMUS_PMSG** ppCopyPMSG);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_CreateAudioPath (LPDIRECTMUSICPERFORMANCE8 iface, IUnknown* pSourceConfig, BOOL fActivate, IDirectMusicAudioPath** ppNewPath);
 extern HRESULT WINAPI IDirectMusicPerformance8Impl_CreateStandardAudioPath (LPDIRECTMUSICPERFORMANCE8 iface, DWORD dwType, DWORD dwPChannelCount, BOOL fActivate, IDirectMusicAudioPath** ppNewPath);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_SetDefaultAudioPath (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicAudioPath* pAudioPath);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetDefaultAudioPath (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicAudioPath** ppAudioPath);
-extern HRESULT WINAPI IDirectMusicPerformance8Impl_GetParamEx (LPDIRECTMUSICPERFORMANCE8 iface, REFGUID rguidType, DWORD dwTrackID, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
 
 /*****************************************************************************
  * IDirectMusicSegment8Impl implementation structure
  */
 struct IDirectMusicSegment8Impl {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicSegment8Vtbl *SegmentVtbl;
-  IDirectMusicObjectVtbl *ObjectVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicSegment8Vtbl *SegmentVtbl;
+  const IDirectMusicObjectVtbl *ObjectVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicSegment8Impl fields */
@@ -307,62 +198,22 @@ struct IDirectMusicSegment8Impl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicSegment8Impl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSegment8Impl_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicSegment8Impl_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicSegment(8): */
 extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_QueryInterface (LPDIRECTMUSICSEGMENT8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSegment8Impl_IDirectMusicSegment8_AddRef (LPDIRECTMUSICSEGMENT8 iface);
-extern ULONG WINAPI   IDirectMusicSegment8Impl_IDirectMusicSegment8_Release (LPDIRECTMUSICSEGMENT8 iface);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetLength (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtLength);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetLength (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtLength);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetRepeats (LPDIRECTMUSICSEGMENT8 iface, DWORD* pdwRepeats);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetRepeats (LPDIRECTMUSICSEGMENT8 iface, DWORD dwRepeats);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetDefaultResolution (LPDIRECTMUSICSEGMENT8 iface, DWORD* pdwResolution);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetDefaultResolution (LPDIRECTMUSICSEGMENT8 iface, DWORD dwResolution);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetTrack (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetTrackGroup (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack, DWORD* pdwGroupBits);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_InsertTrack (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack, DWORD dwGroupBits);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_RemoveTrack (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicTrack* pTrack);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_InitPlay (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicSegmentState** ppSegState, IDirectMusicPerformance* pPerformance, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetGraph (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicGraph** ppGraph);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetGraph (LPDIRECTMUSICSEGMENT8 iface, IDirectMusicGraph* pGraph);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_AddNotificationType (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_RemoveNotificationType (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetParam (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetParam (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidType, DWORD dwGroupBits, DWORD dwIndex, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_Clone (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicSegment** ppSegment);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetStartPoint (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetStartPoint (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtStart);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetLoopPoints (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetLoopPoints (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME* pmtStart, MUSIC_TIME* pmtEnd);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetPChannelsUsed (LPDIRECTMUSICSEGMENT8 iface, DWORD dwNumPChannels, DWORD* paPChannels);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_SetTrackConfig (LPDIRECTMUSICSEGMENT8 iface, REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn, DWORD dwFlagsOff);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_GetAudioPathConfig (LPDIRECTMUSICSEGMENT8 iface, IUnknown** ppAudioPathConfig);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_Compose (LPDIRECTMUSICSEGMENT8 iface, MUSIC_TIME mtTime, IDirectMusicSegment* pFromSegment, IDirectMusicSegment* pToSegment, IDirectMusicSegment** ppComposedSegment);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_Download (LPDIRECTMUSICSEGMENT8 iface, IUnknown *pAudioPath);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicSegment8_Unload (LPDIRECTMUSICSEGMENT8 iface, IUnknown *pAudioPath);
 /* IDirectMusicObject: */
 extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSegment8Impl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG WINAPI   IDirectMusicSegment8Impl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicSegment8Impl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicSegment8Impl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicSegment8Impl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicSegment8Impl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicSegmentState8Impl implementation structure
  */
 struct IDirectMusicSegmentState8Impl {
   /* IUnknown fields */
-  IDirectMusicSegmentState8Vtbl *lpVtbl;
+  const IDirectMusicSegmentState8Vtbl *lpVtbl;
   DWORD          ref;
 
   /* IDirectMusicSegmentState8Impl fields */
@@ -371,14 +222,7 @@ struct IDirectMusicSegmentState8Impl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicSegmentState8Impl_QueryInterface (LPDIRECTMUSICSEGMENTSTATE8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSegmentState8Impl_AddRef (LPDIRECTMUSICSEGMENTSTATE8 iface);
-extern ULONG WINAPI   IDirectMusicSegmentState8Impl_Release (LPDIRECTMUSICSEGMENTSTATE8 iface);
 /* IDirectMusicSegmentState(8): */
-extern HRESULT WINAPI IDirectMusicSegmentState8Impl_GetRepeats (LPDIRECTMUSICSEGMENTSTATE8 iface,  DWORD* pdwRepeats);
-extern HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSegment (LPDIRECTMUSICSEGMENTSTATE8 iface, IDirectMusicSegment** ppSegment);
-extern HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartTime (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart);
-extern HRESULT WINAPI IDirectMusicSegmentState8Impl_GetSeek (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtSeek);
-extern HRESULT WINAPI IDirectMusicSegmentState8Impl_GetStartPoint (LPDIRECTMUSICSEGMENTSTATE8 iface, MUSIC_TIME* pmtStart);
-extern HRESULT WINAPI IDirectMusicSegmentState8Impl_SetTrackConfig (LPDIRECTMUSICSEGMENTSTATE8 iface, REFGUID rguidTrackClassID, DWORD dwGroupBits, DWORD dwIndex, DWORD dwFlagsOn, DWORD dwFlagsOff);
 extern HRESULT WINAPI IDirectMusicSegmentState8Impl_GetObjectInPath (LPDIRECTMUSICSEGMENTSTATE8 iface, DWORD dwPChannel, DWORD dwStage, DWORD dwBuffer, REFGUID guidObject, DWORD dwIndex, REFGUID iidInterface, void** ppObject);
 
 /*****************************************************************************
@@ -386,10 +230,10 @@ extern HRESULT WINAPI IDirectMusicSegmen
  */
 struct IDirectMusicGraphImpl {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicGraphVtbl *GraphVtbl;
-  IDirectMusicObjectVtbl *ObjectVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicGraphVtbl *GraphVtbl;
+  const IDirectMusicObjectVtbl *ObjectVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicGraphImpl fields */
@@ -401,40 +245,25 @@ struct IDirectMusicGraphImpl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicGraphImpl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicGraphImpl_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicGraphImpl_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicGraph: */
 extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicGraph_QueryInterface (LPDIRECTMUSICGRAPH iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicGraphImpl_IDirectMusicGraph_AddRef (LPDIRECTMUSICGRAPH iface);
-extern ULONG WINAPI   IDirectMusicGraphImpl_IDirectMusicGraph_Release (LPDIRECTMUSICGRAPH iface);extern HRESULT WINAPI IDirectMusicGraphImpl_StampPMsg (LPDIRECTMUSICGRAPH iface, DMUS_PMSG* pPMSG);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicGraph_InsertTool (LPDIRECTMUSICGRAPH iface, IDirectMusicTool* pTool, DWORD* pdwPChannels, DWORD cPChannels, LONG lIndex);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicGraph_GetTool (LPDIRECTMUSICGRAPH iface, DWORD dwIndex, IDirectMusicTool** ppTool);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicGraph_RemoveTool (LPDIRECTMUSICGRAPH iface, IDirectMusicTool* pTool);
 /* IDirectMusicObject: */
 extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicGraphImpl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG WINAPI   IDirectMusicGraphImpl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicGraphImpl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicGraphImpl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicGraphImpl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicGraphImpl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicAudioPathImpl implementation structure
  */
 struct IDirectMusicAudioPathImpl {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicAudioPathVtbl *AudioPathVtbl;
-  IDirectMusicObjectVtbl *ObjectVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicAudioPathVtbl *AudioPathVtbl;
+  const IDirectMusicObjectVtbl *ObjectVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicAudioPathImpl fields */
@@ -451,38 +280,23 @@ struct IDirectMusicAudioPathImpl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicAudioPathImpl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicAudioPathImpl_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicAudioPathImpl_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicAudioPath: */
 extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicAudioPath_QueryInterface (LPDIRECTMUSICAUDIOPATH iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicAudioPathImpl_IDirectMusicAudioPath_AddRef (LPDIRECTMUSICAUDIOPATH iface);
-extern ULONG WINAPI   IDirectMusicAudioPathImpl_IDirectMusicAudioPath_Release (LPDIRECTMUSICAUDIOPATH iface);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicAudioPath_GetObjectInPath (LPDIRECTMUSICAUDIOPATH iface, DWORD dwPChannel, DWORD dwStage, DWORD dwBuffer, REFGUID guidObject, WORD dwIndex, REFGUID iidInterface, void** ppObject);
 extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicAudioPath_Activate (LPDIRECTMUSICAUDIOPATH iface, BOOL fActivate);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicAudioPath_SetVolume (LPDIRECTMUSICAUDIOPATH iface, long lVolume, DWORD dwDuration);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicAudioPath_ConvertPChannel (LPDIRECTMUSICAUDIOPATH iface, DWORD dwPChannelIn, DWORD* pdwPChannelOut);
 /* IDirectMusicObject: */
 extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicAudioPathImpl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG WINAPI   IDirectMusicAudioPathImpl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicAudioPathImpl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicAudioPathImpl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicAudioPathImpl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicAudioPathImpl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicTool8Impl implementation structure
  */
 struct IDirectMusicTool8Impl {
   /* IUnknown fields */
-  IDirectMusicTool8Vtbl *lpVtbl;
+  const IDirectMusicTool8Vtbl *lpVtbl;
   DWORD          ref;
 
   /* IDirectMusicTool8Impl fields */
@@ -491,22 +305,13 @@ struct IDirectMusicTool8Impl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicTool8Impl_QueryInterface (LPDIRECTMUSICTOOL8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicTool8Impl_AddRef (LPDIRECTMUSICTOOL8 iface);
-extern ULONG WINAPI   IDirectMusicTool8Impl_Release (LPDIRECTMUSICTOOL8 iface);
-/* IDirectMusicTool(8): */
-extern HRESULT WINAPI IDirectMusicTool8Impl_Init (LPDIRECTMUSICTOOL8 iface, IDirectMusicGraph* pGraph);
-extern HRESULT WINAPI IDirectMusicTool8Impl_GetMsgDeliveryType (LPDIRECTMUSICTOOL8 iface, DWORD* pdwDeliveryType);
-extern HRESULT WINAPI IDirectMusicTool8Impl_GetMediaTypeArraySize (LPDIRECTMUSICTOOL8 iface, DWORD* pdwNumElements);
-extern HRESULT WINAPI IDirectMusicTool8Impl_GetMediaTypes (LPDIRECTMUSICTOOL8 iface, DWORD** padwMediaTypes, DWORD dwNumElements);
-extern HRESULT WINAPI IDirectMusicTool8Impl_ProcessPMsg (LPDIRECTMUSICTOOL8 iface, IDirectMusicPerformance* pPerf, DMUS_PMSG* pPMSG);
-extern HRESULT WINAPI IDirectMusicTool8Impl_Flush (LPDIRECTMUSICTOOL8 iface, IDirectMusicPerformance* pPerf, DMUS_PMSG* pPMSG, REFERENCE_TIME rtTime);
-extern HRESULT WINAPI IDirectMusicTool8Impl_Clone (LPDIRECTMUSICTOOL8 iface, IDirectMusicTool** ppTool);
 
 /*****************************************************************************
  * IDirectMusicPatternTrackImpl implementation structure
  */
 struct IDirectMusicPatternTrackImpl {
   /* IUnknown fields */
-  IDirectMusicPatternTrackVtbl *lpVtbl;
+  const IDirectMusicPatternTrackVtbl *lpVtbl;
   DWORD          ref;
 
   /* IDirectMusicPatternTrackImpl fields */
@@ -515,11 +320,6 @@ struct IDirectMusicPatternTrackImpl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicPatternTrackImpl_QueryInterface (LPDIRECTMUSICPATTERNTRACK iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicPatternTrackImpl_AddRef (LPDIRECTMUSICPATTERNTRACK iface);
-extern ULONG WINAPI   IDirectMusicPatternTrackImpl_Release (LPDIRECTMUSICPATTERNTRACK iface);
-/* IDirectMusicPatternTrack: */
-extern HRESULT WINAPI IDirectMusicPatternTrackImpl_CreateSegment (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicStyle* pStyle, IDirectMusicSegment** ppSegment);
-extern HRESULT WINAPI IDirectMusicPatternTrackImpl_SetVariation (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, DWORD dwVariationFlags, DWORD dwPart);
-extern HRESULT WINAPI IDirectMusicPatternTrackImpl_SetPatternByName (LPDIRECTMUSICPATTERNTRACK iface, IDirectMusicSegmentState* pSegState, WCHAR* wszName, IDirectMusicStyle* pStyle, DWORD dwPatternType, DWORD* pdwLength);
 
 /*****************************************************************************
  * IDirectMusicLyricsTrack implementation structure
@@ -527,9 +327,9 @@ extern HRESULT WINAPI IDirectMusicPatter
 struct IDirectMusicLyricsTrack
 {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicLyricsTrack fields */
@@ -539,44 +339,21 @@ struct IDirectMusicLyricsTrack
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicLyricsTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicLyricsTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicLyricsTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicLyricsTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicLyricsTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicLyricsTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicLyricsTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicLyricsTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicLyricsTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicMarkerTrack implementation structure
  */
 struct IDirectMusicMarkerTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicMarkerTrack fields */
@@ -586,44 +363,21 @@ struct IDirectMusicMarkerTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicMarkerTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMarkerTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicMarkerTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMarkerTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicMarkerTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicMarkerTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicMarkerTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicMarkerTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicMarkerTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicParamControlTrack implementation structure
  */
 struct IDirectMusicParamControlTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicParamControlTrack fields */
@@ -633,44 +387,21 @@ struct IDirectMusicParamControlTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicParamControlTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicParamControlTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicParamControlTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicParamControlTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicParamControlTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicParamControlTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicParamControlTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicParamControlTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicParamControlTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicSegTriggerTrack implementation structure
  */
 struct IDirectMusicSegTriggerTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicSegTriggerTrack fields */
@@ -682,44 +413,21 @@ struct IDirectMusicSegTriggerTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSegTriggerTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicSegTriggerTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSegTriggerTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicSegTriggerTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicSegTriggerTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicSegTriggerTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicSegTriggerTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicSeqTrack implementation structure
  */
 struct IDirectMusicSeqTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicSeqTrack fields */
@@ -729,44 +437,21 @@ struct IDirectMusicSeqTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicSeqTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSeqTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicSeqTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSeqTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicSeqTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicSeqTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicSeqTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicSeqTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicSeqTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicSysExTrack implementation structure
  */
 struct IDirectMusicSysExTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicSysExTrack fields */
@@ -776,44 +461,21 @@ struct IDirectMusicSysExTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicSysExTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSysExTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicSysExTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicSysExTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicSysExTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicSysExTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicSysExTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicSysExTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicSysExTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicTempoTrack implementation structure
  */
 struct IDirectMusicTempoTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicTempoTrack fields */
@@ -825,44 +487,22 @@ struct IDirectMusicTempoTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicTempoTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicTempoTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicTempoTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicTempoTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicTempoTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
 extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicTempoTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicTempoTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicTempoTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicTempoTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicTimeSigTrack implementation structure
  */
 struct IDirectMusicTimeSigTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicTimeSigTrack fields */
@@ -872,44 +512,21 @@ struct IDirectMusicTimeSigTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicTimeSigTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicTimeSigTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicTimeSigTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicTimeSigTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicTimeSigTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicTimeSigTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicTimeSigTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicTimeSigTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicTimeSigTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicWaveTrack implementation structure
  */
 struct IDirectMusicWaveTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicWaveTrack fields */
@@ -919,35 +536,12 @@ struct IDirectMusicWaveTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicWaveTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicWaveTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicWaveTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
 extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicWaveTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicWaveTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicWaveTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicWaveTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicWaveTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicWaveTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /**********************************************************************
  * Dll lifetime tracking declaration for dmime.dll
diff -up cvs/hq/wine/dlls/dmime/graph.c wine/dlls/dmime/graph.c
--- cvs/hq/wine/dlls/dmime/graph.c	2005-05-08 14:59:15.000000000 +0900
+++ wine/dlls/dmime/graph.c	2005-05-29 17:16:16.000000000 +0900
@@ -77,7 +77,7 @@ ULONG WINAPI IDirectMusicGraphImpl_IUnkn
 	return ref;
 }
 
-IUnknownVtbl DirectMusicGraph_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicGraph_Unknown_Vtbl = {
 	IDirectMusicGraphImpl_IUnknown_QueryInterface,
 	IDirectMusicGraphImpl_IUnknown_AddRef,
 	IDirectMusicGraphImpl_IUnknown_Release
@@ -183,7 +183,7 @@ HRESULT WINAPI IDirectMusicGraphImpl_IDi
   return S_OK;
 }
 
-IDirectMusicGraphVtbl DirectMusicGraph_Graph_Vtbl = {
+static const IDirectMusicGraphVtbl DirectMusicGraph_Graph_Vtbl = {
   IDirectMusicGraphImpl_IDirectMusicGraph_QueryInterface,
   IDirectMusicGraphImpl_IDirectMusicGraph_AddRef,
   IDirectMusicGraphImpl_IDirectMusicGraph_Release,
@@ -400,7 +400,7 @@ HRESULT WINAPI IDirectMusicGraphImpl_IDi
 	return S_OK;
 }
 
-IDirectMusicObjectVtbl DirectMusicGraph_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicGraph_Object_Vtbl = {
 	IDirectMusicGraphImpl_IDirectMusicObject_QueryInterface,
 	IDirectMusicGraphImpl_IDirectMusicObject_AddRef,
 	IDirectMusicGraphImpl_IDirectMusicObject_Release,
@@ -587,7 +587,7 @@ HRESULT WINAPI IDirectMusicGraphImpl_IPe
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicGraph_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicGraph_PersistStream_Vtbl = {
 	IDirectMusicGraphImpl_IPersistStream_QueryInterface,
 	IDirectMusicGraphImpl_IPersistStream_AddRef,
 	IDirectMusicGraphImpl_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/lyricstrack.c wine/dlls/dmime/lyricstrack.c
--- cvs/hq/wine/dlls/dmime/lyricstrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/lyricstrack.c	2005-05-29 17:20:10.000000000 +0900
@@ -74,7 +74,7 @@ ULONG WINAPI IDirectMusicLyricsTrack_IUn
 	return ref;
 }
 
-IUnknownVtbl DirectMusicLyricsTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicLyricsTrack_Unknown_Vtbl = {
 	IDirectMusicLyricsTrack_IUnknown_QueryInterface,
 	IDirectMusicLyricsTrack_IUnknown_AddRef,
 	IDirectMusicLyricsTrack_IUnknown_Release
@@ -193,7 +193,7 @@ HRESULT WINAPI IDirectMusicLyricsTrack_I
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicLyricsTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicLyricsTrack_Track_Vtbl = {
 	IDirectMusicLyricsTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicLyricsTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicLyricsTrack_IDirectMusicTrack_Release,
@@ -251,7 +251,7 @@ HRESULT WINAPI IDirectMusicLyricsTrack_I
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicLyricsTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicLyricsTrack_PersistStream_Vtbl = {
 	IDirectMusicLyricsTrack_IPersistStream_QueryInterface,
 	IDirectMusicLyricsTrack_IPersistStream_AddRef,
 	IDirectMusicLyricsTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/markertrack.c wine/dlls/dmime/markertrack.c
--- cvs/hq/wine/dlls/dmime/markertrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/markertrack.c	2005-05-29 17:20:45.000000000 +0900
@@ -74,7 +74,7 @@ ULONG WINAPI IDirectMusicMarkerTrack_IUn
 	return ref;
 }
 
-IUnknownVtbl DirectMusicMarkerTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicMarkerTrack_Unknown_Vtbl = {
 	IDirectMusicMarkerTrack_IUnknown_QueryInterface,
 	IDirectMusicMarkerTrack_IUnknown_AddRef,
 	IDirectMusicMarkerTrack_IUnknown_Release
@@ -193,7 +193,7 @@ HRESULT WINAPI IDirectMusicMarkerTrack_I
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicMarkerTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicMarkerTrack_Track_Vtbl = {
 	IDirectMusicMarkerTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicMarkerTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicMarkerTrack_IDirectMusicTrack_Release,
@@ -251,7 +251,7 @@ HRESULT WINAPI IDirectMusicMarkerTrack_I
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicMarkerTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicMarkerTrack_PersistStream_Vtbl = {
 	IDirectMusicMarkerTrack_IPersistStream_QueryInterface,
 	IDirectMusicMarkerTrack_IPersistStream_AddRef,
 	IDirectMusicMarkerTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/paramcontroltrack.c wine/dlls/dmime/paramcontroltrack.c
--- cvs/hq/wine/dlls/dmime/paramcontroltrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/paramcontroltrack.c	2005-05-29 17:21:22.000000000 +0900
@@ -74,7 +74,7 @@ ULONG WINAPI IDirectMusicParamControlTra
 	return ref;
 }
 
-IUnknownVtbl DirectMusicParamControlTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicParamControlTrack_Unknown_Vtbl = {
 	IDirectMusicParamControlTrack_IUnknown_QueryInterface,
 	IDirectMusicParamControlTrack_IUnknown_AddRef,
 	IDirectMusicParamControlTrack_IUnknown_Release
@@ -193,7 +193,7 @@ HRESULT WINAPI IDirectMusicParamControlT
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicParamControlTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicParamControlTrack_Track_Vtbl = {
 	IDirectMusicParamControlTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicParamControlTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicParamControlTrack_IDirectMusicTrack_Release,
@@ -251,7 +251,7 @@ HRESULT WINAPI IDirectMusicParamControlT
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicParamControlTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicParamControlTrack_PersistStream_Vtbl = {
 	IDirectMusicParamControlTrack_IPersistStream_QueryInterface,
 	IDirectMusicParamControlTrack_IPersistStream_AddRef,
 	IDirectMusicParamControlTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/patterntrack.c wine/dlls/dmime/patterntrack.c
--- cvs/hq/wine/dlls/dmime/patterntrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/patterntrack.c	2005-05-29 17:16:35.000000000 +0900
@@ -81,7 +81,7 @@ HRESULT WINAPI IDirectMusicPatternTrackI
 	return S_OK;
 }
 
-IDirectMusicPatternTrackVtbl DirectMusicPatternTrack_Vtbl = {
+static const IDirectMusicPatternTrackVtbl DirectMusicPatternTrack_Vtbl = {
 	IDirectMusicPatternTrackImpl_QueryInterface,
 	IDirectMusicPatternTrackImpl_AddRef,
 	IDirectMusicPatternTrackImpl_Release,
diff -up cvs/hq/wine/dlls/dmime/performance.c wine/dlls/dmime/performance.c
--- cvs/hq/wine/dlls/dmime/performance.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/performance.c	2005-05-29 17:21:44.000000000 +0900
@@ -927,7 +927,7 @@ HRESULT WINAPI IDirectMusicPerformance8I
 	return S_OK;
 }
 
-IDirectMusicPerformance8Vtbl DirectMusicPerformance8_Vtbl = {
+static const IDirectMusicPerformance8Vtbl DirectMusicPerformance8_Vtbl = {
 	IDirectMusicPerformance8Impl_QueryInterface,
 	IDirectMusicPerformance8Impl_AddRef,
 	IDirectMusicPerformance8Impl_Release,
diff -up cvs/hq/wine/dlls/dmime/segment.c wine/dlls/dmime/segment.c
--- cvs/hq/wine/dlls/dmime/segment.c	2005-05-08 14:59:15.000000000 +0900
+++ wine/dlls/dmime/segment.c	2005-05-29 17:17:58.000000000 +0900
@@ -80,7 +80,7 @@ ULONG WINAPI IDirectMusicSegment8Impl_IU
 	return ref;
 }
 
-IUnknownVtbl DirectMusicSegment8_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicSegment8_Unknown_Vtbl = {
   IDirectMusicSegment8Impl_IUnknown_QueryInterface,
   IDirectMusicSegment8Impl_IUnknown_AddRef,
   IDirectMusicSegment8Impl_IUnknown_Release
@@ -480,7 +480,7 @@ HRESULT WINAPI IDirectMusicSegment8Impl_
 	return S_OK;
 }
 
-IDirectMusicSegment8Vtbl DirectMusicSegment8_Segment_Vtbl = {
+static const IDirectMusicSegment8Vtbl DirectMusicSegment8_Segment_Vtbl = {
 	IDirectMusicSegment8Impl_IDirectMusicSegment8_QueryInterface,
 	IDirectMusicSegment8Impl_IDirectMusicSegment8_AddRef,
 	IDirectMusicSegment8Impl_IDirectMusicSegment8_Release,
@@ -743,7 +743,7 @@ HRESULT WINAPI IDirectMusicSegment8Impl_
 	return S_OK;
 }
 
-IDirectMusicObjectVtbl DirectMusicSegment8_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicSegment8_Object_Vtbl = {
   IDirectMusicSegment8Impl_IDirectMusicObject_QueryInterface,
   IDirectMusicSegment8Impl_IDirectMusicObject_AddRef,
   IDirectMusicSegment8Impl_IDirectMusicObject_Release,
@@ -1275,7 +1275,7 @@ HRESULT WINAPI IDirectMusicSegment8Impl_
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicSegment8_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicSegment8_PersistStream_Vtbl = {
   IDirectMusicSegment8Impl_IPersistStream_QueryInterface,
   IDirectMusicSegment8Impl_IPersistStream_AddRef,
   IDirectMusicSegment8Impl_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/segmentstate.c wine/dlls/dmime/segmentstate.c
--- cvs/hq/wine/dlls/dmime/segmentstate.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/segmentstate.c	2005-05-29 17:22:19.000000000 +0900
@@ -106,7 +106,7 @@ HRESULT WINAPI IDirectMusicSegmentState8
 	return S_OK;
 }
 
-IDirectMusicSegmentState8Vtbl DirectMusicSegmentState8_Vtbl = {
+static const IDirectMusicSegmentState8Vtbl DirectMusicSegmentState8_Vtbl = {
 	IDirectMusicSegmentState8Impl_QueryInterface,
 	IDirectMusicSegmentState8Impl_AddRef,
 	IDirectMusicSegmentState8Impl_Release,
diff -up cvs/hq/wine/dlls/dmime/segtriggertrack.c wine/dlls/dmime/segtriggertrack.c
--- cvs/hq/wine/dlls/dmime/segtriggertrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/segtriggertrack.c	2005-05-29 17:22:50.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicSegTriggerTrack
 	return ref;
 }
 
-IUnknownVtbl DirectMusicSegTriggerTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicSegTriggerTrack_Unknown_Vtbl = {
 	IDirectMusicSegTriggerTrack_IUnknown_QueryInterface,
 	IDirectMusicSegTriggerTrack_IUnknown_AddRef,
 	IDirectMusicSegTriggerTrack_IUnknown_Release
@@ -194,7 +194,7 @@ HRESULT WINAPI IDirectMusicSegTriggerTra
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicSegTriggerTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicSegTriggerTrack_Track_Vtbl = {
 	IDirectMusicSegTriggerTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicSegTriggerTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicSegTriggerTrack_IDirectMusicTrack_Release,
@@ -498,7 +498,7 @@ HRESULT WINAPI IDirectMusicSegTriggerTra
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicSegTriggerTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicSegTriggerTrack_PersistStream_Vtbl = {
   IDirectMusicSegTriggerTrack_IPersistStream_QueryInterface,
   IDirectMusicSegTriggerTrack_IPersistStream_AddRef,
   IDirectMusicSegTriggerTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/seqtrack.c wine/dlls/dmime/seqtrack.c
--- cvs/hq/wine/dlls/dmime/seqtrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/seqtrack.c	2005-05-29 17:23:12.000000000 +0900
@@ -74,7 +74,7 @@ ULONG WINAPI IDirectMusicSeqTrack_IUnkno
 	return ref;
 }
 
-IUnknownVtbl DirectMusicSeqTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicSeqTrack_Unknown_Vtbl = {
 	IDirectMusicSeqTrack_IUnknown_QueryInterface,
 	IDirectMusicSeqTrack_IUnknown_AddRef,
 	IDirectMusicSeqTrack_IUnknown_Release
@@ -193,7 +193,7 @@ HRESULT WINAPI IDirectMusicSeqTrack_IDir
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicSeqTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicSeqTrack_Track_Vtbl = {
 	IDirectMusicSeqTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicSeqTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicSeqTrack_IDirectMusicTrack_Release,
@@ -251,7 +251,7 @@ HRESULT WINAPI IDirectMusicSeqTrack_IPer
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicSeqTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicSeqTrack_PersistStream_Vtbl = {
 	IDirectMusicSeqTrack_IPersistStream_QueryInterface,
 	IDirectMusicSeqTrack_IPersistStream_AddRef,
 	IDirectMusicSeqTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/sysextrack.c wine/dlls/dmime/sysextrack.c
--- cvs/hq/wine/dlls/dmime/sysextrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/sysextrack.c	2005-05-29 17:23:32.000000000 +0900
@@ -74,7 +74,7 @@ ULONG WINAPI IDirectMusicSysExTrack_IUnk
 	return ref;
 }
 
-IUnknownVtbl DirectMusicSysExTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicSysExTrack_Unknown_Vtbl = {
 	IDirectMusicSysExTrack_IUnknown_QueryInterface,
 	IDirectMusicSysExTrack_IUnknown_AddRef,
 	IDirectMusicSysExTrack_IUnknown_Release
@@ -193,7 +193,7 @@ HRESULT WINAPI IDirectMusicSysExTrack_ID
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicSysExTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicSysExTrack_Track_Vtbl = {
 	IDirectMusicSysExTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicSysExTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicSysExTrack_IDirectMusicTrack_Release,
@@ -251,7 +251,7 @@ HRESULT WINAPI IDirectMusicSysExTrack_IP
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicSysExTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicSysExTrack_PersistStream_Vtbl = {
 	IDirectMusicSysExTrack_IPersistStream_QueryInterface,
 	IDirectMusicSysExTrack_IPersistStream_AddRef,
 	IDirectMusicSysExTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/tempotrack.c wine/dlls/dmime/tempotrack.c
--- cvs/hq/wine/dlls/dmime/tempotrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/tempotrack.c	2005-05-29 17:24:00.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicTempoTrack_IUnk
   return ref;
 }
 
-IUnknownVtbl DirectMusicTempoTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicTempoTrack_Unknown_Vtbl = {
   IDirectMusicTempoTrack_IUnknown_QueryInterface,
   IDirectMusicTempoTrack_IUnknown_AddRef,
   IDirectMusicTempoTrack_IUnknown_Release
@@ -267,7 +267,7 @@ HRESULT WINAPI IDirectMusicTempoTrack_ID
   return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicTempoTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicTempoTrack_Track_Vtbl = {
   IDirectMusicTempoTrack_IDirectMusicTrack_QueryInterface,
   IDirectMusicTempoTrack_IDirectMusicTrack_AddRef,
   IDirectMusicTempoTrack_IDirectMusicTrack_Release,
@@ -385,7 +385,7 @@ HRESULT WINAPI IDirectMusicTempoTrack_IP
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicTempoTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicTempoTrack_PersistStream_Vtbl = {
   IDirectMusicTempoTrack_IPersistStream_QueryInterface,
   IDirectMusicTempoTrack_IPersistStream_AddRef,
   IDirectMusicTempoTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/timesigtrack.c wine/dlls/dmime/timesigtrack.c
--- cvs/hq/wine/dlls/dmime/timesigtrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/timesigtrack.c	2005-05-29 17:24:22.000000000 +0900
@@ -74,7 +74,7 @@ ULONG WINAPI IDirectMusicTimeSigTrack_IU
 	return ref;
 }
 
-IUnknownVtbl DirectMusicTimeSigTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicTimeSigTrack_Unknown_Vtbl = {
 	IDirectMusicTimeSigTrack_IUnknown_QueryInterface,
 	IDirectMusicTimeSigTrack_IUnknown_AddRef,
 	IDirectMusicTimeSigTrack_IUnknown_Release
@@ -198,7 +198,7 @@ HRESULT WINAPI IDirectMusicTimeSigTrack_
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicTimeSigTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicTimeSigTrack_Track_Vtbl = {
 	IDirectMusicTimeSigTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicTimeSigTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicTimeSigTrack_IDirectMusicTrack_Release,
@@ -256,7 +256,7 @@ HRESULT WINAPI IDirectMusicTimeSigTrack_
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicTimeSigTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicTimeSigTrack_PersistStream_Vtbl = {
 	IDirectMusicTimeSigTrack_IPersistStream_QueryInterface,
 	IDirectMusicTimeSigTrack_IPersistStream_AddRef,
 	IDirectMusicTimeSigTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmime/tool.c wine/dlls/dmime/tool.c
--- cvs/hq/wine/dlls/dmime/tool.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/tool.c	2005-05-29 17:18:15.000000000 +0900
@@ -105,7 +105,7 @@ HRESULT WINAPI IDirectMusicTool8Impl_Clo
 	return S_OK;
 }
 
-IDirectMusicTool8Vtbl DirectMusicTool8_Vtbl = {
+static const IDirectMusicTool8Vtbl DirectMusicTool8_Vtbl = {
 	IDirectMusicTool8Impl_QueryInterface,
 	IDirectMusicTool8Impl_AddRef,
 	IDirectMusicTool8Impl_Release,
diff -up cvs/hq/wine/dlls/dmime/wavetrack.c wine/dlls/dmime/wavetrack.c
--- cvs/hq/wine/dlls/dmime/wavetrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmime/wavetrack.c	2005-05-29 17:24:51.000000000 +0900
@@ -74,7 +74,7 @@ ULONG WINAPI IDirectMusicWaveTrack_IUnkn
 	return ref;
 }
 
-IUnknownVtbl DirectMusicWaveTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicWaveTrack_Unknown_Vtbl = {
 	IDirectMusicWaveTrack_IUnknown_QueryInterface,
 	IDirectMusicWaveTrack_IUnknown_AddRef,
 	IDirectMusicWaveTrack_IUnknown_Release
@@ -199,7 +199,7 @@ HRESULT WINAPI IDirectMusicWaveTrack_IDi
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicWaveTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicWaveTrack_Track_Vtbl = {
 	IDirectMusicWaveTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicWaveTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicWaveTrack_IDirectMusicTrack_Release,
@@ -257,7 +257,7 @@ HRESULT WINAPI IDirectMusicWaveTrack_IPe
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicWaveTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicWaveTrack_PersistStream_Vtbl = {
 	IDirectMusicWaveTrack_IPersistStream_QueryInterface,
 	IDirectMusicWaveTrack_IPersistStream_AddRef,
 	IDirectMusicWaveTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmloader/classfactory.c wine/dlls/dmloader/classfactory.c
--- cvs/hq/wine/dlls/dmloader/classfactory.c	2004-12-15 20:43:24.000000000 +0800
+++ wine/dlls/dmloader/classfactory.c	2005-05-29 18:18:06.000000000 +0900
@@ -82,7 +82,7 @@ HRESULT WINAPI IDirectMusicLoaderCF_Lock
 	return S_OK;
 }
 
-IClassFactoryVtbl DirectMusicLoaderCF_Vtbl = {
+static const IClassFactoryVtbl DirectMusicLoaderCF_Vtbl = {
 	IDirectMusicLoaderCF_QueryInterface,
 	IDirectMusicLoaderCF_AddRef,
 	IDirectMusicLoaderCF_Release,
@@ -169,7 +169,7 @@ HRESULT WINAPI IDirectMusicContainerCF_L
 	return S_OK;
 }
 
-IClassFactoryVtbl DirectMusicContainerCF_Vtbl = {
+static const IClassFactoryVtbl DirectMusicContainerCF_Vtbl = {
 	IDirectMusicContainerCF_QueryInterface,
 	IDirectMusicContainerCF_AddRef,
 	IDirectMusicContainerCF_Release,
diff -up cvs/hq/wine/dlls/dmloader/container.c wine/dlls/dmloader/container.c
--- cvs/hq/wine/dlls/dmloader/container.c	2005-05-08 14:59:15.000000000 +0900
+++ wine/dlls/dmloader/container.c	2005-05-29 18:18:46.000000000 +0900
@@ -127,7 +127,7 @@ HRESULT WINAPI IDirectMusicContainerImpl
 	return S_FALSE;
 }
 
-IDirectMusicContainerVtbl DirectMusicContainer_Container_Vtbl = {
+static const IDirectMusicContainerVtbl DirectMusicContainer_Container_Vtbl = {
 	IDirectMusicContainerImpl_IDirectMusicContainer_QueryInterface,
 	IDirectMusicContainerImpl_IDirectMusicContainer_AddRef,
 	IDirectMusicContainerImpl_IDirectMusicContainer_Release,
@@ -397,7 +397,7 @@ HRESULT WINAPI IDirectMusicContainerImpl
 	return S_OK;	
 }
 
-IDirectMusicObjectVtbl DirectMusicContainer_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicContainer_Object_Vtbl = {
 	IDirectMusicContainerImpl_IDirectMusicObject_QueryInterface,
 	IDirectMusicContainerImpl_IDirectMusicObject_AddRef,
 	IDirectMusicContainerImpl_IDirectMusicObject_Release,
@@ -868,7 +868,7 @@ HRESULT WINAPI IDirectMusicContainerImpl
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicContainer_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicContainer_PersistStream_Vtbl = {
 	IDirectMusicContainerImpl_IPersistStream_QueryInterface,
 	IDirectMusicContainerImpl_IPersistStream_AddRef,
 	IDirectMusicContainerImpl_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmloader/dmloader_private.h wine/dlls/dmloader/dmloader_private.h
--- cvs/hq/wine/dlls/dmloader/dmloader_private.h	2004-08-23 13:33:08.000000000 +0900
+++ wine/dlls/dmloader/dmloader_private.h	2005-05-29 18:29:45.000000000 +0900
@@ -60,28 +60,6 @@ typedef struct IDirectMusicContainerImpl
 typedef struct IDirectMusicLoaderFileStream     IDirectMusicLoaderFileStream;
 typedef struct IDirectMusicLoaderResourceStream IDirectMusicLoaderResourceStream;
 typedef struct IDirectMusicLoaderGenericStream  IDirectMusicLoaderGenericStream;
-	
-
-/*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IClassFactoryVtbl         DirectMusicLoaderCF_Vtbl;
-extern IClassFactoryVtbl         DirectMusicContainerCF_Vtbl;
-
-extern IDirectMusicLoader8Vtbl   DirectMusicLoader_Loader_Vtbl;
-
-extern IDirectMusicContainerVtbl DirectMusicContainer_Container_Vtbl;
-extern IDirectMusicObjectVtbl    DirectMusicContainer_Object_Vtbl;
-extern IPersistStreamVtbl        DirectMusicContainer_PersistStream_Vtbl;
-
-extern IStreamVtbl               DirectMusicLoaderFileStream_Stream_Vtbl;
-extern IDirectMusicGetLoaderVtbl DirectMusicLoaderFileStream_GetLoader_Vtbl;
-
-extern IStreamVtbl               DirectMusicLoaderResourceStream_Stream_Vtbl;
-extern IDirectMusicGetLoaderVtbl DirectMusicLoaderResourceStream_GetLoader_Vtbl;
-
-extern IStreamVtbl               DirectMusicLoaderGenericStream_Stream_Vtbl;
-extern IDirectMusicGetLoaderVtbl DirectMusicLoaderGenericStream_GetLoader_Vtbl;
 
 /*****************************************************************************
  * Creation helpers
@@ -108,34 +86,26 @@ extern HRESULT WINAPI DMUSIC_DestroyDire
  */
 struct IDirectMusicLoaderCF {
 	/* IUnknown fields */
-	IClassFactoryVtbl *lpVtbl;
+	const IClassFactoryVtbl *lpVtbl;
 	DWORD dwRef;
 };
 
 /* IUnknown / IClassFactory: */
 extern HRESULT WINAPI IDirectMusicLoaderCF_QueryInterface (LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderCF_AddRef (LPCLASSFACTORY iface);
-extern ULONG   WINAPI IDirectMusicLoaderCF_Release (LPCLASSFACTORY iface);
-extern HRESULT WINAPI IDirectMusicLoaderCF_CreateInstance (LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj);
-extern HRESULT WINAPI IDirectMusicLoaderCF_LockServer (LPCLASSFACTORY iface,BOOL dolock);
-
 
 /*****************************************************************************
  * IDirectMusicContainerCF implementation structure
  */
 struct IDirectMusicContainerCF {
 	/* IUnknown fields */
-	IClassFactoryVtbl *lpVtbl;
+	const IClassFactoryVtbl *lpVtbl;
 	DWORD dwRef;
 };
 
 /* IUnknown / IClassFactory: */
 extern HRESULT WINAPI IDirectMusicContainerCF_QueryInterface (LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj);
 extern ULONG   WINAPI IDirectMusicContainerCF_AddRef (LPCLASSFACTORY iface);
-extern ULONG   WINAPI IDirectMusicContainerCF_Release (LPCLASSFACTORY iface);
-extern HRESULT WINAPI IDirectMusicContainerCF_CreateInstance (LPCLASSFACTORY iface, LPUNKNOWN pOuter, REFIID riid, LPVOID *ppobj);
-extern HRESULT WINAPI IDirectMusicContainerCF_LockServer (LPCLASSFACTORY iface,BOOL dolock);
-
 
 /* cache/alias entry */
 typedef struct _WINE_LOADER_ENTRY {
@@ -158,7 +128,7 @@ typedef struct _WINE_LOADER_OPTION {
  */
 struct IDirectMusicLoaderImpl {
 	/* VTABLEs */
-	IDirectMusicLoader8Vtbl *LoaderVtbl;
+	const IDirectMusicLoader8Vtbl *LoaderVtbl;
 	/* reference counter */
 	DWORD dwRef;	
 	/* simple cache (linked list) */
@@ -172,19 +142,6 @@ struct IDirectMusicLoaderImpl {
 /* IUnknown / IDirectMusicLoader(8): */
 extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_QueryInterface (LPDIRECTMUSICLOADER8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_AddRef (LPDIRECTMUSICLOADER8 iface);
-extern ULONG   WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_Release (LPDIRECTMUSICLOADER8 iface);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_GetObject (LPDIRECTMUSICLOADER8 iface, LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID*ppv);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_SetObject (LPDIRECTMUSICLOADER8 iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_SetSearchDirectory (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, WCHAR* pwzPath, BOOL fClear);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_ScanDirectory (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, WCHAR* pwzFileExtension, WCHAR* pwzScanFileName);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_CacheObject (LPDIRECTMUSICLOADER8 iface, IDirectMusicObject* pObject);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_ReleaseObject (LPDIRECTMUSICLOADER8 iface, IDirectMusicObject* pObject);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_ClearCache (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_EnableCache (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, BOOL fEnable);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_EnumObject (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, DWORD dwIndex, LPDMUS_OBJECTDESC pDesc);
-extern void    WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_CollectGarbage (LPDIRECTMUSICLOADER8 iface);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_ReleaseObjectByUnknown (LPDIRECTMUSICLOADER8 iface, IUnknown* pObject);
-extern HRESULT WINAPI IDirectMusicLoaderImpl_IDirectMusicLoader_LoadObjectFromFile (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClassID, REFIID iidInterfaceID, WCHAR* pwzFilePath, void** ppObject);
 
 /* contained object entry */
 typedef struct _WINE_CONTAINER_ENTRY {
@@ -201,9 +158,9 @@ typedef struct _WINE_CONTAINER_ENTRY {
  */
 struct IDirectMusicContainerImpl {
 	/* VTABLEs */
-	IDirectMusicContainerVtbl *ContainerVtbl;
-	IDirectMusicObjectVtbl *ObjectVtbl;
-	IPersistStreamVtbl *PersistStreamVtbl;
+	const IDirectMusicContainerVtbl *ContainerVtbl;
+	const IDirectMusicObjectVtbl *ObjectVtbl;
+	const IPersistStreamVtbl *PersistStreamVtbl;
 	/* reference counter */
 	DWORD dwRef;
 	/* stream */
@@ -219,33 +176,20 @@ struct IDirectMusicContainerImpl {
 /* IUnknown / IDirectMusicContainer: */
 extern HRESULT WINAPI IDirectMusicContainerImpl_IDirectMusicContainer_QueryInterface (LPDIRECTMUSICCONTAINER iface, REFIID riid, LPVOID *ppobj);
 extern ULONG   WINAPI IDirectMusicContainerImpl_IDirectMusicContainer_AddRef (LPDIRECTMUSICCONTAINER iface);
-extern ULONG   WINAPI IDirectMusicContainerImpl_IDirectMusicContainer_Release (LPDIRECTMUSICCONTAINER iface);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IDirectMusicContainer_EnumObject (LPDIRECTMUSICCONTAINER iface, REFGUID rguidClass, DWORD dwIndex, LPDMUS_OBJECTDESC pDesc, WCHAR* pwszAlias);
 /* IDirectMusicObject: */
 extern HRESULT WINAPI IDirectMusicContainerImpl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG   WINAPI IDirectMusicContainerImpl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG   WINAPI IDirectMusicContainerImpl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
 extern HRESULT WINAPI IDirectMusicContainerImpl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG   WINAPI IDirectMusicContainerImpl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG   WINAPI IDirectMusicContainerImpl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicContainerImpl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicLoaderFileStream implementation structure
  */
 struct IDirectMusicLoaderFileStream {
 	/* VTABLEs */
-	IStreamVtbl *StreamVtbl;
-	IDirectMusicGetLoaderVtbl *GetLoaderVtbl;
+	const IStreamVtbl *StreamVtbl;
+	const IDirectMusicGetLoaderVtbl *GetLoaderVtbl;
 	/* reference counter */
 	DWORD dwRef;
 	/* file */
@@ -261,32 +205,17 @@ extern void    WINAPI IDirectMusicLoader
 /* IUnknown/IStream: */
 extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_QueryInterface (LPSTREAM iface, REFIID riid, void** ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderFileStream_IStream_AddRef (LPSTREAM iface);
-extern ULONG   WINAPI IDirectMusicLoaderFileStream_IStream_Release (LPSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_Read (IStream* iface, void* pv, ULONG cb, ULONG* pcbRead);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_Write (LPSTREAM iface, const void* pv, ULONG cb, ULONG* pcbWritten);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_Seek (LPSTREAM iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_SetSize (LPSTREAM iface, ULARGE_INTEGER libNewSize);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_CopyTo (LPSTREAM iface, IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_Commit (LPSTREAM iface, DWORD grfCommitFlags);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_Revert (LPSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_LockRegion (LPSTREAM iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_UnlockRegion (LPSTREAM iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_Stat (LPSTREAM iface, STATSTG* pstatstg, DWORD grfStatFlag);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IStream_Clone (LPSTREAM iface, IStream** ppstm);
 /* IDirectMusicGetLoader: */
 extern HRESULT WINAPI IDirectMusicLoaderFileStream_IDirectMusicGetLoader_QueryInterface (LPDIRECTMUSICGETLOADER iface, REFIID riid, void** ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderFileStream_IDirectMusicGetLoader_AddRef (LPDIRECTMUSICGETLOADER iface);
-extern ULONG   WINAPI IDirectMusicLoaderFileStream_IDirectMusicGetLoader_Release (LPDIRECTMUSICGETLOADER iface);
-extern HRESULT WINAPI IDirectMusicLoaderFileStream_IDirectMusicGetLoader_GetLoader (LPDIRECTMUSICGETLOADER iface, IDirectMusicLoader **ppLoader);
-
 
 /*****************************************************************************
  * IDirectMusicLoaderResourceStream implementation structure
  */
 struct IDirectMusicLoaderResourceStream {
 	/* IUnknown fields */
-	IStreamVtbl *StreamVtbl;
-	IDirectMusicGetLoaderVtbl *GetLoaderVtbl;
+	const IStreamVtbl *StreamVtbl;
+	const IDirectMusicGetLoaderVtbl *GetLoaderVtbl;
 	/* reference counter */
 	DWORD dwRef;
 	/* data */
@@ -304,32 +233,17 @@ extern void    WINAPI IDirectMusicLoader
 /* IUnknown/IStream: */
 extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_QueryInterface (LPSTREAM iface, REFIID riid, void** ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderResourceStream_IStream_AddRef (LPSTREAM iface);
-extern ULONG   WINAPI IDirectMusicLoaderResourceStream_IStream_Release (LPSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_Read (IStream* iface, void* pv, ULONG cb, ULONG* pcbRead);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_Write (LPSTREAM iface, const void* pv, ULONG cb, ULONG* pcbWritten);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_Seek (LPSTREAM iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_SetSize (LPSTREAM iface, ULARGE_INTEGER libNewSize);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_CopyTo (LPSTREAM iface, IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_Commit (LPSTREAM iface, DWORD grfCommitFlags);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_Revert (LPSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_LockRegion (LPSTREAM iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_UnlockRegion (LPSTREAM iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_Stat (LPSTREAM iface, STATSTG* pstatstg, DWORD grfStatFlag);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IStream_Clone (LPSTREAM iface, IStream** ppstm);
 /* IDirectMusicGetLoader: */
 extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IDirectMusicGetLoader_QueryInterface (LPDIRECTMUSICGETLOADER iface, REFIID riid, void** ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderResourceStream_IDirectMusicGetLoader_AddRef (LPDIRECTMUSICGETLOADER iface);
-extern ULONG   WINAPI IDirectMusicLoaderResourceStream_IDirectMusicGetLoader_Release (LPDIRECTMUSICGETLOADER iface);
-extern HRESULT WINAPI IDirectMusicLoaderResourceStream_IDirectMusicGetLoader_GetLoader (LPDIRECTMUSICGETLOADER iface, IDirectMusicLoader **ppLoader);
-
 
 /*****************************************************************************
  * IDirectMusicLoaderGenericStream implementation structure
  */
 struct IDirectMusicLoaderGenericStream {
 	/* IUnknown fields */
-	IStreamVtbl *StreamVtbl;
-	IDirectMusicGetLoaderVtbl *GetLoaderVtbl;
+	const IStreamVtbl *StreamVtbl;
+	const IDirectMusicGetLoaderVtbl *GetLoaderVtbl;
 	/* reference counter */
 	DWORD dwRef;
 	/* stream */
@@ -344,24 +258,9 @@ extern void    WINAPI IDirectMusicLoader
 /* IUnknown/IStream: */
 extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_QueryInterface (LPSTREAM iface, REFIID riid, void** ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderGenericStream_IStream_AddRef (LPSTREAM iface);
-extern ULONG   WINAPI IDirectMusicLoaderGenericStream_IStream_Release (LPSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_Read (IStream* iface, void* pv, ULONG cb, ULONG* pcbRead);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_Write (LPSTREAM iface, const void* pv, ULONG cb, ULONG* pcbWritten);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_Seek (LPSTREAM iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_SetSize (LPSTREAM iface, ULARGE_INTEGER libNewSize);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_CopyTo (LPSTREAM iface, IStream* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_Commit (LPSTREAM iface, DWORD grfCommitFlags);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_Revert (LPSTREAM iface);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_LockRegion (LPSTREAM iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_UnlockRegion (LPSTREAM iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_Stat (LPSTREAM iface, STATSTG* pstatstg, DWORD grfStatFlag);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IStream_Clone (LPSTREAM iface, IStream** ppstm);
 /* IDirectMusicGetLoader: */
 extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IDirectMusicGetLoader_QueryInterface (LPDIRECTMUSICGETLOADER iface, REFIID riid, void** ppobj);
 extern ULONG   WINAPI IDirectMusicLoaderGenericStream_IDirectMusicGetLoader_AddRef (LPDIRECTMUSICGETLOADER iface);
-extern ULONG   WINAPI IDirectMusicLoaderGenericStream_IDirectMusicGetLoader_Release (LPDIRECTMUSICGETLOADER iface);
-extern HRESULT WINAPI IDirectMusicLoaderGenericStream_IDirectMusicGetLoader_GetLoader (LPDIRECTMUSICGETLOADER iface, IDirectMusicLoader **ppLoader);
-
 
 /*****************************************************************************
  * Misc.
diff -up cvs/hq/wine/dlls/dmloader/loader.c wine/dlls/dmloader/loader.c
--- cvs/hq/wine/dlls/dmloader/loader.c	2004-12-15 20:43:24.000000000 +0800
+++ wine/dlls/dmloader/loader.c	2005-05-29 18:20:41.000000000 +0900
@@ -736,7 +736,7 @@ HRESULT WINAPI IDirectMusicLoaderImpl_ID
 	return IDirectMusicLoaderImpl_IDirectMusicLoader_GetObject (iface, &ObjDesc, iidInterfaceID, ppObject);
 }
 
-IDirectMusicLoader8Vtbl DirectMusicLoader_Loader_Vtbl = {
+static const IDirectMusicLoader8Vtbl DirectMusicLoader_Loader_Vtbl = {
 	IDirectMusicLoaderImpl_IDirectMusicLoader_QueryInterface,
 	IDirectMusicLoaderImpl_IDirectMusicLoader_AddRef,
 	IDirectMusicLoaderImpl_IDirectMusicLoader_Release,
diff -up cvs/hq/wine/dlls/dmloader/loaderstream.c wine/dlls/dmloader/loaderstream.c
--- cvs/hq/wine/dlls/dmloader/loaderstream.c	2005-05-08 14:59:15.000000000 +0900
+++ wine/dlls/dmloader/loaderstream.c	2005-05-29 18:21:50.000000000 +0900
@@ -230,7 +230,7 @@ HRESULT WINAPI IDirectMusicLoaderFileStr
     return E_NOTIMPL;
 }
 
-IStreamVtbl DirectMusicLoaderFileStream_Stream_Vtbl = {
+static const IStreamVtbl DirectMusicLoaderFileStream_Stream_Vtbl = {
 	IDirectMusicLoaderFileStream_IStream_QueryInterface,
 	IDirectMusicLoaderFileStream_IStream_AddRef,
 	IDirectMusicLoaderFileStream_IStream_Release,
@@ -273,7 +273,7 @@ HRESULT WINAPI IDirectMusicLoaderFileStr
 	return S_OK;
 }
 
-IDirectMusicGetLoaderVtbl DirectMusicLoaderFileStream_GetLoader_Vtbl = {
+static const IDirectMusicGetLoaderVtbl DirectMusicLoaderFileStream_GetLoader_Vtbl = {
 	IDirectMusicLoaderFileStream_IDirectMusicGetLoader_QueryInterface,
 	IDirectMusicLoaderFileStream_IDirectMusicGetLoader_AddRef,
 	IDirectMusicLoaderFileStream_IDirectMusicGetLoader_Release,
@@ -496,7 +496,7 @@ HRESULT WINAPI IDirectMusicLoaderResourc
     return E_NOTIMPL;
 }
 
-IStreamVtbl DirectMusicLoaderResourceStream_Stream_Vtbl = {
+static const IStreamVtbl DirectMusicLoaderResourceStream_Stream_Vtbl = {
 	IDirectMusicLoaderResourceStream_IStream_QueryInterface,
 	IDirectMusicLoaderResourceStream_IStream_AddRef,
 	IDirectMusicLoaderResourceStream_IStream_Release,
@@ -539,7 +539,7 @@ HRESULT WINAPI IDirectMusicLoaderResourc
 	return S_OK;
 }
 
-IDirectMusicGetLoaderVtbl DirectMusicLoaderResourceStream_GetLoader_Vtbl = {
+static const IDirectMusicGetLoaderVtbl DirectMusicLoaderResourceStream_GetLoader_Vtbl = {
 	IDirectMusicLoaderResourceStream_IDirectMusicGetLoader_QueryInterface,
 	IDirectMusicLoaderResourceStream_IDirectMusicGetLoader_AddRef,
 	IDirectMusicLoaderResourceStream_IDirectMusicGetLoader_Release,
@@ -754,7 +754,7 @@ HRESULT WINAPI IDirectMusicLoaderGeneric
 	return IStream_Stat (This->pStream, pstatstg, grfStatFlag);
 }
 
-IStreamVtbl DirectMusicLoaderGenericStream_Stream_Vtbl = {
+static const IStreamVtbl DirectMusicLoaderGenericStream_Stream_Vtbl = {
 	IDirectMusicLoaderGenericStream_IStream_QueryInterface,
 	IDirectMusicLoaderGenericStream_IStream_AddRef,
 	IDirectMusicLoaderGenericStream_IStream_Release,
@@ -797,7 +797,7 @@ HRESULT WINAPI IDirectMusicLoaderGeneric
 	return S_OK;
 }
 
-IDirectMusicGetLoaderVtbl DirectMusicLoaderGenericStream_GetLoader_Vtbl = {
+static const IDirectMusicGetLoaderVtbl DirectMusicLoaderGenericStream_GetLoader_Vtbl = {
 	IDirectMusicLoaderGenericStream_IDirectMusicGetLoader_QueryInterface,
 	IDirectMusicLoaderGenericStream_IDirectMusicGetLoader_AddRef,
 	IDirectMusicLoaderGenericStream_IDirectMusicGetLoader_Release,
diff -up cvs/hq/wine/dlls/dmscript/dmscript_main.c wine/dlls/dmscript/dmscript_main.c
--- cvs/hq/wine/dlls/dmscript/dmscript_main.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmscript/dmscript_main.c	2005-05-29 18:34:56.000000000 +0900
@@ -24,7 +24,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmscript);
 LONG DMSCRIPT_refCount = 0;
 
 typedef struct {
-    IClassFactoryVtbl          *lpVtbl;
+    const IClassFactoryVtbl *lpVtbl;
 } IClassFactoryImpl;
 
 /******************************************************************
@@ -69,7 +69,7 @@ static HRESULT WINAPI ScriptAutoImplSegm
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptAutoImplSegmentCF_Vtbl = {
+static const IClassFactoryVtbl ScriptAutoImplSegmentCF_Vtbl = {
 	ScriptAutoImplSegmentCF_QueryInterface,
 	ScriptAutoImplSegmentCF_AddRef,
 	ScriptAutoImplSegmentCF_Release,
@@ -118,7 +118,7 @@ static HRESULT WINAPI ScriptTrackCF_Lock
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptTrackCF_Vtbl = {
+static const IClassFactoryVtbl ScriptTrackCF_Vtbl = {
 	ScriptTrackCF_QueryInterface,
 	ScriptTrackCF_AddRef,
 	ScriptTrackCF_Release,
@@ -170,7 +170,7 @@ static HRESULT WINAPI AudioVBScriptCF_Lo
 	return S_OK;
 }
 
-static IClassFactoryVtbl AudioVBScriptCF_Vtbl = {
+static const IClassFactoryVtbl AudioVBScriptCF_Vtbl = {
 	AudioVBScriptCF_QueryInterface,
 	AudioVBScriptCF_AddRef,
 	AudioVBScriptCF_Release,
@@ -220,7 +220,7 @@ static HRESULT WINAPI ScriptCF_LockServe
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptCF_Vtbl = {
+static const IClassFactoryVtbl ScriptCF_Vtbl = {
 	ScriptCF_QueryInterface,
 	ScriptCF_AddRef,
 	ScriptCF_Release,
@@ -272,7 +272,7 @@ static HRESULT WINAPI ScriptAutoImplPerf
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptAutoImplPerformanceCF_Vtbl = {
+static const IClassFactoryVtbl ScriptAutoImplPerformanceCF_Vtbl = {
 	ScriptAutoImplPerformanceCF_QueryInterface,
 	ScriptAutoImplPerformanceCF_AddRef,
 	ScriptAutoImplPerformanceCF_Release,
@@ -324,7 +324,7 @@ static HRESULT WINAPI ScriptSourceCodeLo
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptSourceCodeLoaderCF_Vtbl = {
+static const IClassFactoryVtbl ScriptSourceCodeLoaderCF_Vtbl = {
 	ScriptSourceCodeLoaderCF_QueryInterface,
 	ScriptSourceCodeLoaderCF_AddRef,
 	ScriptSourceCodeLoaderCF_Release,
@@ -376,7 +376,7 @@ static HRESULT WINAPI ScriptAutoImplSegm
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptAutoImplSegmentStateCF_Vtbl = {
+static const IClassFactoryVtbl ScriptAutoImplSegmentStateCF_Vtbl = {
 	ScriptAutoImplSegmentStateCF_QueryInterface,
 	ScriptAutoImplSegmentStateCF_AddRef,
 	ScriptAutoImplSegmentStateCF_Release,
@@ -428,7 +428,7 @@ static HRESULT WINAPI ScriptAutoImplAudi
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptAutoImplAudioPathConfigCF_Vtbl = {
+static const IClassFactoryVtbl ScriptAutoImplAudioPathConfigCF_Vtbl = {
 	ScriptAutoImplAudioPathConfigCF_QueryInterface,
 	ScriptAutoImplAudioPathConfigCF_AddRef,
 	ScriptAutoImplAudioPathConfigCF_Release,
@@ -480,7 +480,7 @@ static HRESULT WINAPI ScriptAutoImplAudi
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptAutoImplAudioPathCF_Vtbl = {
+static const IClassFactoryVtbl ScriptAutoImplAudioPathCF_Vtbl = {
 	ScriptAutoImplAudioPathCF_QueryInterface,
 	ScriptAutoImplAudioPathCF_AddRef,
 	ScriptAutoImplAudioPathCF_Release,
@@ -532,7 +532,7 @@ static HRESULT WINAPI ScriptAutoImplSong
 	return S_OK;
 }
 
-static IClassFactoryVtbl ScriptAutoImplSongCF_Vtbl = {
+static const IClassFactoryVtbl ScriptAutoImplSongCF_Vtbl = {
 	ScriptAutoImplSongCF_QueryInterface,
 	ScriptAutoImplSongCF_AddRef,
 	ScriptAutoImplSongCF_Release,
diff -up cvs/hq/wine/dlls/dmscript/dmscript_private.h wine/dlls/dmscript/dmscript_private.h
--- cvs/hq/wine/dlls/dmscript/dmscript_private.h	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmscript/dmscript_private.h	2005-05-29 18:38:21.000000000 +0900
@@ -50,18 +50,6 @@ typedef struct IDirectMusicScriptImpl ID
 typedef struct IDirectMusicScriptTrack IDirectMusicScriptTrack;
 
 /*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IUnknownVtbl           DirectMusicScript_Unknown_Vtbl;
-extern IDirectMusicScriptVtbl DirectMusicScript_Script_Vtbl;
-extern IDirectMusicObjectVtbl DirectMusicScript_Object_Vtbl;
-extern IPersistStreamVtbl     DirectMusicScript_PersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicScriptTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicScriptTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicScriptTrack_PersistStream_Vtbl;
-
-/*****************************************************************************
  * ClassFactory
  */
 extern HRESULT WINAPI DMUSIC_CreateDirectMusicScriptImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter);
@@ -73,10 +61,10 @@ extern HRESULT WINAPI DMUSIC_CreateDirec
  */
 struct IDirectMusicScriptImpl {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicScriptVtbl *ScriptVtbl;
-  IDirectMusicObjectVtbl *ObjectVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicScriptVtbl *ScriptVtbl;
+  const IDirectMusicObjectVtbl *ObjectVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicScriptImpl fields */
@@ -91,46 +79,21 @@ struct IDirectMusicScriptImpl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicScriptImpl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicScriptImpl_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicScriptImpl_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicScript: */
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_QueryInterface (LPDIRECTMUSICSCRIPT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicScriptImpl_IDirectMusicScript_AddRef (LPDIRECTMUSICSCRIPT iface);
-extern ULONG WINAPI   IDirectMusicScriptImpl_IDirectMusicScript_Release (LPDIRECTMUSICSCRIPT iface);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_Init (LPDIRECTMUSICSCRIPT iface, IDirectMusicPerformance* pPerformance, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_CallRoutine (LPDIRECTMUSICSCRIPT iface, WCHAR* pwszRoutineName, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_SetVariableVariant (LPDIRECTMUSICSCRIPT iface, WCHAR* pwszVariableName, VARIANT varValue, BOOL fSetRef, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_GetVariableVariant (LPDIRECTMUSICSCRIPT iface, WCHAR* pwszVariableName, VARIANT* pvarValue, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_SetVariableNumber (LPDIRECTMUSICSCRIPT iface, WCHAR* pwszVariableName, LONG lValue, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_GetVariableNumber (LPDIRECTMUSICSCRIPT iface, WCHAR* pwszVariableName, LONG* plValue, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_SetVariableObject (LPDIRECTMUSICSCRIPT iface, WCHAR* pwszVariableName, IUnknown* punkValue, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_GetVariableObject (LPDIRECTMUSICSCRIPT iface, WCHAR* pwszVariableName, REFIID riid, LPVOID* ppv, DMUS_SCRIPT_ERRORINFO* pErrorInfo);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_EnumRoutine (LPDIRECTMUSICSCRIPT iface, DWORD dwIndex, WCHAR* pwszName);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicScript_EnumVariable (LPDIRECTMUSICSCRIPT iface, DWORD dwIndex, WCHAR* pwszName);
 /* IDirectMusicObject: */
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicScriptImpl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG WINAPI   IDirectMusicScriptImpl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicScriptImpl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicScriptImpl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicScriptImpl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicScriptImpl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /*****************************************************************************
  * IDirectMusicScriptTrack implementation structure
  */
 struct IDirectMusicScriptTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicScriptTrack fields */
@@ -140,35 +103,10 @@ struct IDirectMusicScriptTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicScriptTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicScriptTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicScriptTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicScriptTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicScriptTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicScriptTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicScriptTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicScriptTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicScriptTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /**********************************************************************
  * Dll lifetime tracking declaration for dmscript.dll
diff -up cvs/hq/wine/dlls/dmscript/script.c wine/dlls/dmscript/script.c
--- cvs/hq/wine/dlls/dmscript/script.c	2005-05-08 14:59:15.000000000 +0900
+++ wine/dlls/dmscript/script.c	2005-05-29 18:33:01.000000000 +0900
@@ -91,7 +91,7 @@ ULONG WINAPI IDirectMusicScriptImpl_IUnk
   return ref;
 }
 
-IUnknownVtbl DirectMusicScript_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicScript_Unknown_Vtbl = {
   IDirectMusicScriptImpl_IUnknown_QueryInterface,
   IDirectMusicScriptImpl_IUnknown_AddRef,
   IDirectMusicScriptImpl_IUnknown_Release
@@ -176,7 +176,7 @@ HRESULT WINAPI IDirectMusicScriptImpl_ID
   return S_OK;
 }
 
-IDirectMusicScriptVtbl DirectMusicScript_Script_Vtbl = {
+static const IDirectMusicScriptVtbl DirectMusicScript_Script_Vtbl = {
   IDirectMusicScriptImpl_IDirectMusicScript_QueryInterface,
   IDirectMusicScriptImpl_IDirectMusicScript_AddRef,
   IDirectMusicScriptImpl_IDirectMusicScript_Release,
@@ -398,7 +398,7 @@ HRESULT WINAPI IDirectMusicScriptImpl_ID
 	return S_OK;
 }
 
-IDirectMusicObjectVtbl DirectMusicScript_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicScript_Object_Vtbl = {
   IDirectMusicScriptImpl_IDirectMusicObject_QueryInterface,
   IDirectMusicScriptImpl_IDirectMusicObject_AddRef,
   IDirectMusicScriptImpl_IDirectMusicObject_Release,
@@ -672,7 +672,7 @@ HRESULT WINAPI IDirectMusicScriptImpl_IP
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicScript_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicScript_PersistStream_Vtbl = {
   IDirectMusicScriptImpl_IPersistStream_QueryInterface,
   IDirectMusicScriptImpl_IPersistStream_AddRef,
   IDirectMusicScriptImpl_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmscript/scripttrack.c wine/dlls/dmscript/scripttrack.c
--- cvs/hq/wine/dlls/dmscript/scripttrack.c	2005-02-03 16:58:18.000000000 +0800
+++ wine/dlls/dmscript/scripttrack.c	2005-05-29 18:33:20.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicScriptTrack_IUn
 	return ref;
 }
 
-IUnknownVtbl DirectMusicScriptTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicScriptTrack_Unknown_Vtbl = {
 	IDirectMusicScriptTrack_IUnknown_QueryInterface,
 	IDirectMusicScriptTrack_IUnknown_AddRef,
 	IDirectMusicScriptTrack_IUnknown_Release
@@ -194,7 +194,7 @@ HRESULT WINAPI IDirectMusicScriptTrack_I
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicScriptTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicScriptTrack_Track_Vtbl = {
 	IDirectMusicScriptTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicScriptTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicScriptTrack_IDirectMusicTrack_Release,
@@ -252,7 +252,7 @@ HRESULT WINAPI IDirectMusicScriptTrack_I
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicScriptTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicScriptTrack_PersistStream_Vtbl = {
 	IDirectMusicScriptTrack_IPersistStream_QueryInterface,
 	IDirectMusicScriptTrack_IPersistStream_AddRef,
 	IDirectMusicScriptTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmstyle/auditiontrack.c wine/dlls/dmstyle/auditiontrack.c
--- cvs/hq/wine/dlls/dmstyle/auditiontrack.c	2005-01-26 17:55:36.000000000 +0800
+++ wine/dlls/dmstyle/auditiontrack.c	2005-05-29 18:39:13.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicAuditionTrack_I
 	return ref;
 }
 
-IUnknownVtbl DirectMusicAuditionTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicAuditionTrack_Unknown_Vtbl = {
 	IDirectMusicAuditionTrack_IUnknown_QueryInterface,
 	IDirectMusicAuditionTrack_IUnknown_AddRef,
 	IDirectMusicAuditionTrack_IUnknown_Release
@@ -194,7 +194,7 @@ HRESULT WINAPI IDirectMusicAuditionTrack
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicAuditionTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicAuditionTrack_Track_Vtbl = {
 	IDirectMusicAuditionTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicAuditionTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicAuditionTrack_IDirectMusicTrack_Release,
@@ -252,7 +252,7 @@ HRESULT WINAPI IDirectMusicAuditionTrack
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicAuditionTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicAuditionTrack_PersistStream_Vtbl = {
 	IDirectMusicAuditionTrack_IPersistStream_QueryInterface,
 	IDirectMusicAuditionTrack_IPersistStream_AddRef,
 	IDirectMusicAuditionTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmstyle/chordtrack.c wine/dlls/dmstyle/chordtrack.c
--- cvs/hq/wine/dlls/dmstyle/chordtrack.c	2005-01-26 17:55:36.000000000 +0800
+++ wine/dlls/dmstyle/chordtrack.c	2005-05-29 18:39:33.000000000 +0900
@@ -76,7 +76,7 @@ ULONG WINAPI IDirectMusicChordTrack_IUnk
 	return ref;
 }
 
-IUnknownVtbl DirectMusicChordTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicChordTrack_Unknown_Vtbl = {
   IDirectMusicChordTrack_IUnknown_QueryInterface,
   IDirectMusicChordTrack_IUnknown_AddRef,
   IDirectMusicChordTrack_IUnknown_Release
@@ -199,7 +199,7 @@ HRESULT WINAPI IDirectMusicChordTrack_ID
   return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicChordTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicChordTrack_Track_Vtbl = {
   IDirectMusicChordTrack_IDirectMusicTrack_QueryInterface,
   IDirectMusicChordTrack_IDirectMusicTrack_AddRef,
   IDirectMusicChordTrack_IDirectMusicTrack_Release,
@@ -380,7 +380,7 @@ HRESULT WINAPI IDirectMusicChordTrack_IP
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicChordTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicChordTrack_PersistStream_Vtbl = {
   IDirectMusicChordTrack_IPersistStream_QueryInterface,
   IDirectMusicChordTrack_IPersistStream_AddRef,
   IDirectMusicChordTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmstyle/commandtrack.c wine/dlls/dmstyle/commandtrack.c
--- cvs/hq/wine/dlls/dmstyle/commandtrack.c	2005-03-27 14:36:39.000000000 +0900
+++ wine/dlls/dmstyle/commandtrack.c	2005-05-29 18:39:49.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicCommandTrack_IU
 	return ref;
 }
 
-IUnknownVtbl DirectMusicCommandTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicCommandTrack_Unknown_Vtbl = {
 	IDirectMusicCommandTrack_IUnknown_QueryInterface,
 	IDirectMusicCommandTrack_IUnknown_AddRef,
 	IDirectMusicCommandTrack_IUnknown_Release
@@ -200,7 +200,7 @@ HRESULT WINAPI IDirectMusicCommandTrack_
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicCommandTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicCommandTrack_Track_Vtbl = {
 	IDirectMusicCommandTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicCommandTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicCommandTrack_IDirectMusicTrack_Release,
@@ -314,7 +314,7 @@ HRESULT WINAPI IDirectMusicCommandTrack_
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicCommandTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicCommandTrack_PersistStream_Vtbl = {
 	IDirectMusicCommandTrack_IPersistStream_QueryInterface,
 	IDirectMusicCommandTrack_IPersistStream_AddRef,
 	IDirectMusicCommandTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmstyle/dmstyle_main.c wine/dlls/dmstyle/dmstyle_main.c
--- cvs/hq/wine/dlls/dmstyle/dmstyle_main.c	2005-05-19 15:23:12.000000000 +0900
+++ wine/dlls/dmstyle/dmstyle_main.c	2005-05-29 18:46:24.000000000 +0900
@@ -24,7 +24,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dmstyle);
 LONG DMSTYLE_refCount = 0;
 
 typedef struct {
-    IClassFactoryVtbl          *lpVtbl;
+    const IClassFactoryVtbl *lpVtbl;
 } IClassFactoryImpl;
 
 /******************************************************************
@@ -70,7 +70,7 @@ static HRESULT WINAPI SectionCF_LockServ
 	return S_OK;
 }
 
-static IClassFactoryVtbl SectionCF_Vtbl = {
+static const IClassFactoryVtbl SectionCF_Vtbl = {
 	SectionCF_QueryInterface,
 	SectionCF_AddRef,
 	SectionCF_Release,
@@ -120,7 +120,7 @@ static HRESULT WINAPI StyleCF_LockServer
 	return S_OK;
 }
 
-static IClassFactoryVtbl StyleCF_Vtbl = {
+static const IClassFactoryVtbl StyleCF_Vtbl = {
 	StyleCF_QueryInterface,
 	StyleCF_AddRef,
 	StyleCF_Release,
@@ -170,7 +170,7 @@ static HRESULT WINAPI ChordTrackCF_LockS
 	return S_OK;
 }
 
-static IClassFactoryVtbl ChordTrackCF_Vtbl = {
+static const IClassFactoryVtbl ChordTrackCF_Vtbl = {
 	ChordTrackCF_QueryInterface,
 	ChordTrackCF_AddRef,
 	ChordTrackCF_Release,
@@ -220,7 +220,7 @@ static HRESULT WINAPI CommandTrackCF_Loc
 	return S_OK;
 }
 
-static IClassFactoryVtbl CommandTrackCF_Vtbl = {
+static const IClassFactoryVtbl CommandTrackCF_Vtbl = {
 	CommandTrackCF_QueryInterface,
 	CommandTrackCF_AddRef,
 	CommandTrackCF_Release,
@@ -270,7 +270,7 @@ static HRESULT WINAPI StyleTrackCF_LockS
 	return S_OK;
 }
 
-static IClassFactoryVtbl StyleTrackCF_Vtbl = {
+static const IClassFactoryVtbl StyleTrackCF_Vtbl = {
 	StyleTrackCF_QueryInterface,
 	StyleTrackCF_AddRef,
 	StyleTrackCF_Release,
@@ -320,7 +320,7 @@ static HRESULT WINAPI MotifTrackCF_LockS
 	return S_OK;
 }
 
-static IClassFactoryVtbl MotifTrackCF_Vtbl = {
+static const IClassFactoryVtbl MotifTrackCF_Vtbl = {
 	MotifTrackCF_QueryInterface,
 	MotifTrackCF_AddRef,
 	MotifTrackCF_Release,
@@ -370,7 +370,7 @@ static HRESULT WINAPI AuditionTrackCF_Lo
 	return S_OK;
 }
 
-static IClassFactoryVtbl AuditionTrackCF_Vtbl = {
+static const IClassFactoryVtbl AuditionTrackCF_Vtbl = {
 	AuditionTrackCF_QueryInterface,
 	AuditionTrackCF_AddRef,
 	AuditionTrackCF_Release,
@@ -420,7 +420,7 @@ static HRESULT WINAPI MuteTrackCF_LockSe
 	return S_OK;
 }
 
-static IClassFactoryVtbl MuteTrackCF_Vtbl = {
+static const IClassFactoryVtbl MuteTrackCF_Vtbl = {
 	MuteTrackCF_QueryInterface,
 	MuteTrackCF_AddRef,
 	MuteTrackCF_Release,
diff -up cvs/hq/wine/dlls/dmstyle/dmstyle_private.h wine/dlls/dmstyle/dmstyle_private.h
--- cvs/hq/wine/dlls/dmstyle/dmstyle_private.h	2005-01-26 17:55:36.000000000 +0800
+++ wine/dlls/dmstyle/dmstyle_private.h	2005-05-29 18:51:01.000000000 +0900
@@ -56,42 +56,6 @@ typedef struct IDirectMusicMuteTrack IDi
 typedef struct IDirectMusicStyleTrack IDirectMusicStyleTrack;
 	
 /*****************************************************************************
- * Predeclare the interface implementation structures
- */
-extern IUnknownVtbl           DirectMusicStyle8_Unknown_Vtbl;
-extern IDirectMusicStyle8Vtbl DirectMusicStyle8_Style_Vtbl;
-extern IDirectMusicObjectVtbl DirectMusicStyle8_Object_Vtbl;
-extern IPersistStreamVtbl     DirectMusicStyle8_IPersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicAuditionTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicAuditionTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicAuditionTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicChordTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicChordTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicChordTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicCommandTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicCommandTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicCommandTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicMelodyFormulationTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicMelodyFormulationTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicMelodyFormulationTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicMotifTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicMotifTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicMotifTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicMuteTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicMuteTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicMuteTrack_PersistStream_Vtbl;
-
-extern IUnknownVtbl           DirectMusicStyleTrack_Unknown_Vtbl;
-extern IDirectMusicTrack8Vtbl DirectMusicStyleTrack_Track_Vtbl;
-extern IPersistStreamVtbl     DirectMusicStyleTrack_PersistStream_Vtbl;
-
-/*****************************************************************************
  * ClassFactory
  */
 extern HRESULT WINAPI DMUSIC_CreateDirectMusicStyleImpl (LPCGUID lpcGUID, LPVOID* ppobj, LPUNKNOWN pUnkOuter);
@@ -141,10 +105,10 @@ extern HRESULT WINAPI DMUSIC_CreateDirec
  */
 struct IDirectMusicStyle8Impl {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicStyle8Vtbl *StyleVtbl;
-  IDirectMusicObjectVtbl *ObjectVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicStyle8Vtbl *StyleVtbl;
+  const IDirectMusicObjectVtbl *ObjectVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicStyle8Impl fields */
@@ -159,49 +123,21 @@ struct IDirectMusicStyle8Impl {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicStyle8Impl_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicStyle8Impl_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicStyle8Impl_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicStyle: */
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_QueryInterface (LPDIRECTMUSICSTYLE8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicStyle8Impl_IDirectMusicStyle8_AddRef (LPDIRECTMUSICSTYLE8 iface);
-extern ULONG WINAPI   IDirectMusicStyle8Impl_IDirectMusicStyle8_Release (LPDIRECTMUSICSTYLE8 iface);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetBand (LPDIRECTMUSICSTYLE8 iface, WCHAR* pwszName, IDirectMusicBand** ppBand);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumBand (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, WCHAR* pwszName);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultBand (LPDIRECTMUSICSTYLE8 iface, IDirectMusicBand** ppBand);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumMotif (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, WCHAR* pwszName);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetMotif (LPDIRECTMUSICSTYLE8 iface, WCHAR* pwszName, IDirectMusicSegment** ppSegment);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetDefaultChordMap (LPDIRECTMUSICSTYLE8 iface, IDirectMusicChordMap** ppChordMap);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumChordMap (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, WCHAR* pwszName);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetChordMap (LPDIRECTMUSICSTYLE8 iface, WCHAR* pwszName, IDirectMusicChordMap** ppChordMap);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTimeSignature (LPDIRECTMUSICSTYLE8 iface, DMUS_TIMESIGNATURE* pTimeSig);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetEmbellishmentLength (LPDIRECTMUSICSTYLE8 iface, DWORD dwType, DWORD dwLevel, DWORD* pdwMin, DWORD* pdwMax);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_GetTempo (LPDIRECTMUSICSTYLE8 iface, double* pTempo);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicStyle8_EnumPattern (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, DWORD dwPatternType, WCHAR* pwszName);
 /* IDirectMusicObject: */
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicObject_QueryInterface (LPDIRECTMUSICOBJECT iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicStyle8Impl_IDirectMusicObject_AddRef (LPDIRECTMUSICOBJECT iface);
-extern ULONG WINAPI   IDirectMusicStyle8Impl_IDirectMusicObject_Release (LPDIRECTMUSICOBJECT iface);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicObject_GetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicObject_SetDescriptor (LPDIRECTMUSICOBJECT iface, LPDMUS_OBJECTDESC pDesc);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IDirectMusicObject_ParseDescriptor (LPDIRECTMUSICOBJECT iface, LPSTREAM pStream, LPDMUS_OBJECTDESC pDesc);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicStyle8Impl_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicStyle8Impl_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicStyle8Impl_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicAuditionTrack implementation structure
  */
 struct IDirectMusicAuditionTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicAuditionTrack fields */
@@ -211,45 +147,19 @@ struct IDirectMusicAuditionTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicAuditionTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicAuditionTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicAuditionTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicAuditionTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicAuditionTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicAuditionTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicAuditionTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicAuditionTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicChordTrack implementation structure
  */
 struct IDirectMusicChordTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicChordTrack fields */
@@ -260,35 +170,10 @@ struct IDirectMusicChordTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicChordTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicChordTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicChordTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicChordTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicChordTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicChordTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicChordTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicChordTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicChordTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicChordTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicChordTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicChordTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicChordTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicChordTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 typedef struct _DMUS_PRIVATE_COMMAND {
 	struct list entry; /* for listing elements */
@@ -301,9 +186,9 @@ typedef struct _DMUS_PRIVATE_COMMAND {
  */
 struct IDirectMusicCommandTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicCommandTrack fields */
@@ -315,45 +200,19 @@ struct IDirectMusicCommandTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicCommandTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicCommandTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicCommandTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicCommandTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicCommandTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicCommandTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicCommandTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicCommandTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicCommandTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicMelodyFormulationTrack implementation structure
  */
 struct IDirectMusicMelodyFormulationTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicMelodyFormulationTrack fields */
@@ -363,45 +222,19 @@ struct IDirectMusicMelodyFormulationTrac
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMelodyFormulationTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicMelodyFormulationTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicMelodyFormulationTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicMelodyFormulationTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicMelodyFormulationTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicMotifTrack implementation structure
  */
 struct IDirectMusicMotifTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicMotifTrack fields */
@@ -411,45 +244,19 @@ struct IDirectMusicMotifTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicMotifTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMotifTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicMotifTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMotifTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicMotifTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicMotifTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicMotifTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicMotifTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicMotifTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicMuteTrack implementation structure
  */
 struct IDirectMusicMuteTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicMuteTrack fields */
@@ -459,45 +266,19 @@ struct IDirectMusicMuteTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicMuteTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMuteTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicMuteTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicMuteTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicMuteTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicMuteTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG   WINAPI IDirectMusicMuteTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG   WINAPI IDirectMusicMuteTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicMuteTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
-
 
 /*****************************************************************************
  * IDirectMusicStyleTrack implementation structure
  */
 struct IDirectMusicStyleTrack {
   /* IUnknown fields */
-  IUnknownVtbl *UnknownVtbl;
-  IDirectMusicTrack8Vtbl *TrackVtbl;
-  IPersistStreamVtbl *PersistStreamVtbl;
+  const IUnknownVtbl *UnknownVtbl;
+  const IDirectMusicTrack8Vtbl *TrackVtbl;
+  const IPersistStreamVtbl *PersistStreamVtbl;
   DWORD          ref;
 
   /* IDirectMusicStyleTrack fields */
@@ -509,35 +290,10 @@ struct IDirectMusicStyleTrack {
 /* IUnknown: */
 extern HRESULT WINAPI IDirectMusicStyleTrack_IUnknown_QueryInterface (LPUNKNOWN iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicStyleTrack_IUnknown_AddRef (LPUNKNOWN iface);
-extern ULONG WINAPI   IDirectMusicStyleTrack_IUnknown_Release (LPUNKNOWN iface);
 /* IDirectMusicTrack(8): */
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_QueryInterface (LPDIRECTMUSICTRACK8 iface, REFIID riid, LPVOID *ppobj);
 extern ULONG WINAPI   IDirectMusicStyleTrack_IDirectMusicTrack_AddRef (LPDIRECTMUSICTRACK8 iface);
-extern ULONG WINAPI   IDirectMusicStyleTrack_IDirectMusicTrack_Release (LPDIRECTMUSICTRACK8 iface);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_Init (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegment* pSegment);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_InitPlay (LPDIRECTMUSICTRACK8 iface, IDirectMusicSegmentState* pSegmentState, IDirectMusicPerformance* pPerformance, void** ppStateData, DWORD dwVirtualTrackID, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_EndPlay (LPDIRECTMUSICTRACK8 iface, void* pStateData);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_Play (LPDIRECTMUSICTRACK8 iface, void* pStateData, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, MUSIC_TIME mtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_GetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, MUSIC_TIME* pmtNext, void* pParam);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_SetParam (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, MUSIC_TIME mtTime, void* pParam);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_IsParamSupported (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_AddNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_RemoveNotificationType (LPDIRECTMUSICTRACK8 iface, REFGUID rguidNotificationType);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_Clone (LPDIRECTMUSICTRACK8 iface, MUSIC_TIME mtStart, MUSIC_TIME mtEnd, IDirectMusicTrack** ppTrack);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_PlayEx (LPDIRECTMUSICTRACK8 iface, void* pStateData, REFERENCE_TIME rtStart, REFERENCE_TIME rtEnd, REFERENCE_TIME rtOffset, DWORD dwFlags, IDirectMusicPerformance* pPerf, IDirectMusicSegmentState* pSegSt, DWORD dwVirtualID);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_GetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, REFERENCE_TIME* prtNext, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_SetParamEx (LPDIRECTMUSICTRACK8 iface, REFGUID rguidType, REFERENCE_TIME rtTime, void* pParam, void* pStateData, DWORD dwFlags);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_Compose (LPDIRECTMUSICTRACK8 iface, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IDirectMusicTrack_Join (LPDIRECTMUSICTRACK8 iface, IDirectMusicTrack* pNewTrack, MUSIC_TIME mtJoin, IUnknown* pContext, DWORD dwTrackGroup, IDirectMusicTrack** ppResultTrack);
 /* IPersistStream: */
-extern HRESULT WINAPI IDirectMusicStyleTrack_IPersistStream_QueryInterface (LPPERSISTSTREAM iface, REFIID riid, void** ppvObject);
 extern ULONG WINAPI   IDirectMusicStyleTrack_IPersistStream_AddRef (LPPERSISTSTREAM iface);
-extern ULONG WINAPI   IDirectMusicStyleTrack_IPersistStream_Release (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IPersistStream_GetClassID (LPPERSISTSTREAM iface, CLSID* pClassID);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IPersistStream_IsDirty (LPPERSISTSTREAM iface);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IPersistStream_Load (LPPERSISTSTREAM iface, IStream* pStm);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IPersistStream_Save (LPPERSISTSTREAM iface, IStream* pStm, BOOL fClearDirty);
-extern HRESULT WINAPI IDirectMusicStyleTrack_IPersistStream_GetSizeMax (LPPERSISTSTREAM iface, ULARGE_INTEGER* pcbSize);
 
 /**********************************************************************
  * Dll lifetime tracking declaration for dmstyle.dll
diff -up cvs/hq/wine/dlls/dmstyle/motiftrack.c wine/dlls/dmstyle/motiftrack.c
--- cvs/hq/wine/dlls/dmstyle/motiftrack.c	2005-01-26 17:55:36.000000000 +0800
+++ wine/dlls/dmstyle/motiftrack.c	2005-05-29 18:42:38.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicMotifTrack_IUnk
 	return ref;
 }
 
-IUnknownVtbl DirectMusicMotifTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicMotifTrack_Unknown_Vtbl = {
 	IDirectMusicMotifTrack_IUnknown_QueryInterface,
 	IDirectMusicMotifTrack_IUnknown_AddRef,
 	IDirectMusicMotifTrack_IUnknown_Release
@@ -200,7 +200,7 @@ HRESULT WINAPI IDirectMusicMotifTrack_ID
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicMotifTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicMotifTrack_Track_Vtbl = {
 	IDirectMusicMotifTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicMotifTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicMotifTrack_IDirectMusicTrack_Release,
@@ -258,7 +258,7 @@ HRESULT WINAPI IDirectMusicMotifTrack_IP
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicMotifTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicMotifTrack_PersistStream_Vtbl = {
 	IDirectMusicMotifTrack_IPersistStream_QueryInterface,
 	IDirectMusicMotifTrack_IPersistStream_AddRef,
 	IDirectMusicMotifTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmstyle/mutetrack.c wine/dlls/dmstyle/mutetrack.c
--- cvs/hq/wine/dlls/dmstyle/mutetrack.c	2005-01-26 17:55:36.000000000 +0800
+++ wine/dlls/dmstyle/mutetrack.c	2005-05-29 18:42:54.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicMuteTrack_IUnkn
 	return ref;
 }
 
-IUnknownVtbl DirectMusicMuteTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicMuteTrack_Unknown_Vtbl = {
 	IDirectMusicMuteTrack_IUnknown_QueryInterface,
 	IDirectMusicMuteTrack_IUnknown_AddRef,
 	IDirectMusicMuteTrack_IUnknown_Release
@@ -197,7 +197,7 @@ HRESULT WINAPI IDirectMusicMuteTrack_IDi
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicMuteTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicMuteTrack_Track_Vtbl = {
 	IDirectMusicMuteTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicMuteTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicMuteTrack_IDirectMusicTrack_Release,
@@ -255,7 +255,7 @@ HRESULT WINAPI IDirectMusicMuteTrack_IPe
 	return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicMuteTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicMuteTrack_PersistStream_Vtbl = {
 	IDirectMusicMuteTrack_IPersistStream_QueryInterface,
 	IDirectMusicMuteTrack_IPersistStream_AddRef,
 	IDirectMusicMuteTrack_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmstyle/style.c wine/dlls/dmstyle/style.c
--- cvs/hq/wine/dlls/dmstyle/style.c	2005-05-08 14:59:15.000000000 +0900
+++ wine/dlls/dmstyle/style.c	2005-05-29 18:43:14.000000000 +0900
@@ -83,7 +83,7 @@ ULONG WINAPI IDirectMusicStyle8Impl_IUnk
 	return ref;
 }
 
-IUnknownVtbl DirectMusicStyle8_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicStyle8_Unknown_Vtbl = {
 	IDirectMusicStyle8Impl_IUnknown_QueryInterface,
 	IDirectMusicStyle8Impl_IUnknown_AddRef,
 	IDirectMusicStyle8Impl_IUnknown_Release
@@ -178,7 +178,7 @@ HRESULT WINAPI IDirectMusicStyle8Impl_ID
 	return S_OK;
 }
 
-IDirectMusicStyle8Vtbl DirectMusicStyle8_Style_Vtbl = {
+static const IDirectMusicStyle8Vtbl DirectMusicStyle8_Style_Vtbl = {
 	IDirectMusicStyle8Impl_IDirectMusicStyle8_QueryInterface,
 	IDirectMusicStyle8Impl_IDirectMusicStyle8_AddRef,
 	IDirectMusicStyle8Impl_IDirectMusicStyle8_Release,
@@ -402,7 +402,7 @@ HRESULT WINAPI IDirectMusicStyle8Impl_ID
 	return S_OK;
 }
 
-IDirectMusicObjectVtbl DirectMusicStyle8_Object_Vtbl = {
+static const IDirectMusicObjectVtbl DirectMusicStyle8_Object_Vtbl = {
   IDirectMusicStyle8Impl_IDirectMusicObject_QueryInterface,
   IDirectMusicStyle8Impl_IDirectMusicObject_AddRef,
   IDirectMusicStyle8Impl_IDirectMusicObject_Release,
@@ -1065,7 +1065,7 @@ HRESULT WINAPI IDirectMusicStyle8Impl_IP
 
 }
 
-IPersistStreamVtbl DirectMusicStyle8_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicStyle8_PersistStream_Vtbl = {
   IDirectMusicStyle8Impl_IPersistStream_QueryInterface,
   IDirectMusicStyle8Impl_IPersistStream_AddRef,
   IDirectMusicStyle8Impl_IPersistStream_Release,
diff -up cvs/hq/wine/dlls/dmstyle/styletrack.c wine/dlls/dmstyle/styletrack.c
--- cvs/hq/wine/dlls/dmstyle/styletrack.c	2005-03-27 14:36:39.000000000 +0900
+++ wine/dlls/dmstyle/styletrack.c	2005-05-29 18:43:29.000000000 +0900
@@ -75,7 +75,7 @@ ULONG WINAPI IDirectMusicStyleTrack_IUnk
 	return ref;
 }
 
-IUnknownVtbl DirectMusicStyleTrack_Unknown_Vtbl = {
+static const IUnknownVtbl DirectMusicStyleTrack_Unknown_Vtbl = {
 	IDirectMusicStyleTrack_IUnknown_QueryInterface,
 	IDirectMusicStyleTrack_IUnknown_AddRef,
 	IDirectMusicStyleTrack_IUnknown_Release
@@ -201,7 +201,7 @@ HRESULT WINAPI IDirectMusicStyleTrack_ID
 	return S_OK;
 }
 
-IDirectMusicTrack8Vtbl DirectMusicStyleTrack_Track_Vtbl = {
+static const IDirectMusicTrack8Vtbl DirectMusicStyleTrack_Track_Vtbl = {
 	IDirectMusicStyleTrack_IDirectMusicTrack_QueryInterface,
 	IDirectMusicStyleTrack_IDirectMusicTrack_AddRef,
 	IDirectMusicStyleTrack_IDirectMusicTrack_Release,
@@ -443,7 +443,7 @@ HRESULT WINAPI IDirectMusicStyleTrack_IP
   return E_NOTIMPL;
 }
 
-IPersistStreamVtbl DirectMusicStyleTrack_PersistStream_Vtbl = {
+static const IPersistStreamVtbl DirectMusicStyleTrack_PersistStream_Vtbl = {
   IDirectMusicStyleTrack_IPersistStream_QueryInterface,
   IDirectMusicStyleTrack_IPersistStream_AddRef,
   IDirectMusicStyleTrack_IPersistStream_Release,






More information about the wine-patches mailing list