Move usage of 16 bit specific functions (MapSL) in 16 bit code only.

This commit is contained in:
Eric Pouech 2003-12-02 03:36:20 +00:00 committed by Alexandre Julliard
parent 036dcf167e
commit ce2d3ef77d
3 changed files with 11 additions and 4 deletions

View File

@ -53,6 +53,12 @@ static LRESULT DRIVER_CloseDriver16(HDRVR16, LPARAM, LPARAM);
static LRESULT DRIVER_SendMessage16(HDRVR16, UINT, LPARAM, LPARAM);
static LRESULT MMIO_Callback16(SEGPTR, LPMMIOINFO, UINT, LPARAM, LPARAM);
static void MMSYSTEM_Yield(void)
{
DWORD count;
ReleaseThunkLock(&count);
RestoreThunkLock(count);
}
/* ###################################################
* # LIBRARY #
@ -87,6 +93,7 @@ BOOL WINAPI MMSYSTEM_LibMain(DWORD fdwReason, HINSTANCE hinstDLL, WORD ds,
pFnCloseDriver16 = DRIVER_CloseDriver16;
pFnSendMessage16 = DRIVER_SendMessage16;
pFnMmioCallback16 = MMIO_Callback16;
pFnYield16 = MMSYSTEM_Yield;
MMDRV_Init16();
break;
case DLL_PROCESS_DETACH:

View File

@ -348,6 +348,8 @@ MMRESULT WINAPI timeEndPeriod(UINT wPeriod)
return 0;
}
void (*pFnYield16)(void) /* = NULL */;
/**************************************************************************
* timeGetTime [MMSYSTEM.607]
* timeGetTime [WINMM.@]
@ -357,9 +359,7 @@ DWORD WINAPI timeGetTime(void)
/* FIXME: releasing the win16 lock here is a temporary hack (I hope)
* that lets mciavi.drv run correctly
*/
DWORD count;
ReleaseThunkLock(&count);
RestoreThunkLock(count);
if (pFnYield16) pFnYield16();
TIME_MMTimeStart();
return WINMM_IData->mmSysTimeMS;
}

View File

@ -305,7 +305,7 @@ extern WINMM_MapType (*pFnMciUnMapMsg32ATo16)(WORD,WORD,DWORD,DWORD);
extern LRESULT (*pFnCallMMDrvFunc16)(DWORD /* in fact FARPROC16 */,WORD,WORD,LONG,LONG,LONG);
extern unsigned (*pFnLoadMMDrvFunc16)(LPCSTR,LPWINE_DRIVER, LPWINE_MM_DRIVER);
extern LRESULT (*pFnMmioCallback16)(DWORD,LPMMIOINFO,UINT,LPARAM,LPARAM);
extern void (*pFnYield16)(void);
/* GetDriverFlags() returned bits is not documented (nor the call itself)
* Here are Wine only definitions of the bits
*/