From 86f5d82f2fc08798cf99a947bd87f8d57299689f Mon Sep 17 00:00:00 2001 From: Turchanov Sergey Date: Sun, 18 Oct 1998 11:22:36 +0000 Subject: [PATCH] Implemented DefDriverProc32 from winmm.dll. --- if1632/user.spec | 2 +- include/driver.h | 7 +++++-- multimedia/audio.c | 4 ++-- multimedia/mcianim.c | 4 ++-- multimedia/mcicda.c | 4 ++-- multimedia/midi.c | 4 ++-- multimedia/mmsystem.c | 22 +++++++++++++++++++++- relay32/winmm.spec | 2 +- windows/driver.c | 6 +++--- 9 files changed, 39 insertions(+), 16 deletions(-) diff --git a/if1632/user.spec b/if1632/user.spec index e3bc89b1cfb..b9d9b7899e5 100644 --- a/if1632/user.spec +++ b/if1632/user.spec @@ -259,7 +259,7 @@ file user.exe 252 pascal16 OpenDriver(str str long) OpenDriver16 253 pascal CloseDriver(word long long) CloseDriver16 254 pascal16 GetDriverModuleHandle(word) GetDriverModuleHandle16 -255 pascal DefDriverProc(long word word long long) DefDriverProc +255 pascal DefDriverProc(long word word long long) DefDriverProc16 256 pascal16 GetDriverInfo(word ptr) GetDriverInfo 257 pascal16 GetNextDriver(word long) GetNextDriver 258 pascal16 MapWindowPoints(word word ptr word) MapWindowPoints16 diff --git a/include/driver.h b/include/driver.h index f40c29c0462..a0f214ae84c 100644 --- a/include/driver.h +++ b/include/driver.h @@ -79,8 +79,11 @@ typedef struct tagDRIVERITEM32A { DRIVERPROC32 driverproc; } DRIVERITEM32A,*LPDRIVERITEM32A; -LRESULT WINAPI DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, - LPARAM dwParam1, LPARAM dwParam2); +LRESULT WINAPI DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, + LPARAM dwParam1, LPARAM dwParam2); +LRESULT WINAPI DefDriverProc32(DWORD dwDriverIdentifier, HDRVR32 hdrvr, + UINT32 Msg, LPARAM lParam1, LPARAM lParam2); +#define DefDriverProc WINELIB_NAME(DefDriverProc) HDRVR16 WINAPI OpenDriver16(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2); HDRVR32 WINAPI OpenDriver32A(LPCSTR szDriverName, LPCSTR szSectionName, diff --git a/multimedia/audio.c b/multimedia/audio.c index bade5c73684..64cf6aee4f6 100644 --- a/multimedia/audio.c +++ b/multimedia/audio.c @@ -1760,7 +1760,7 @@ LONG WAVE_DriverProc16(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, case MCI_PASTE: return MMSYSERR_NOTSUPPORTED; default: - return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + return DefDriverProc16(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } return MMSYSERR_NOTENABLED; } @@ -1817,7 +1817,7 @@ LONG WAVE_DriverProc32(DWORD dwDevID, HDRVR16 hDriv, DWORD wMsg, default: FIXME(mciwave, "is probably wrong\n"); - return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + return DefDriverProc32(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } return MMSYSERR_NOTENABLED; } diff --git a/multimedia/mcianim.c b/multimedia/mcianim.c index 76dff47b003..a12af8ef0e5 100644 --- a/multimedia/mcianim.c +++ b/multimedia/mcianim.c @@ -570,7 +570,7 @@ LONG ANIM_DriverProc16(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, case MCI_PAUSE: return ANIM_mciPause(dwDevID, dwParam1, (LPMCI_GENERIC_PARMS)PTR_SEG_TO_LIN(dwParam2)); case MCI_RESUME: return ANIM_mciResume(dwDevID, dwParam1, (LPMCI_GENERIC_PARMS)PTR_SEG_TO_LIN(dwParam2)); case MCI_SEEK: return ANIM_mciSeek(dwDevID, dwParam1, (LPMCI_SEEK_PARMS)PTR_SEG_TO_LIN(dwParam2)); - default: return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + default: return DefDriverProc16(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } } /************************************************************************** @@ -603,7 +603,7 @@ LONG ANIM_DriverProc32(DWORD dwDevID, HDRVR16 hDriv, DWORD wMsg, case MCI_PAUSE: return ANIM_mciPause(dwDevID, dwParam1, (LPMCI_GENERIC_PARMS)dwParam2); case MCI_RESUME: return ANIM_mciResume(dwDevID, dwParam1, (LPMCI_GENERIC_PARMS)dwParam2); case MCI_SEEK: return ANIM_mciSeek(dwDevID, dwParam1, (LPMCI_SEEK_PARMS)dwParam2); - default: return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + default: return DefDriverProc32(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } } diff --git a/multimedia/mcicda.c b/multimedia/mcicda.c index 9d02747baeb..5ddc6bac469 100644 --- a/multimedia/mcicda.c +++ b/multimedia/mcicda.c @@ -1075,7 +1075,7 @@ LONG CDAUDIO_DriverProc16(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, CDADev[dwDevID].nTracks = 0; return 0; default: - return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + return DefDriverProc16(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } #else return MCIERR_HARDWARE; @@ -1133,7 +1133,7 @@ LONG CDAUDIO_DriverProc32(DWORD dwDevID, HDRVR16 hDriv, DWORD wMsg, CDADev[dwDevID].nTracks = 0; return 0; default: - return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + return DefDriverProc32(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } #else return MCIERR_HARDWARE; diff --git a/multimedia/midi.c b/multimedia/midi.c index c0e969a3e08..1ecd34711d3 100644 --- a/multimedia/midi.c +++ b/multimedia/midi.c @@ -2662,7 +2662,7 @@ LONG MIDI_DriverProc16(DWORD dwDevID, HDRVR16 hDriv, WORD wMsg, case MCI_STATUS: return MIDI_mciStatus(dwDevID, dwParam1, (LPMCI_STATUS_PARMS)PTR_SEG_TO_LIN(dwParam2)); case MCI_GETDEVCAPS: return MIDI_mciGetDevCaps(dwDevID, dwParam1, (LPMCI_GETDEVCAPS_PARMS)PTR_SEG_TO_LIN(dwParam2)); case MCI_INFO: return MIDI_mciInfo(dwDevID, dwParam1, (LPMCI_INFO_PARMS16)PTR_SEG_TO_LIN(dwParam2)); - default: return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + default: return DefDriverProc16(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } } @@ -2696,7 +2696,7 @@ LONG MIDI_DriverProc32(DWORD dwDevID, HDRVR16 hDriv, DWORD wMsg, case MCI_STATUS: return MIDI_mciStatus(dwDevID, dwParam1, (LPMCI_STATUS_PARMS)dwParam2); case MCI_GETDEVCAPS: return MIDI_mciGetDevCaps(dwDevID, dwParam1, (LPMCI_GETDEVCAPS_PARMS)dwParam2); case MCI_INFO: return MIDI_mciInfo(dwDevID, dwParam1, (LPMCI_INFO_PARMS16)dwParam2); - default: return DefDriverProc(dwDevID, hDriv, wMsg, dwParam1, dwParam2); + default: return DefDriverProc32(dwDevID, hDriv, wMsg, dwParam1, dwParam2); } } /*-----------------------------------------------------------------------*/ diff --git a/multimedia/mmsystem.c b/multimedia/mmsystem.c index 236c5e86940..bf1e4f17805 100644 --- a/multimedia/mmsystem.c +++ b/multimedia/mmsystem.c @@ -4262,7 +4262,27 @@ HANDLE16 WINAPI DrvGetModuleHandle16(HDRVR16 hDrvr) LRESULT WINAPI DrvDefDriverProc(DWORD dwDriverID, HDRVR16 hDriv, WORD wMsg, DWORD dwParam1, DWORD dwParam2) { - return DefDriverProc(dwDriverID, hDriv, wMsg, dwParam1, dwParam2); + return DefDriverProc16(dwDriverID, hDriv, wMsg, dwParam1, dwParam2); +} + +/************************************************************************** + * DefDriverProc32 [WINMM.5] + */ +LRESULT WINAPI DefDriverProc32(DWORD dwDriverIdentifier, HDRVR32 hdrvr, + UINT32 Msg, LPARAM lParam1, LPARAM lParam2) +{ + switch (Msg) { + case DRV_LOAD: + case DRV_DISABLE: + case DRV_INSTALL: + return 0; + case DRV_ENABLE: + case DRV_FREE: + case DRV_REMOVE: + return 1; + default: + return 0; + } } /************************************************************************** diff --git a/relay32/winmm.spec b/relay32/winmm.spec index 08d30e99897..35c7f8ce707 100644 --- a/relay32/winmm.spec +++ b/relay32/winmm.spec @@ -5,7 +5,7 @@ type win32 2 stdcall WINMM_2(ptr long long) PlaySound32A 3 stub WINMM_3 4 stub CloseDriver - 5 stdcall DefDriverProc(long long long long long) DefDriverProc + 5 stdcall DefDriverProc(long long long long long) DefDriverProc32 6 stub DriverCallback 7 stub DrvClose 8 stub DrvDefDriverProc diff --git a/windows/driver.c b/windows/driver.c index e38fecfa17b..4ec9c3de92b 100644 --- a/windows/driver.c +++ b/windows/driver.c @@ -335,10 +335,10 @@ HMODULE32 WINAPI GetDriverModuleHandle32(HDRVR32 hDrvr) } /************************************************************************** - * DefDriverProc [USER.255] + * DefDriverProc16 [USER.255] */ -LRESULT WINAPI DefDriverProc(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, - LPARAM lParam1, LPARAM lParam2) +LRESULT WINAPI DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, + LPARAM lParam1, LPARAM lParam2) { switch(wMsg) {