Replaced most uses of the auto-generated glue code by explicit calls
to WOWCallback16Ex.

diff --git a/dlls/winmm/message16.c b/dlls/winmm/message16.c
index 4d23bed..08282de 100644
--- a/dlls/winmm/message16.c
+++ b/dlls/winmm/message16.c
@@ -26,16 +26,13 @@
 #include "wine/winbase16.h"
 #include "winreg.h"
 #include "winver.h"
+#include "wownt32.h"
 #include "winemm.h"
 #include "digitalv.h"
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(winmm);
 
-/* ### start build ### */
-extern WORD CALLBACK MMDRV_CallTo16_word_wwlll(FARPROC16,WORD,WORD,LONG,LONG,LONG);
-/* ### stop build ### */
-
 /**************************************************************************
  * 				MMDRV_Callback			[internal]
  */
@@ -44,11 +41,21 @@
     TRACE("CB (*%08lx)(%p %08x %08lx %08lx %08lx\n",
 	  mld->dwCallback, hDev, uMsg, mld->dwClientInstance, dwParam1, dwParam2);
 
-    if (!mld->bFrom32 && (mld->dwFlags & DCB_TYPEMASK) == DCB_FUNCTION) {
+    if (!mld->bFrom32 && (mld->dwFlags & DCB_TYPEMASK) == DCB_FUNCTION)
+    {
+        WORD args[8];
 	/* 16 bit func, call it */
 	TRACE("Function (16 bit) !\n");
-	MMDRV_CallTo16_word_wwlll((FARPROC16)mld->dwCallback, HDRVR_16(hDev), uMsg,
-				  mld->dwClientInstance, dwParam1, dwParam2);
+
+        args[7] = HDRVR_16(hDev);
+        args[6] = uMsg;
+        args[5] = HIWORD(mld->dwClientInstance);
+        args[4] = LOWORD(mld->dwClientInstance);
+        args[3] = HIWORD(dwParam1);
+        args[2] = LOWORD(dwParam1);
+        args[1] = HIWORD(dwParam2);
+        args[0] = LOWORD(dwParam2);
+        WOWCallback16Ex( mld->dwCallback, WCB16_PASCAL, sizeof(args), args, NULL );
     } else {
 	DriverCallback(mld->dwCallback, mld->dwFlags, hDev, uMsg,
 		       mld->dwClientInstance, dwParam1, dwParam2);
@@ -1729,7 +1736,19 @@
 static  LRESULT    MMDRV_CallMMDrvFunc16(FARPROC16 fp16, WORD dev, WORD msg, LONG instance,
                                  LONG lp1, LONG lp2)
 {
-    return MMDRV_CallTo16_word_wwlll(fp16, dev, msg, instance, lp1, lp2);
+    WORD args[8];
+    DWORD ret;
+
+    args[7] = dev;
+    args[6] = msg;
+    args[5] = HIWORD(instance);
+    args[4] = LOWORD(instance);
+    args[3] = HIWORD(lp1);
+    args[2] = LOWORD(lp1);
+    args[1] = HIWORD(lp2);
+    args[0] = LOWORD(lp2);
+    WOWCallback16Ex( (DWORD)fp16, WCB16_PASCAL, sizeof(args), args, &ret );
+    return LOWORD(ret);
 }
 
 /**************************************************************************