From b1a2d883fc0836f06390dbf72ecfc8b3cb37f2ab Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Sun, 9 Nov 2003 01:19:58 +0000 Subject: [PATCH] Removed some more dependencies on wine 16-bit specific entities. --- dlls/winmm/driver.c | 6 ++--- dlls/winmm/lolvldrv.c | 16 +++++++------- dlls/winmm/message16.c | 8 +++---- dlls/winmm/mmio.c | 10 ++++----- dlls/winmm/mmsystem.c | 8 +++---- dlls/winmm/time.c | 8 +++---- dlls/winmm/winemm.h | 59 ++++++++++---------------------------------------- dlls/winmm/winemm16.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ dlls/winmm/winmm.c | 3 ++- 9 files changed, 101 insertions(+), 76 deletions(-) create mode 100644 dlls/winmm/winemm16.h diff --git a/dlls/winmm/driver.c b/dlls/winmm/driver.c index 7e97c1aa27e..076a0e0ff6e 100644 --- a/dlls/winmm/driver.c +++ b/dlls/winmm/driver.c @@ -37,10 +37,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(driver); static LPWINE_DRIVER lpDrvItemList /* = NULL */; -WINE_MMTHREAD* (*pFnGetMMThread16)(HANDLE16 h) /* = NULL */; +WINE_MMTHREAD* (*pFnGetMMThread16)(UINT16 h) /* = NULL */; LPWINE_DRIVER (*pFnOpenDriver16)(LPCSTR,LPCSTR,LPARAM) /* = NULL */; -LRESULT (*pFnCloseDriver16)(HDRVR16,LPARAM,LPARAM) /* = NULL */; -LRESULT (*pFnSendMessage16)(HDRVR16,UINT,LPARAM,LPARAM) /* = NULL */; +LRESULT (*pFnCloseDriver16)(UINT16,LPARAM,LPARAM) /* = NULL */; +LRESULT (*pFnSendMessage16)(UINT16,UINT,LPARAM,LPARAM) /* = NULL */; /************************************************************************** * DRIVER_GetNumberOfModuleRefs [internal] diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c index 879b6a35343..706dc597fcd 100644 --- a/dlls/winmm/lolvldrv.c +++ b/dlls/winmm/lolvldrv.c @@ -33,7 +33,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(winmm); -LRESULT (*pFnCallMMDrvFunc16)(FARPROC16,WORD,WORD,LONG,LONG,LONG) /* = NULL */; +LRESULT (*pFnCallMMDrvFunc16)(DWORD,WORD,WORD,LONG,LONG,LONG) /* = NULL */; unsigned (*pFnLoadMMDrvFunc16)(LPCSTR,LPWINE_DRIVER, LPWINE_MM_DRIVER) /* = NULL */; /* each known type of driver has an instance of this structure */ @@ -262,7 +262,7 @@ DWORD MMDRV_Message(LPWINE_MLD mld, WORD wMsg, DWORD dwParam1, case WINMM_MAP_OKMEM: TRACE("Calling message(dev=%u msg=%u usr=0x%08lx p1=0x%08lx p2=0x%08lx)\n", mld->uDeviceID, wMsg, mld->dwDriverInstance, dwParam1, dwParam2); - ret = pFnCallMMDrvFunc16((FARPROC16)part->u.fnMessage16, + ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16, mld->uDeviceID, wMsg, mld->dwDriverInstance, dwParam1, dwParam2); TRACE("=> %lu\n", ret); @@ -277,7 +277,7 @@ DWORD MMDRV_Message(LPWINE_MLD mld, WORD wMsg, DWORD dwParam1, } else { TRACE("Calling message(dev=%u msg=%u usr=0x%08lx p1=0x%08lx p2=0x%08lx)\n", mld->uDeviceID, wMsg, mld->dwDriverInstance, dwParam1, dwParam2); - ret = pFnCallMMDrvFunc16((FARPROC16)part->u.fnMessage16, + ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16, mld->uDeviceID, wMsg, mld->dwDriverInstance, dwParam1, dwParam2); TRACE("=> %lu\n", ret); @@ -545,15 +545,15 @@ static BOOL MMDRV_InitPerType(LPWINE_MM_DRIVER lpDrv, UINT type, UINT wMsg) #endif count = part->u.fnMessage32(0, wMsg, 0L, 0L, 0L); } else if (!lpDrv->bIs32 && part->u.fnMessage16 && pFnCallMMDrvFunc16) { - ret = pFnCallMMDrvFunc16((FARPROC16)part->u.fnMessage16, + ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16, 0, DRVM_INIT, 0L, 0L, 0L); TRACE("DRVM_INIT => %08lx\n", ret); #if 0 - ret = pFnCallMMDrvFunc16((FARPROC16)part->u.fnMessage16, + ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16, 0, DRVM_ENABLE, 0L, 0L, 0L); TRACE("DRVM_ENABLE => %08lx\n", ret); #endif - count = pFnCallMMDrvFunc16((FARPROC16)part->u.fnMessage16, + count = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16, 0, wMsg, 0L, 0L, 0L); } else { return FALSE; @@ -790,11 +790,11 @@ static BOOL MMDRV_ExitPerType(LPWINE_MM_DRIVER lpDrv, UINT type) TRACE("DRVM_EXIT => %08lx\n", ret); } else if (!lpDrv->bIs32 && part->u.fnMessage16 && pFnCallMMDrvFunc16) { #if 0 - ret = pFnCallMMDrvFunc16((FARPROC16)part->u.fnMessage16, + ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16, 0, DRVM_DISABLE, 0L, 0L, 0L); TRACE("DRVM_DISABLE => %08lx\n", ret); #endif - ret = pFnCallMMDrvFunc16((FARPROC16)part->u.fnMessage16, + ret = pFnCallMMDrvFunc16((DWORD)part->u.fnMessage16, 0, DRVM_EXIT, 0L, 0L, 0L); TRACE("DRVM_EXIT => %08lx\n", ret); } else { diff --git a/dlls/winmm/message16.c b/dlls/winmm/message16.c index 17b5330865a..475c988d18a 100644 --- a/dlls/winmm/message16.c +++ b/dlls/winmm/message16.c @@ -30,7 +30,7 @@ #include "winreg.h" #include "winver.h" #include "wownt32.h" -#include "winemm.h" +#include "winemm16.h" #include "digitalv.h" #include "wine/debug.h" @@ -1736,8 +1736,8 @@ static void CALLBACK MMDRV_WaveOut_Callback(HDRVR hDev, UINT uMsg, DWORD dwInst * M A P P E R S H A N D L I N G * ================================= */ -static LRESULT MMDRV_CallMMDrvFunc16(FARPROC16 fp16, WORD dev, WORD msg, LONG instance, - LONG lp1, LONG lp2) +static LRESULT MMDRV_CallMMDrvFunc16(DWORD fp16, WORD dev, WORD msg, LONG instance, + LONG lp1, LONG lp2) { WORD args[8]; DWORD ret; @@ -1750,7 +1750,7 @@ static LRESULT MMDRV_CallMMDrvFunc16(FARPROC16 fp16, WORD dev, WORD msg, LON args[2] = LOWORD(lp1); args[1] = HIWORD(lp2); args[0] = LOWORD(lp2); - WOWCallback16Ex( (DWORD)fp16, WCB16_PASCAL, sizeof(args), args, &ret ); + WOWCallback16Ex( fp16, WCB16_PASCAL, sizeof(args), args, &ret ); return LOWORD(ret); } diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c index 9cbddd49aef..25631c52164 100644 --- a/dlls/winmm/mmio.c +++ b/dlls/winmm/mmio.c @@ -46,7 +46,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mmio); -LRESULT (*pFnMmioCallback16)(SEGPTR,LPMMIOINFO,UINT,LPARAM,LPARAM) /* = NULL */; +LRESULT (*pFnMmioCallback16)(DWORD,LPMMIOINFO,UINT,LPARAM,LPARAM) /* = NULL */; /************************************************************************** * mmioDosIOProc [internal] @@ -355,7 +355,7 @@ static LRESULT send_message(struct IOProcList* ioProc, LPMMIOINFO mmioinfo, switch (ioProc->type) { case MMIO_PROC_16: if (pFnMmioCallback16) - result = pFnMmioCallback16((SEGPTR)ioProc->pIOProc, + result = pFnMmioCallback16((DWORD)ioProc->pIOProc, mmioinfo, wMsg, lp1, lp2); break; case MMIO_PROC_32A: @@ -460,8 +460,8 @@ static LPWINE_MMIO MMIO_Create(void) if (wm) { EnterCriticalSection(&WINMM_IData->cs); /* lookup next unallocated WORD handle, with a non NULL value */ - while (++MMIO_counter == 0 || MMIO_Get(HMMIO_32(MMIO_counter))); - wm->info.hmmio = HMMIO_32(MMIO_counter); + while (++MMIO_counter == 0 || MMIO_Get((HMMIO)(ULONG_PTR)MMIO_counter)); + wm->info.hmmio = (HMMIO)(ULONG_PTR)MMIO_counter; wm->lpNext = WINMM_IData->lpMMIO; WINMM_IData->lpMMIO = wm; LeaveCriticalSection(&WINMM_IData->cs); @@ -611,7 +611,7 @@ HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo, DWORD dwOpenFlags, char buffer[MAX_PATH]; if (GetFullPathNameA(szFileName, sizeof(buffer), buffer, NULL) >= sizeof(buffer)) - return (HMMIO16)FALSE; + return (HMMIO)FALSE; if ((dwOpenFlags & MMIO_EXIST) && (GetFileAttributesA(buffer) == INVALID_FILE_ATTRIBUTES)) return (HMMIO)FALSE; strcpy(szFileName, buffer); diff --git a/dlls/winmm/mmsystem.c b/dlls/winmm/mmsystem.c index c362d6e10ee..914d3409ffc 100644 --- a/dlls/winmm/mmsystem.c +++ b/dlls/winmm/mmsystem.c @@ -41,7 +41,7 @@ #include "winnls.h" #include "wine/winuser16.h" -#include "winemm.h" +#include "winemm16.h" #include "wine/debug.h" @@ -1923,7 +1923,7 @@ LRESULT WINAPI mmThreadCreate16(FARPROC16 fpThreadAddr, LPHANDLE16 lpHndl, DWORD lpMMThd->dwCounter = 0; lpMMThd->hThread = 0; lpMMThd->dwThreadID = 0; - lpMMThd->fpThread = fpThreadAddr; + lpMMThd->fpThread = (DWORD)fpThreadAddr; lpMMThd->dwThreadPmt = dwPmt; lpMMThd->dwSignalCount = 0; lpMMThd->hEvent = 0; @@ -2150,7 +2150,7 @@ void WINAPI WINE_mmThreadEntryPoint(DWORD _pmt) TRACE("[20-%p]\n", lpMMThd->hThread); lpMMThd->dwStatus = 0x20; if (lpMMThd->fpThread) { - WOWCallback16((DWORD)lpMMThd->fpThread, lpMMThd->dwThreadPmt); + WOWCallback16(lpMMThd->fpThread, lpMMThd->dwThreadPmt); } lpMMThd->dwStatus = 0x30; TRACE("[30-%p]\n", lpMMThd->hThread); @@ -2539,7 +2539,7 @@ MMRESULT16 WINAPI timeSetEvent16(UINT16 wDelay, UINT16 wResol, LPTIMECALLBACK16 if (wFlags & WINE_TIMER_IS32) WARN("Unknown windows flag... wine internally used.. ooch\n"); - return TIME_SetEventInternal(wDelay, wResol, (FARPROC16)lpFunc, + return TIME_SetEventInternal(wDelay, wResol, (LPTIMECALLBACK)lpFunc, dwUser, wFlags & ~WINE_TIMER_IS32); } diff --git a/dlls/winmm/time.c b/dlls/winmm/time.c index 2034edb94b9..d472c2a4a26 100644 --- a/dlls/winmm/time.c +++ b/dlls/winmm/time.c @@ -66,9 +66,9 @@ static void TIME_TriggerCallBack(LPWINE_TIMERENTRY lpTimer) switch (lpTimer->wFlags & 0x30) { case TIME_CALLBACK_FUNCTION: if (lpTimer->wFlags & WINE_TIMER_IS32) - ((LPTIMECALLBACK)lpTimer->lpFunc)(lpTimer->wTimerID, 0, lpTimer->dwUser, 0, 0); + (lpTimer->lpFunc)(lpTimer->wTimerID, 0, lpTimer->dwUser, 0, 0); else if (pFnCallMMDrvFunc16) - pFnCallMMDrvFunc16(lpTimer->lpFunc, lpTimer->wTimerID, 0, + pFnCallMMDrvFunc16((DWORD)lpTimer->lpFunc, lpTimer->wTimerID, 0, lpTimer->dwUser, 0, 0); break; case TIME_CALLBACK_EVENT_SET: @@ -226,7 +226,7 @@ MMRESULT WINAPI timeGetSystemTime(LPMMTIME lpTime, UINT wSize) * TIME_SetEventInternal [internal] */ WORD TIME_SetEventInternal(UINT wDelay, UINT wResol, - FARPROC16 lpFunc, DWORD dwUser, UINT wFlags) + LPTIMECALLBACK lpFunc, DWORD dwUser, UINT wFlags) { WORD wNewID = 0; LPWINE_TIMERENTRY lpNewTimer; @@ -276,7 +276,7 @@ MMRESULT WINAPI timeSetEvent(UINT wDelay, UINT wResol, LPTIMECALLBACK lpFunc, if (wFlags & WINE_TIMER_IS32) WARN("Unknown windows flag... wine internally used.. ooch\n"); - return TIME_SetEventInternal(wDelay, wResol, (FARPROC16)lpFunc, + return TIME_SetEventInternal(wDelay, wResol, lpFunc, dwUser, wFlags|WINE_TIMER_IS32); } diff --git a/dlls/winmm/winemm.h b/dlls/winmm/winemm.h index e3cbba4353a..b721fa6a58b 100644 --- a/dlls/winmm/winemm.h +++ b/dlls/winmm/winemm.h @@ -27,8 +27,6 @@ #include "windef.h" #include "winbase.h" #include "mmddk.h" -#include "wine/mmsystem16.h" -#include "wownt32.h" typedef DWORD (WINAPI *MessageProc16)(UINT16 wDevID, UINT16 wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); typedef DWORD (WINAPI *MessageProc32)(UINT wDevID, UINT wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2); @@ -55,7 +53,7 @@ typedef struct tagWINE_DRIVER DWORD dwDriverID; } d32; struct { - HDRVR16 hDriver16; + UINT16 hDriver16; } d16; } d; struct tagWINE_DRIVER* lpPrevItem; @@ -128,14 +126,14 @@ typedef struct { DWORD dwCounter; /* 04 > 1 when in mmThread functions */ HANDLE hThread; /* 08 hThread */ DWORD dwThreadID; /* 0C */ - FARPROC16 fpThread; /* 10 address of thread proc (segptr or lin depending on dwFlags) */ + DWORD fpThread; /* 10 address of thread proc (segptr or lin depending on dwFlags) */ DWORD dwThreadPmt; /* 14 parameter to be passed upon thread creation to fpThread */ DWORD dwSignalCount; /* 18 counter used for signaling */ HANDLE hEvent; /* 1C event */ HANDLE hVxD; /* 20 return from OpenVxDHandle */ DWORD dwStatus; /* 24 0x00, 0x10, 0x20, 0x30 */ DWORD dwFlags; /* 28 dwFlags upon creation */ - HANDLE16 hTask; /* 2C handle to created task */ + UINT16 hTask; /* 2C handle to created task */ } WINE_MMTHREAD; typedef struct tagWINE_MCIDRIVER { @@ -145,7 +143,6 @@ typedef struct tagWINE_MCIDRIVER { LPSTR lpstrDeviceType; LPSTR lpstrAlias; HDRVR hDriver; - DRIVERPROC16 driverProc; DWORD dwPrivate; YIELDPROC lpfnYieldProc; DWORD dwYieldData; @@ -161,7 +158,7 @@ typedef struct tagWINE_MCIDRIVER { typedef struct tagWINE_TIMERENTRY { UINT wDelay; UINT wResol; - FARPROC16 lpFunc; + LPTIMECALLBACK lpFunc; /* can be lots of things */ DWORD dwUser; UINT16 wFlags; UINT16 wTimerID; @@ -186,7 +183,7 @@ typedef struct tagWINE_MMIO { struct IOProcList* ioProc; BOOL bTmpIOProc : 1, bBufferLoaded : 1; - SEGPTR segBuffer16; + DWORD segBuffer16; DWORD dwFileSize; } WINE_MMIO, *LPWINE_MMIO; @@ -226,7 +223,6 @@ typedef struct tagWINE_MM_IDATA { /* function prototypes */ -typedef LONG (*MCIPROC16)(DWORD, HDRVR16, WORD, DWORD, DWORD); typedef LONG (*MCIPROC)(DWORD, HDRVR, DWORD, DWORD, DWORD); typedef WINMM_MapType (*MMDRV_MAPFUNC)(UINT wMsg, LPDWORD lpdwUser, LPDWORD lpParam1, LPDWORD lpParam2); typedef WINMM_MapType (*MMDRV_UNMAPFUNC)(UINT wMsg, LPDWORD lpdwUser, LPDWORD lpParam1, LPDWORD lpParam2, MMRESULT ret); @@ -287,8 +283,8 @@ LRESULT MMIO_SendMessage(HMMIO hmmio, UINT uMessage, LPARAM lParam1, LPARAM lParam2, enum mmioProcType type); LPWINE_MMIO MMIO_Get(HMMIO h); -WORD TIME_SetEventInternal(UINT wDelay, UINT wResol, - FARPROC16 lpFunc, DWORD dwUser, UINT wFlags); +WORD TIME_SetEventInternal(UINT wDelay, UINT wResol, LPTIMECALLBACK lpFunc, + DWORD dwUser, UINT wFlags); void TIME_MMTimeStart(void); void TIME_MMTimeStop(void); @@ -298,48 +294,17 @@ extern LPWINE_MM_IDATA WINMM_IData; /* pointers to 16 bit functions (if sibling MMSYSTEM.DLL is loaded * NULL otherwise */ -extern WINE_MMTHREAD* (*pFnGetMMThread16)(HANDLE16); +extern WINE_MMTHREAD* (*pFnGetMMThread16)(UINT16); extern LPWINE_DRIVER (*pFnOpenDriver16)(LPCSTR,LPCSTR,LPARAM); -extern LRESULT (*pFnCloseDriver16)(HDRVR16,LPARAM,LPARAM); -extern LRESULT (*pFnSendMessage16)(HDRVR16,UINT,LPARAM,LPARAM); +extern LRESULT (*pFnCloseDriver16)(UINT16,LPARAM,LPARAM); +extern LRESULT (*pFnSendMessage16)(UINT16,UINT,LPARAM,LPARAM); extern WINMM_MapType (*pFnMciMapMsg16To32A)(WORD,WORD,DWORD*); extern WINMM_MapType (*pFnMciUnMapMsg16To32A)(WORD,WORD,DWORD); extern WINMM_MapType (*pFnMciMapMsg32ATo16)(WORD,WORD,DWORD,DWORD*); extern WINMM_MapType (*pFnMciUnMapMsg32ATo16)(WORD,WORD,DWORD,DWORD); -extern LRESULT (*pFnCallMMDrvFunc16)(FARPROC16,WORD,WORD,LONG,LONG,LONG); +extern LRESULT (*pFnCallMMDrvFunc16)(DWORD /* in fact FARPROC16 */,WORD,WORD,LONG,LONG,LONG); extern unsigned (*pFnLoadMMDrvFunc16)(LPCSTR,LPWINE_DRIVER, LPWINE_MM_DRIVER); -extern LRESULT (*pFnMmioCallback16)(SEGPTR,LPMMIOINFO,UINT,LPARAM,LPARAM); - -/* mmsystem (16 bit files) only functions */ -void MMDRV_Init16(void); -void MMSYSTEM_MMTIME16to32(LPMMTIME mmt32, const MMTIME16* mmt16); -void MMSYSTEM_MMTIME32to16(LPMMTIME16 mmt16, const MMTIME* mmt32); - -/* HANDLE16 -> HANDLE conversions */ -#define HDRVR_32(h16) ((HDRVR)(ULONG_PTR)(h16)) -#define HMIDI_32(h16) ((HMIDI)(ULONG_PTR)(h16)) -#define HMIDIIN_32(h16) ((HMIDIIN)(ULONG_PTR)(h16)) -#define HMIDIOUT_32(h16) ((HMIDIOUT)(ULONG_PTR)(h16)) -#define HMIDISTRM_32(h16) ((HMIDISTRM)(ULONG_PTR)(h16)) -#define HMIXER_32(h16) ((HMIXER)(ULONG_PTR)(h16)) -#define HMIXEROBJ_32(h16) ((HMIXEROBJ)(ULONG_PTR)(h16)) -#define HMMIO_32(h16) ((HMMIO)(ULONG_PTR)(h16)) -#define HWAVE_32(h16) ((HWAVE)(ULONG_PTR)(h16)) -#define HWAVEIN_32(h16) ((HWAVEIN)(ULONG_PTR)(h16)) -#define HWAVEOUT_32(h16) ((HWAVEOUT)(ULONG_PTR)(h16)) - -/* HANDLE -> HANDLE16 conversions */ -#define HDRVR_16(h32) (LOWORD(h32)) -#define HMIDI_16(h32) (LOWORD(h32)) -#define HMIDIIN_16(h32) (LOWORD(h32)) -#define HMIDIOUT_16(h32) (LOWORD(h32)) -#define HMIDISTRM_16(h32) (LOWORD(h32)) -#define HMIXER_16(h32) (LOWORD(h32)) -#define HMIXEROBJ_16(h32) (LOWORD(h32)) -#define HMMIO_16(h32) (LOWORD(h32)) -#define HWAVE_16(h32) (LOWORD(h32)) -#define HWAVEIN_16(h32) (LOWORD(h32)) -#define HWAVEOUT_16(h32) (LOWORD(h32)) +extern LRESULT (*pFnMmioCallback16)(DWORD,LPMMIOINFO,UINT,LPARAM,LPARAM); /* GetDriverFlags() returned bits is not documented (nor the call itself) * Here are Wine only definitions of the bits diff --git a/dlls/winmm/winemm16.h b/dlls/winmm/winemm16.h new file mode 100644 index 00000000000..3bb1780fecf --- /dev/null +++ b/dlls/winmm/winemm16.h @@ -0,0 +1,59 @@ +/* -*- tab-width: 8; c-basic-offset: 4 -*- */ + +/***************************************************************************** + * Copyright 1998, Luiz Otavio L. Zorzella + * 1999, Eric Pouech + * + * Purpose: multimedia declarations (internal to WINMM & MMSYSTEM DLLs) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ***************************************************************************** + */ +#include "winemm.h" +#include "wine/mmsystem16.h" +#include "wownt32.h" + +/* mmsystem (16 bit files) only functions */ +void MMDRV_Init16(void); +void MMSYSTEM_MMTIME16to32(LPMMTIME mmt32, const MMTIME16* mmt16); +void MMSYSTEM_MMTIME32to16(LPMMTIME16 mmt16, const MMTIME* mmt32); + +typedef LONG (*MCIPROC16)(DWORD, HDRVR16, WORD, DWORD, DWORD); + +/* HANDLE16 -> HANDLE conversions */ +#define HDRVR_32(h16) ((HDRVR)(ULONG_PTR)(h16)) +#define HMIDI_32(h16) ((HMIDI)(ULONG_PTR)(h16)) +#define HMIDIIN_32(h16) ((HMIDIIN)(ULONG_PTR)(h16)) +#define HMIDIOUT_32(h16) ((HMIDIOUT)(ULONG_PTR)(h16)) +#define HMIDISTRM_32(h16) ((HMIDISTRM)(ULONG_PTR)(h16)) +#define HMIXER_32(h16) ((HMIXER)(ULONG_PTR)(h16)) +#define HMIXEROBJ_32(h16) ((HMIXEROBJ)(ULONG_PTR)(h16)) +#define HMMIO_32(h16) ((HMMIO)(ULONG_PTR)(h16)) +#define HWAVE_32(h16) ((HWAVE)(ULONG_PTR)(h16)) +#define HWAVEIN_32(h16) ((HWAVEIN)(ULONG_PTR)(h16)) +#define HWAVEOUT_32(h16) ((HWAVEOUT)(ULONG_PTR)(h16)) + +/* HANDLE -> HANDLE16 conversions */ +#define HDRVR_16(h32) (LOWORD(h32)) +#define HMIDI_16(h32) (LOWORD(h32)) +#define HMIDIIN_16(h32) (LOWORD(h32)) +#define HMIDIOUT_16(h32) (LOWORD(h32)) +#define HMIDISTRM_16(h32) (LOWORD(h32)) +#define HMIXER_16(h32) (LOWORD(h32)) +#define HMIXEROBJ_16(h32) (LOWORD(h32)) +#define HMMIO_16(h32) (LOWORD(h32)) +#define HWAVE_16(h32) (LOWORD(h32)) +#define HWAVEIN_16(h32) (LOWORD(h32)) +#define HWAVEOUT_16(h32) (LOWORD(h32)) diff --git a/dlls/winmm/winmm.c b/dlls/winmm/winmm.c index ad68ded98a3..120f616ac33 100644 --- a/dlls/winmm/winmm.c +++ b/dlls/winmm/winmm.c @@ -41,6 +41,7 @@ #include "winreg.h" #include "winternl.h" #include "winemm.h" +#include "wownt32.h" #include "wine/debug.h" @@ -718,7 +719,7 @@ BOOL WINAPI mciGetErrorStringW(DWORD wError, LPWSTR lpstrBuffer, UINT uLength) */ BOOL WINAPI mciGetErrorStringA(DWORD dwError, LPSTR lpstrBuffer, UINT uLength) { - BOOL16 ret = FALSE; + BOOL ret = FALSE; if (lpstrBuffer != NULL && uLength > 0 && dwError >= MCIERR_BASE && dwError <= MCIERR_CUSTOM_DRIVER_BASE) { -- 2.11.4.GIT