diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c index 70c55e8e48e..c45deeef227 100644 --- a/dlls/winmm/lolvldrv.c +++ b/dlls/winmm/lolvldrv.c @@ -693,7 +693,7 @@ static MMDRV_MapType MMDRV_MidiOut_Map32ATo16 (UINT wMsg, LPDWORD lpdwUser, LPD *(LPDWORD)((char*)ptr + sizeof(LPMIDIOPENDESC)) = *lpdwUser; mod16 = (LPMIDIOPENDESC16)((LPSTR)ptr + sizeof(LPMIDIOPENDESC) + 2*sizeof(DWORD)); - mod16->hMidi = mod32->hMidi; + mod16->hMidi = HMIDI_16(mod32->hMidi); mod16->dwCallback = mod32->dwCallback; mod16->dwInstance = mod32->dwInstance; mod16->dnDevNode = mod32->dnDevNode; diff --git a/dlls/winmm/mciseq/mcimidi.c b/dlls/winmm/mciseq/mcimidi.c index dffab6e6f64..7697a522bd6 100644 --- a/dlls/winmm/mciseq/mcimidi.c +++ b/dlls/winmm/mciseq/mcimidi.c @@ -817,7 +817,7 @@ static DWORD MIDI_mciStop(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpParm wmm->dwStatus = MCI_MODE_NOT_READY; if (oldstat == MCI_MODE_PAUSE) - dwRet = midiOutReset(wmm->hMidi); + dwRet = midiOutReset((HMIDIOUT)wmm->hMidi); while (wmm->dwStatus != MCI_MODE_STOP) Sleep(10); @@ -962,7 +962,7 @@ static DWORD MIDI_mciPlay(UINT wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms) MIDI_mciReadNextEvent(wmm, mmt); /* FIXME == 0 */ } - dwRet = midiOutOpen(&wmm->hMidi, MIDIMAPPER, 0L, 0L, CALLBACK_NULL); + dwRet = midiOutOpen((LPHMIDIOUT)&wmm->hMidi, MIDIMAPPER, 0L, 0L, CALLBACK_NULL); /* dwRet = midiInOpen(&wmm->hMidi, MIDIMAPPER, 0L, 0L, CALLBACK_NULL);*/ if (dwRet != MMSYSERR_NOERROR) { return dwRet; @@ -1142,7 +1142,7 @@ static DWORD MIDI_mciPlay(UINT wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms) break; default: if (doPlay) { - dwRet = midiOutShortMsg(wmm->hMidi, mmt->dwEventData); + dwRet = midiOutShortMsg((HMIDIOUT)wmm->hMidi, mmt->dwEventData); } else { switch (LOBYTE(LOWORD(mmt->dwEventData)) & 0xF0) { case MIDI_NOTEON: @@ -1150,7 +1150,7 @@ static DWORD MIDI_mciPlay(UINT wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms) dwRet = 0; break; default: - dwRet = midiOutShortMsg(wmm->hMidi, mmt->dwEventData); + dwRet = midiOutShortMsg((HMIDIOUT)wmm->hMidi, mmt->dwEventData); } } } @@ -1163,9 +1163,9 @@ static DWORD MIDI_mciPlay(UINT wDevID, DWORD dwFlags, LPMCI_PLAY_PARMS lpParms) } } - midiOutReset(wmm->hMidi); + midiOutReset((HMIDIOUT)wmm->hMidi); - dwRet = midiOutClose(wmm->hMidi); + dwRet = midiOutClose((HMIDIOUT)wmm->hMidi); /* to restart playing at beginning when it's over */ wmm->dwPositionMS = 0; @@ -1212,7 +1212,7 @@ static DWORD MIDI_mciRecord(UINT wDevID, DWORD dwFlags, LPMCI_RECORD_PARMS lpPar midiHdr.dwBufferLength = 1024; midiHdr.dwUser = 0L; midiHdr.dwFlags = 0L; - dwRet = midiInPrepareHeader(wmm->hMidi, &midiHdr, sizeof(MIDIHDR)); + dwRet = midiInPrepareHeader((HMIDIIN)wmm->hMidi, &midiHdr, sizeof(MIDIHDR)); TRACE("After MIDM_PREPARE \n"); wmm->dwStatus = MCI_MODE_RECORD; /* FIXME: there is no buffer added */ @@ -1220,12 +1220,12 @@ static DWORD MIDI_mciRecord(UINT wDevID, DWORD dwFlags, LPMCI_RECORD_PARMS lpPar TRACE("wmm->dwStatus=%p %d\n", &wmm->dwStatus, wmm->dwStatus); midiHdr.dwBytesRecorded = 0; - dwRet = midiInStart(wmm->hMidi); + dwRet = midiInStart((HMIDIIN)wmm->hMidi); TRACE("midiInStart => dwBytesRecorded=%lu\n", midiHdr.dwBytesRecorded); if (midiHdr.dwBytesRecorded == 0) break; } TRACE("Before MIDM_UNPREPARE \n"); - dwRet = midiInUnprepareHeader(wmm->hMidi, &midiHdr, sizeof(MIDIHDR)); + dwRet = midiInUnprepareHeader((HMIDIIN)wmm->hMidi, &midiHdr, sizeof(MIDIHDR)); TRACE("After MIDM_UNPREPARE \n"); if (midiHdr.lpData != NULL) { HeapFree(GetProcessHeap(), 0, midiHdr.lpData); @@ -1255,7 +1255,7 @@ static DWORD MIDI_mciPause(UINT wDevID, DWORD dwFlags, LPMCI_GENERIC_PARMS lpPar /* stop all notes */ unsigned chn; for (chn = 0; chn < 16; chn++) - midiOutShortMsg(wmm->hMidi, 0x78B0 | chn); + midiOutShortMsg((HMIDIOUT)(wmm->hMidi), 0x78B0 | chn); wmm->dwStatus = MCI_MODE_PAUSE; } if (lpParms && (dwFlags & MCI_NOTIFY)) { @@ -1712,5 +1712,3 @@ LONG CALLBACK MCIMIDI_DriverProc(DWORD dwDevID, HDRVR hDriv, DWORD wMsg, } return MCIERR_UNRECOGNIZED_COMMAND; } - - diff --git a/dlls/winmm/midimap/midimap.c b/dlls/winmm/midimap/midimap.c index 6c6f1ad009a..643a2ecc5a8 100644 --- a/dlls/winmm/midimap/midimap.c +++ b/dlls/winmm/midimap/midimap.c @@ -81,7 +81,7 @@ typedef struct tagMIDIOUTPORT { char name[MAXPNAMELEN]; int loaded; - HMIDI hMidi; + HMIDIOUT hMidi; unsigned short uDevID; LPBYTE lpbPatch; unsigned int aChn[16]; @@ -494,7 +494,7 @@ static DWORD MIDIMAP_drvOpen(LPSTR str) numMidiOutPorts * sizeof(MIDIOUTPORT)); for (dev = 0; dev < numMidiOutPorts; dev++) { - if (midiOutGetDevCapsA((HMIDIOUT)dev, &moc, sizeof(moc)) == 0L) + if (midiOutGetDevCapsA(dev, &moc, sizeof(moc)) == 0L) { strcpy(midiOutPorts[dev].name, moc.szPname); midiOutPorts[dev].loaded = 0; @@ -552,5 +552,3 @@ LONG CALLBACK MIDIMAP_DriverProc(DWORD dwDevID, HDRVR hDriv, DWORD wMsg, return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } } - - diff --git a/dlls/winmm/mmsystem.c b/dlls/winmm/mmsystem.c index c3beaff99e1..e9ee589d9be 100644 --- a/dlls/winmm/mmsystem.c +++ b/dlls/winmm/mmsystem.c @@ -2188,7 +2188,7 @@ static LPWINE_MIDI MIDI_OutAlloc(HMIDIOUT* lphMidiOut, LPDWORD lpdwCallback, *lphMidiOut = hMidiOut; if (lpwm) { - lpwm->mod.hMidi = hMidiOut; + lpwm->mod.hMidi = (HMIDI) hMidiOut; lpwm->mod.dwCallback = *lpdwCallback; lpwm->mod.dwInstance = *lpdwInstance; lpwm->mod.dnDevNode = 0; @@ -2255,7 +2255,7 @@ UINT16 WINAPI midiOutOpen16(HMIDIOUT16* lphMidiOut, UINT16 uDeviceID, ret = MMSYSTEM_midiOutOpen(&hmo, uDeviceID, dwCallback, dwInstance, dwFlags, FALSE); - if (lphMidiOut != NULL) *lphMidiOut = hmo; + if (lphMidiOut != NULL) *lphMidiOut = HMIDIOUT_16(hmo); return ret; } @@ -2283,7 +2283,7 @@ UINT WINAPI midiOutClose(HMIDIOUT hMidiOut) */ UINT16 WINAPI midiOutClose16(HMIDIOUT16 hMidiOut) { - return midiOutClose(hMidiOut); + return midiOutClose(HMIDIOUT_32(hMidiOut)); } /************************************************************************** @@ -2381,7 +2381,7 @@ UINT WINAPI midiOutShortMsg(HMIDIOUT hMidiOut, DWORD dwMsg) */ UINT16 WINAPI midiOutShortMsg16(HMIDIOUT16 hMidiOut, DWORD dwMsg) { - return midiOutShortMsg(hMidiOut, dwMsg); + return midiOutShortMsg(HMIDIOUT_32(hMidiOut), dwMsg); } /************************************************************************** @@ -2437,7 +2437,7 @@ UINT WINAPI midiOutReset(HMIDIOUT hMidiOut) */ UINT16 WINAPI midiOutReset16(HMIDIOUT16 hMidiOut) { - return midiOutReset(hMidiOut); + return midiOutReset(HMIDIOUT_32(hMidiOut)); } /************************************************************************** @@ -2503,7 +2503,8 @@ UINT WINAPI midiOutCachePatches(HMIDIOUT hMidiOut, UINT uBank, UINT16 WINAPI midiOutCachePatches16(HMIDIOUT16 hMidiOut, UINT16 uBank, WORD* lpwPatchArray, UINT16 uFlags) { - return midiOutCachePatches(hMidiOut, uBank, lpwPatchArray, uFlags); + return midiOutCachePatches(HMIDIOUT_32(hMidiOut), uBank, lpwPatchArray, + uFlags); } /************************************************************************** @@ -2739,7 +2740,7 @@ static UINT MMSYSTEM_midiInOpen(HMIDIIN* lphMidiIn, UINT uDeviceID, DWORD dwCall if (lpwm == NULL) return MMSYSERR_NOMEM; - lpwm->mod.hMidi = hMidiIn; + lpwm->mod.hMidi = (HMIDI) hMidiIn; lpwm->mod.dwCallback = dwCallback; lpwm->mod.dwInstance = dwInstance; @@ -2778,7 +2779,7 @@ UINT16 WINAPI midiInOpen16(HMIDIIN16* lphMidiIn, UINT16 uDeviceID, ret = MMSYSTEM_midiInOpen(&xhmid, uDeviceID, dwCallback, dwInstance, dwFlags, FALSE); - if (lphMidiIn) *lphMidiIn = xhmid; + if (lphMidiIn) *lphMidiIn = HMIDIIN_16(xhmid); return ret; } @@ -2805,7 +2806,7 @@ UINT WINAPI midiInClose(HMIDIIN hMidiIn) */ UINT16 WINAPI midiInClose16(HMIDIIN16 hMidiIn) { - return midiInClose(hMidiIn); + return midiInClose(HMIDIIN_32(hMidiIn)); } /************************************************************************** @@ -2936,7 +2937,7 @@ UINT WINAPI midiInStart(HMIDIIN hMidiIn) */ UINT16 WINAPI midiInStart16(HMIDIIN16 hMidiIn) { - return midiInStart(hMidiIn); + return midiInStart(HMIDIIN_32(hMidiIn)); } /************************************************************************** @@ -2959,7 +2960,7 @@ UINT WINAPI midiInStop(HMIDIIN hMidiIn) */ UINT16 WINAPI midiInStop16(HMIDIIN16 hMidiIn) { - return midiInStop(hMidiIn); + return midiInStop(HMIDIIN_32(hMidiIn)); } /************************************************************************** @@ -2982,7 +2983,7 @@ UINT WINAPI midiInReset(HMIDIIN hMidiIn) */ UINT16 WINAPI midiInReset16(HMIDIIN16 hMidiIn) { - return midiInReset(hMidiIn); + return midiInReset(HMIDIIN_32(hMidiIn)); } /************************************************************************** @@ -3408,7 +3409,7 @@ MMRESULT WINAPI midiStreamClose(HMIDISTRM hMidiStrm) HeapFree(GetProcessHeap(), 0, lpMidiStrm); CloseHandle(lpMidiStrm->hEvent); - return midiOutClose(hMidiStrm); + return midiOutClose((HMIDIOUT)hMidiStrm); } /************************************************************************** @@ -3444,7 +3445,7 @@ static MMRESULT WINAPI MMSYSTEM_MidiStream_Open(HMIDISTRM* lphMidiStrm, LPUINT l lpwm = MIDI_OutAlloc(&hMidiOut, &dwCallback, &dwInstance, &fdwOpen, 1, &mosm, bFrom32); lpMidiStrm->hDevice = hMidiOut; if (lphMidiStrm) - *lphMidiStrm = hMidiOut; + *lphMidiStrm = (HMIDISTRM)hMidiOut; /* FIXME: is lpuDevice initialized upon entering midiStreamOpen ? */ FIXME("*lpuDeviceID=%x\n", *lpuDeviceID); @@ -3673,7 +3674,7 @@ MMRESULT WINAPI midiStreamStop(HMIDISTRM hMidiStrm) */ MMRESULT16 WINAPI midiStreamClose16(HMIDISTRM16 hMidiStrm) { - return midiStreamClose(hMidiStrm); + return midiStreamClose(HMIDISTRM_32(hMidiStrm)); } /************************************************************************** @@ -3692,7 +3693,7 @@ MMRESULT16 WINAPI midiStreamOpen16(HMIDISTRM16* phMidiStrm, LPUINT16 devid, devid32 = *devid; ret = MMSYSTEM_MidiStream_Open(&hMidiStrm32, &devid32, cMidi, dwCallback, dwInstance, fdwOpen, FALSE); - *phMidiStrm = hMidiStrm32; + *phMidiStrm = HMIDISTRM_16(hMidiStrm32); *devid = devid32; return ret; } @@ -3702,7 +3703,8 @@ MMRESULT16 WINAPI midiStreamOpen16(HMIDISTRM16* phMidiStrm, LPUINT16 devid, */ MMRESULT16 WINAPI midiStreamOut16(HMIDISTRM16 hMidiStrm, LPMIDIHDR16 lpMidiHdr, UINT16 cbMidiHdr) { - return midiStreamOut(hMidiStrm, (LPMIDIHDR)lpMidiHdr, cbMidiHdr); + return midiStreamOut(HMIDISTRM_32(hMidiStrm), (LPMIDIHDR)lpMidiHdr, + cbMidiHdr); } /************************************************************************** @@ -3710,7 +3712,7 @@ MMRESULT16 WINAPI midiStreamOut16(HMIDISTRM16 hMidiStrm, LPMIDIHDR16 lpMidiHdr, */ MMRESULT16 WINAPI midiStreamPause16(HMIDISTRM16 hMidiStrm) { - return midiStreamPause(hMidiStrm); + return midiStreamPause(HMIDISTRM_32(hMidiStrm)); } /************************************************************************** @@ -3724,7 +3726,7 @@ MMRESULT16 WINAPI midiStreamPosition16(HMIDISTRM16 hMidiStrm, LPMMTIME16 lpmmt16 if (!lpmmt16) return MMSYSERR_INVALPARAM; MMSYSTEM_MMTIME16to32(&mmt32, lpmmt16); - ret = midiStreamPosition(hMidiStrm, &mmt32, sizeof(MMTIME)); + ret = midiStreamPosition(HMIDISTRM_32(hMidiStrm), &mmt32, sizeof(MMTIME)); MMSYSTEM_MMTIME32to16(lpmmt16, &mmt32); return ret; } @@ -3734,7 +3736,7 @@ MMRESULT16 WINAPI midiStreamPosition16(HMIDISTRM16 hMidiStrm, LPMMTIME16 lpmmt16 */ MMRESULT16 WINAPI midiStreamProperty16(HMIDISTRM16 hMidiStrm, LPBYTE lpPropData, DWORD dwProperty) { - return midiStreamProperty(hMidiStrm, lpPropData, dwProperty); + return midiStreamProperty(HMIDISTRM_32(hMidiStrm), lpPropData, dwProperty); } /************************************************************************** @@ -3742,7 +3744,7 @@ MMRESULT16 WINAPI midiStreamProperty16(HMIDISTRM16 hMidiStrm, LPBYTE lpPropData, */ MMRESULT16 WINAPI midiStreamRestart16(HMIDISTRM16 hMidiStrm) { - return midiStreamRestart(hMidiStrm); + return midiStreamRestart(HMIDISTRM_32(hMidiStrm)); } /************************************************************************** @@ -3750,7 +3752,7 @@ MMRESULT16 WINAPI midiStreamRestart16(HMIDISTRM16 hMidiStrm) */ MMRESULT16 WINAPI midiStreamStop16(HMIDISTRM16 hMidiStrm) { - return midiStreamStop(hMidiStrm); + return midiStreamStop(HMIDISTRM_32(hMidiStrm)); } static UINT WINAPI MMSYSTEM_waveOpen(HANDLE* lphndl, UINT uDeviceID, UINT uType, diff --git a/dlls/winmm/winemm.h b/dlls/winmm/winemm.h index efa3eb1b58b..cbd6b72e0f7 100644 --- a/dlls/winmm/winemm.h +++ b/dlls/winmm/winemm.h @@ -226,3 +226,14 @@ LPWINE_MM_IDATA MULTIMEDIA_GetIData(void); LPWINE_MM_IDATA TIME_MMTimeStart(void); void TIME_MMTimeStop(void); + +/* HANDLE16 -> HANDLE conversions */ +#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)) +/* HANDLE -> HANDLE16 conversions */ +#define HMIDI_16(h32) (LOWORD(h32)) +#define HMIDIIN_16(h32) (LOWORD(h32)) +#define HMIDIOUT_16(h32) (LOWORD(h32)) +#define HMIDISTRM_16(h32) (LOWORD(h32)) diff --git a/include/mmsystem.h b/include/mmsystem.h index e84a142f096..0ef4f804d6a 100644 --- a/include/mmsystem.h +++ b/include/mmsystem.h @@ -34,10 +34,10 @@ DECLARE_OLD_HANDLE(HDRVR); DECLARE_OLD_HANDLE(HWAVE); DECLARE_OLD_HANDLE(HWAVEIN); DECLARE_OLD_HANDLE(HWAVEOUT); -DECLARE_OLD_HANDLE(HMIDI); -DECLARE_OLD_HANDLE(HMIDIIN); -DECLARE_OLD_HANDLE(HMIDIOUT); -DECLARE_OLD_HANDLE(HMIDISTRM); +DECLARE_HANDLE(HMIDI); +DECLARE_HANDLE(HMIDIIN); +DECLARE_HANDLE(HMIDIOUT); +DECLARE_HANDLE(HMIDISTRM); DECLARE_OLD_HANDLE(HMIXER); DECLARE_OLD_HANDLE(HMIXEROBJ); DECLARE_OLD_HANDLE(HMMIO);